<?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>43119</bug_id>
          
          <creation_ts>2010-07-28 08:10:30 -0700</creation_ts>
          <short_desc>Hook the GLES2 rendering path up to GraphicsContextSkia.</short_desc>
          <delta_ts>2010-07-28 13:21:32 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</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>1</everconfirmed>
          <reporter name="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>fishd</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257151</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-28 08:10:30 -0700</bug_when>
    <thetext>Hook the GLES2 rendering path up to GraphicsContextSkia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257158</commentid>
    <comment_count>1</comment_count>
      <attachid>62823</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-28 08:18:48 -0700</bug_when>
    <thetext>Created attachment 62823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257251</commentid>
    <comment_count>2</comment_count>
      <attachid>62823</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 11:01:40 -0700</bug_when>
    <thetext>Comment on attachment 62823
Patch

preSoftwareDraw is not a good function name. Function names should be verb phrases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257301</commentid>
    <comment_count>3</comment_count>
      <attachid>62862</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-28 12:49:19 -0700</bug_when>
    <thetext>Created attachment 62862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257318</commentid>
    <comment_count>4</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-28 13:01:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 62823 [details])
&gt; preSoftwareDraw is not a good function name. Function names should be verb phrases.

OK, renamed to prepareForSoftwareDraw().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257331</commentid>
    <comment_count>5</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-28 13:21:32 -0700</bug_when>
    <thetext>Committed r64227: &lt;http://trac.webkit.org/changeset/64227&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62823</attachid>
            <date>2010-07-28 08:18:48 -0700</date>
            <delta_ts>2010-07-28 12:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43119-20100728111846.patch</filename>
            <type>text/plain</type>
            <size>11957</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDIwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDctMjggIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSG9vayB0aGUgR0xFUzIgcmVuZGVyaW5nIHBhdGggdXAgdG8gR3JhcGhpY3NDb250ZXh0
U2tpYS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQz
MTE5CisgICAgICAgIAorICAgICAgICBUaGlzIGNvbm5lY3RzIHRoZSBzdGF0ZS1zZXR0aW5nIGFu
ZCBkcmF3aW5nIGNhbGxzIGltcGxlbWVudGVkIGluCisgICAgICAgIHNvIGZhciBpbiBHTEVTMkNh
bnZhcywgYW5kIGNhbGxzIFBsYXRmb3JtQ29udGV4dFNraWEncworICAgICAgICBwcmVTb2Z0d2Fy
ZURyYXcoKSBmb3IgYWxsIHRoZSBub24tYWNjZWxlcmF0ZWQgcGF0aHMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmFkZFBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpjbGlwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0NvbnZleFBvbHlnb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
RWxsaXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yTWlzc3BlbGxpbmdPckJh
ZEdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZv
clRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVJlY3QpOgorICAgICAgICBUaGVzZSBjYWxscyBhcmUgc29mdHdhcmUtb25seTsg
Y2FsbCBwcmVTb2Z0d2FyZURyYXcoKSBmb3IgdGhlc2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNhdmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNldENvbXBvc2l0ZU9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpyb3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpjb25jYXRDVE0pOgorICAgICAgICBUaGVz
ZSBvbmVzIHNldCBzdGF0ZSBvbiBib3RoIFNraWEgYW5kIEdMRVMyQ2FudmFzLgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIFRoZXNlIG9uZXMgaGF2ZSBhIEdM
RVMyIGltcGxlbWVudGF0aW9uOyBjYWxsIHRocm91Z2ggdG8gaXQgaWYgUGxhdGZvcm1Db250ZXh0
U2tpYSdzIHVzZUdQVSgpIGZsYWcgaXMgc2V0IGFuZCB0aGUgc3RhdGUgcGVybWl0cy4KKwogMjAx
MC0wNy0yOCAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAJKHJldmlzaW9u
IDY0MjAyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4
dFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMCBAQAogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAorI2lmIFVTRShH
TEVTMl9SRU5ERVJJTkcpCisjaW5jbHVkZSAiR0xFUzJDYW52YXMuaCIKKyNlbmRpZgorCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNDMsNiArMjQ3LDEx
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSgKICAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoR0xFUzJfUkVOREVS
SU5HKQorICAgIGlmIChwbGF0Zm9ybUNvbnRleHQoKS0+dXNlR1BVKCkpCisgICAgICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+c2F2ZSgpOworI2VuZGlmCisKICAgICAvLyBTYXZl
IG91ciBwcml2YXRlIFN0YXRlLgogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zYXZlKCk7CiB9CkBA
IC0yNTIsNiArMjYxLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1T
dGEKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBV
U0UoR0xFUzJfUkVOREVSSU5HKQorICAgIGlmIChwbGF0Zm9ybUNvbnRleHQoKS0+dXNlR1BVKCkp
CisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+cmVzdG9yZSgpOworI2Vu
ZGlmCisKICAgICAvLyBSZXN0b3JlIG91ciBwcml2YXRlIFN0YXRlLgogICAgIHBsYXRmb3JtQ29u
dGV4dCgpLT5yZXN0b3JlKCk7CiB9CkBAIC0yOTAsNiArMzA0LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmFkZElubmVyUm91bmRlZFJlYwogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RN
KCksIHIpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29m
dHdhcmVEcmF3KCk7CiAgICAgU2tQYXRoIHBhdGg7CiAgICAgcGF0aC5hZGRPdmFsKHIsIFNrUGF0
aDo6a0NXX0RpcmVjdGlvbik7CiAgICAgLy8gb25seSBwZXJmb3JtIHRoZSBpbnNldCBpZiB3ZSB3
b24ndCBpbnZlcnQgcgpAQCAtMzA3LDYgKzMyMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojph
ZGRQYXRoKGNvbnN0IFBhdGgKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOwogICAg
IHBsYXRmb3JtQ29udGV4dCgpLT5hZGRQYXRoKCpwYXRoLnBsYXRmb3JtUGF0aCgpKTsKIH0KIApA
QCAtMzE0LDYgKzMzMCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblBhdGgoKQogewog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKyAgICBwbGF0Zm9y
bUNvbnRleHQoKS0+cHJlU29mdHdhcmVEcmF3KCk7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmJl
Z2luUGF0aCgpOwogfQogCkBAIC0zMjksNiArMzQ2LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpjbGVhclJlY3QoY29uc3QgRmwKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKKyNpZiBVU0UoR0xFUzJfUkVOREVSSU5HKQorICAgIGlmIChwbGF0Zm9ybUNv
bnRleHQoKS0+dXNlR1BVKCkpIHsKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZUhhcmR3
YXJlRHJhdygpOworICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPmNsZWFy
UmVjdChyZWN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgcGxhdGZv
cm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOworCiAgICAgU2tSZWN0IHIgPSByZWN0Owog
ICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHIpKQogICAgICAgICBDbGlwUmVjdFRv
Q2FudmFzKCpwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHIsICZyKTsKQEAgLTM0OCw2ICsz
NzUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBGbG9hdFJlCiAgICAgaWYg
KCFpc1JlY3RTa2lhU2FmZShnZXRDVE0oKSwgcikpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBs
YXRmb3JtQ29udGV4dCgpLT5wcmVTb2Z0d2FyZURyYXcoKTsKICAgICBwbGF0Zm9ybUNvbnRleHQo
KS0+Y2FudmFzKCktPmNsaXBSZWN0KHIpOwogfQogCkBAIC0zNjAsNiArMzg4LDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgUGF0aCYgcAogICAgIGlmICghaXNQYXRoU2tpYVNh
ZmUoZ2V0Q1RNKCksIHApKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQo
KS0+cHJlU29mdHdhcmVEcmF3KCk7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNsaXBQYXRoQW50
aUFsaWFzZWQocCk7CiB9CiAKQEAgLTQ0MSw2ICs0NzAsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNvbmNhdENUTShjb25zdCBBZgogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAg
ICAgICAgIHJldHVybjsKKworI2lmIFVTRShHTEVTMl9SRU5ERVJJTkcpCisgICAgaWYgKHBsYXRm
b3JtQ29udGV4dCgpLT51c2VHUFUoKSkKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPmdwdUNh
bnZhcygpLT5jb25jYXRDVE0oYWZmaW5lKTsKKyNlbmRpZgorCiAgICAgcGxhdGZvcm1Db250ZXh0
KCktPmNhbnZhcygpLT5jb25jYXQoYWZmaW5lKTsKIH0KIApAQCAtNDU0LDYgKzQ4OSw4IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbigKICAgICBpZiAobnVtUG9pbnRz
IDw9IDEpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVTb2Z0
d2FyZURyYXcoKTsKKwogICAgIFNrUGF0aCBwYXRoOwogCiAgICAgcGF0aC5pbmNSZXNlcnZlKG51
bVBvaW50cyk7CkBAIC00OTksNiArNTM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdF
bGxpcHNlKGNvbnN0IAogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29mdHdhcmVEcmF3
KCk7CiAgICAgU2tQYWludCBwYWludDsKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWlu
dEZvckZpbGxpbmcoJnBhaW50KTsKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRy
YXdPdmFsKHJlY3QsIHBhaW50KTsKQEAgLTUyNCw2ICs1NjIsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zCiAgICAgaWYgKCFyZWN0Q291bnQpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVTb2Z0d2FyZURyYXcoKTsKICAgICBT
a1JlZ2lvbiBmb2N1c1JpbmdSZWdpb247CiAgICAgY29uc3QgU2tTY2FsYXIgZm9jdXNSaW5nT3V0
c2V0ID0gV2ViQ29yZUZsb2F0VG9Ta1NjYWxhcigwLjUpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCByZWN0Q291bnQ7IGkrKykgewpAQCAtNTU4LDYgKzU5Nyw4IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3TGluZShjb25zdCBJbnQKICAgICBpZiAoIWlzUG9pbnRTa2lhU2FmZShn
ZXRDVE0oKSwgcG9pbnQxKSB8fCAhaXNQb2ludFNraWFTYWZlKGdldENUTSgpLCBwb2ludDIpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29mdHdhcmVEcmF3
KCk7CisKICAgICBGbG9hdFBvaW50IHAxID0gcG9pbnQxOwogICAgIEZsb2F0UG9pbnQgcDIgPSBw
b2ludDI7CiAgICAgYm9vbCBpc1ZlcnRpY2FsTGluZSA9IChwMS54KCkgPT0gcDIueCgpKTsKQEAg
LTYwNCw2ICs2NDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JNaXNzcGVs
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgcGxh
dGZvcm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOworCiAgICAgLy8gQ3JlYXRlIHRoZSBw
YXR0ZXJuIHdlJ2xsIHVzZSB0byBkcmF3IHRoZSB1bmRlcmxpbmUuCiAgICAgc3RhdGljIFNrQml0
bWFwKiBtaXNzcGVsbEJpdG1hcCA9IDA7CiAgICAgaWYgKCFtaXNzcGVsbEJpdG1hcCkgewpAQCAt
Njg0LDYgKzcyNyw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHQoY28K
ICAgICBpZiAod2lkdGggPD0gMCkKICAgICAgICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250
ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOworCiAgICAgaW50IHRoaWNrbmVzcyA9IFNrTWF4MzIo
c3RhdGljX2Nhc3Q8aW50PihzdHJva2VUaGlja25lc3MoKSksIDEpOwogICAgIFNrUmVjdCByOwog
ICAgIHIuZkxlZnQgPSBTa0ludFRvU2NhbGFyKHB0LngoKSk7CkBAIC03MDQsNiArNzQ5LDggQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEludAogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5w
cmVTb2Z0d2FyZURyYXcoKTsKKwogICAgIFNrUmVjdCByID0gcmVjdDsKICAgICBpZiAoIWlzUmVj
dFNraWFTYWZlKGdldENUTSgpLCByKSkgewogICAgICAgICAvLyBTZWUgdGhlIGZpbGxSZWN0IGJl
bG93LgpAQCAtNzIyLDYgKzc2OSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCgp
CiAgICAgaWYgKCFpc1BhdGhTa2lhU2FmZShnZXRDVE0oKSwgcGF0aCkpCiAgICAgICByZXR1cm47
CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29mdHdhcmVEcmF3KCk7CisKICAgICBjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1vbi0+c3RhdGU7CiAgICAgcGF0
aC5zZXRGaWxsVHlwZShzdGF0ZS5maWxsUnVsZSA9PSBSVUxFX0VWRU5PREQgPwogICAgICAgICBT
a1BhdGg6OmtFdmVuT2RkX0ZpbGxUeXBlIDogU2tQYXRoOjprV2luZGluZ19GaWxsVHlwZSk7CkBA
IC03NDUsNiArNzk0LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBG
bG8KICAgICAgICAgQ2xpcFJlY3RUb0NhbnZhcygqcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygp
LCByLCAmcik7CiAgICAgfQogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxh
dGZvcm1Db250ZXh0KCktPnVzZUdQVSgpICYmICFtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4g
JiYgIW1fY29tbW9uLT5zdGF0ZS5maWxsR3JhZGllbnQpIHsKKyAgICAgICAgcGxhdGZvcm1Db250
ZXh0KCktPnByZUhhcmR3YXJlRHJhdygpOworICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1
Q2FudmFzKCktPmZpbGxSZWN0KHJlY3QpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlm
CisKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29mdHdhcmVEcmF3KCk7CisKICAgICBTa1Bh
aW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygm
cGFpbnQpOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKS0+ZHJhd1JlY3QociwgcGFp
bnQpOwpAQCAtNzU3LDYgKzgxNiwxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCktPnVz
ZUdQVSgpICYmICFtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4gJiYgIW1fY29tbW9uLT5zdGF0
ZS5maWxsR3JhZGllbnQpIHsKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZUhhcmR3YXJl
RHJhdygpOworICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPmZpbGxSZWN0
KHJlY3QsIGNvbG9yLCBjb2xvclNwYWNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgorCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOworCiAgICAgU2tS
ZWN0IHIgPSByZWN0OwogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHIpKSB7CiAg
ICAgICAgIC8vIFNwZWNpYWwgY2FzZSB3aGVuIHRoZSByZWN0YW5nbGUgb3ZlcmZsb3dzIGZpeGVk
IHBvaW50LiBUaGlzIGlzIGEKQEAgLTc4OSw2ICs4NTgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZmlsbFJvdW5kZWRSZWN0KGNvCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOwor
CiAgICAgU2tSZWN0IHIgPSByZWN0OwogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCks
IHIpKQogICAgICAgICAvLyBTZWUgZmlsbFJlY3QoKS4KQEAgLTg3Miw2ICs5NDMsMTIgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnNjYWxlKGNvbnN0IEZsb2F0UwogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKworI2lmIFVTRShHTEVTMl9SRU5ERVJJTkcp
CisgICAgaWYgKHBsYXRmb3JtQ29udGV4dCgpLT51c2VHUFUoKSkKKyAgICAgICAgcGxhdGZvcm1D
b250ZXh0KCktPmdwdUNhbnZhcygpLT5zY2FsZShzaXplKTsKKyNlbmRpZgorCiAgICAgcGxhdGZv
cm1Db250ZXh0KCktPmNhbnZhcygpLT5zY2FsZShXZWJDb3JlRmxvYXRUb1NrU2NhbGFyKHNpemUu
d2lkdGgoKSksCiAgICAgICAgIFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIoc2l6ZS5oZWlnaHQoKSkp
OwogfQpAQCAtODgwLDYgKzk1NywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QWxwaGEo
ZmxvYXQgYWxwCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OworI2lmIFVTRShHTEVTMl9SRU5ERVJJTkcpCisgICAgaWYgKHBsYXRmb3JtQ29udGV4dCgpLT51
c2VHUFUoKSkKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPmdwdUNhbnZhcygpLT5zZXRBbHBo
YShhbHBoYSk7CisjZW5kaWYKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0QWxwaGEoYWxwaGEp
OwogfQogCkBAIC04ODcsNiArOTY4LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRDb21w
b3NpdGVPcGVyYXQKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCkt
PnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPnNldENv
bXBvc2l0ZU9wZXJhdGlvbihvcCk7CisjZW5kaWYKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0
WGZlcm1vZGVNb2RlKFdlYkNvcmVDb21wb3NpdGVUb1NraWFDb21wb3NpdGUob3ApKTsKIH0KIApA
QCAtOTczLDYgKzEwNTgsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtRmls
bENvbAogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKyNp
ZiBVU0UoR0xFUzJfUkVOREVSSU5HKQorICAgIGlmIChwbGF0Zm9ybUNvbnRleHQoKS0+dXNlR1BV
KCkpCisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+c2V0RmlsbENvbG9y
KGNvbG9yLCBjb2xvclNwYWNlKTsKKyNlbmRpZgorCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNl
dEZpbGxDb2xvcihjb2xvci5yZ2IoKSk7CiB9CiAKQEAgLTExMDIsNiArMTE5Miw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzdHJva2VBcmMoY29uc3QgSW4KICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlU29m
dHdhcmVEcmF3KCk7CisKICAgICBTa1BhaW50IHBhaW50OwogICAgIFNrUmVjdCBvdmFsID0gcjsK
ICAgICBpZiAoc3Ryb2tlU3R5bGUoKSA9PSBOb1N0cm9rZSkgewpAQCAtMTEzMyw2ICsxMjI1LDgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgIGlmICghaXNQYXRoU2tp
YVNhZmUoZ2V0Q1RNKCksIHBhdGgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNv
bnRleHQoKS0+cHJlU29mdHdhcmVEcmF3KCk7CisKICAgICBTa1BhaW50IHBhaW50OwogICAgIHBs
YXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tpbmcoJnBhaW50LCAwLCAwKTsKICAg
ICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRyYXdQYXRoKHBhdGgsIHBhaW50KTsKQEAg
LTExNDYsNiArMTI0MCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KGNvbnN0
IEYKICAgICBpZiAoIWlzUmVjdFNraWFTYWZlKGdldENUTSgpLCByZWN0KSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZVNvZnR3YXJlRHJhdygpOworCiAgICAg
U2tQYWludCBwYWludDsKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9r
aW5nKCZwYWludCwgMCwgMCk7CiAgICAgcGFpbnQuc2V0U3Ryb2tlV2lkdGgoV2ViQ29yZUZsb2F0
VG9Ta1NjYWxhcihsaW5lV2lkdGgpKTsKQEAgLTExNTcsNiArMTI1MywxMSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAo
cGxhdGZvcm1Db250ZXh0KCktPnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+
Z3B1Q2FudmFzKCktPnJvdGF0ZShhbmdsZUluUmFkaWFucyk7CisjZW5kaWYKKwogICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5jYW52YXMoKS0+cm90YXRlKFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIoCiAg
ICAgICAgIGFuZ2xlSW5SYWRpYW5zICogKDE4MC4wZiAvIDMuMTQxNTkyNjVmKSkpOwogfQpAQCAt
MTE2Niw2ICsxMjY3LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQg
dywKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBV
U0UoR0xFUzJfUkVOREVSSU5HKQorICAgIGlmIChwbGF0Zm9ybUNvbnRleHQoKS0+dXNlR1BVKCkp
CisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+dHJhbnNsYXRlKHcsIGgp
OworI2VuZGlmCisKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPnRyYW5zbGF0ZShX
ZWJDb3JlRmxvYXRUb1NrU2NhbGFyKHcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIoaCkpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62862</attachid>
            <date>2010-07-28 12:49:19 -0700</date>
            <delta_ts>2010-07-28 13:03:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43119-20100728154917.patch</filename>
            <type>text/plain</type>
            <size>14293</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDIxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTAtMDctMjggIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSG9vayB0aGUgR0xFUzIgcmVuZGVyaW5nIHBhdGggdXAgdG8gR3JhcGhpY3NDb250ZXh0
U2tpYS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQz
MTE5CisgICAgICAgIAorICAgICAgICBUaGlzIGNvbm5lY3RzIHRoZSBzdGF0ZS1zZXR0aW5nIGFu
ZCBkcmF3aW5nIGNhbGxzIGltcGxlbWVudGVkIGluCisgICAgICAgIHNvIGZhciBpbiBHTEVTMkNh
bnZhcywgYW5kIGNhbGxzIFBsYXRmb3JtQ29udGV4dFNraWEncworICAgICAgICBwcmVwYXJlRm9y
U29mdHdhcmVEcmF3KCkgZm9yIGFsbCB0aGUgbm9uLWFjY2VsZXJhdGVkIHBhdGhzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YWRkSW5uZXJSb3VuZGVkUmVjdENsaXAp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjphZGRQYXRoKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6YmVnaW5QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmRyYXdDb252ZXhQb2x5Z29uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd0VsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
Rm9jdXNSaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvck1pc3NwZWxs
aW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1Jl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgVGhlc2UgY2FsbHMgYXJlIHNvZnR3YXJl
LW9ubHk7IGNhbGwgcHJlU29mdHdhcmVEcmF3KCkgZm9yIHRoZXNlLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0QWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzZXRDb21wb3NpdGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6cm90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKToKKyAgICAg
ICAgVGhlc2Ugb25lcyBzZXQgc3RhdGUgb24gYm90aCBTa2lhIGFuZCBHTEVTMkNhbnZhcy4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOgorICAgICAgICBUaGVzZSBvbmVzIGhh
dmUgYSBHTEVTMiBpbXBsZW1lbnRhdGlvbjsgY2FsbCB0aHJvdWdoIHRvIGl0IGlmIFBsYXRmb3Jt
Q29udGV4dFNraWEncyB1c2VHUFUoKSBmbGFnIGlzIHNldCBhbmQgdGhlIHN0YXRlIHBlcm1pdHMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNw
cDoKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZXBhcmVGb3JTb2Z0d2FyZURyYXcp
OgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlcGFyZUZvckhhcmR3YXJlRHJhdyk6
CisgICAgICAgIFJlbmFtZSBwcmVYWFhEcmF3KCkgLT4gcHJlcGFyZUZvclhYWERyYXcoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAg
ICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZXBhcmVGb3JTb2Z0d2FyZURyYXcpOgorICAg
ICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlcGFyZUZvckhhcmR3YXJlRHJhdyk6CisgICAg
ICAgIFJlbmFtZSBwcmVYWFhEcmF3KCkgLT4gcHJlcGFyZUZvclhYWERyYXcoKS4KKwogMjAxMC0w
Ny0yOCAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCShyZXZpc2lvbiA2NDIx
NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMTAgQEAKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKyNpZiBVU0UoR0xFUzJf
UkVOREVSSU5HKQorI2luY2x1ZGUgIkdMRVMyQ2FudmFzLmgiCisjZW5kaWYKKwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjQzLDYgKzI0NywxMSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUoCiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykK
KyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCktPnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNv
bnRleHQoKS0+Z3B1Q2FudmFzKCktPnNhdmUoKTsKKyNlbmRpZgorCiAgICAgLy8gU2F2ZSBvdXIg
cHJpdmF0ZSBTdGF0ZS4KICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2F2ZSgpOwogfQpAQCAtMjUy
LDYgKzI2MSwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhCiAg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEdM
RVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCktPnVzZUdQVSgpKQorICAg
ICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPnJlc3RvcmUoKTsKKyNlbmRpZgor
CiAgICAgLy8gUmVzdG9yZSBvdXIgcHJpdmF0ZSBTdGF0ZS4KICAgICBwbGF0Zm9ybUNvbnRleHQo
KS0+cmVzdG9yZSgpOwogfQpAQCAtMjkwLDYgKzMwNCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjphZGRJbm5lclJvdW5kZWRSZWMKICAgICBpZiAoIWlzUmVjdFNraWFTYWZlKGdldENUTSgpLCBy
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JT
b2Z0d2FyZURyYXcoKTsKICAgICBTa1BhdGggcGF0aDsKICAgICBwYXRoLmFkZE92YWwociwgU2tQ
YXRoOjprQ1dfRGlyZWN0aW9uKTsKICAgICAvLyBvbmx5IHBlcmZvcm0gdGhlIGluc2V0IGlmIHdl
IHdvbid0IGludmVydCByCkBAIC0zMDcsNiArMzIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmFkZFBhdGgoY29uc3QgUGF0aAogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJh
dygpOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5hZGRQYXRoKCpwYXRoLnBsYXRmb3JtUGF0aCgp
KTsKIH0KIApAQCAtMzE0LDYgKzMzMCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblBh
dGgoKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKyAg
ICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJhdygpOwogICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5iZWdpblBhdGgoKTsKIH0KIApAQCAtMzI5LDYgKzM0NiwxNiBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsCiAgICAgaWYgKHBhaW50aW5nRGlz
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAg
ICBpZiAocGxhdGZvcm1Db250ZXh0KCktPnVzZUdQVSgpKSB7CisgICAgICAgIHBsYXRmb3JtQ29u
dGV4dCgpLT5wcmVwYXJlRm9ySGFyZHdhcmVEcmF3KCk7CisgICAgICAgIHBsYXRmb3JtQ29udGV4
dCgpLT5ncHVDYW52YXMoKS0+Y2xlYXJSZWN0KHJlY3QpOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCisKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJh
dygpOworCiAgICAgU2tSZWN0IHIgPSByZWN0OwogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0
Q1RNKCksIHIpKQogICAgICAgICBDbGlwUmVjdFRvQ2FudmFzKCpwbGF0Zm9ybUNvbnRleHQoKS0+
Y2FudmFzKCksIHIsICZyKTsKQEAgLTM0OCw2ICszNzUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6Y2xpcChjb25zdCBGbG9hdFJlCiAgICAgaWYgKCFpc1JlY3RTa2lhU2FmZShnZXRDVE0oKSwg
cikpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9y
U29mdHdhcmVEcmF3KCk7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5jbGlwUmVj
dChyKTsKIH0KIApAQCAtMzYwLDYgKzM4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlw
KGNvbnN0IFBhdGgmIHAKICAgICBpZiAoIWlzUGF0aFNraWFTYWZlKGdldENUTSgpLCBwKSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2Fy
ZURyYXcoKTsKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2xpcFBhdGhBbnRpQWxpYXNlZChwKTsK
IH0KIApAQCAtNDQxLDYgKzQ3MCwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RN
KGNvbnN0IEFmCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OworCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCkt
PnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPmNvbmNh
dENUTShhZmZpbmUpOworI2VuZGlmCisKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCkt
PmNvbmNhdChhZmZpbmUpOwogfQogCkBAIC00NTQsNiArNDg5LDggQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKAogICAgIGlmIChudW1Qb2ludHMgPD0gMSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2FyZURy
YXcoKTsKKwogICAgIFNrUGF0aCBwYXRoOwogCiAgICAgcGF0aC5pbmNSZXNlcnZlKG51bVBvaW50
cyk7CkBAIC00OTksNiArNTM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxpcHNl
KGNvbnN0IAogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJh
dygpOwogICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNldHVwUGFp
bnRGb3JGaWxsaW5nKCZwYWludCk7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5k
cmF3T3ZhbChyZWN0LCBwYWludCk7CkBAIC01MjQsNiArNTYyLDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdGb2N1c1JpbmcoY29ucwogICAgIGlmICghcmVjdENvdW50KQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJhdygp
OwogICAgIFNrUmVnaW9uIGZvY3VzUmluZ1JlZ2lvbjsKICAgICBjb25zdCBTa1NjYWxhciBmb2N1
c1JpbmdPdXRzZXQgPSBXZWJDb3JlRmxvYXRUb1NrU2NhbGFyKDAuNSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHJlY3RDb3VudDsgaSsrKSB7CkBAIC01NTgsNiArNTk3LDggQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEludAogICAgIGlmICghaXNQb2ludFNr
aWFTYWZlKGdldENUTSgpLCBwb2ludDEpIHx8ICFpc1BvaW50U2tpYVNhZmUoZ2V0Q1RNKCksIHBv
aW50MikpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJl
Rm9yU29mdHdhcmVEcmF3KCk7CisKICAgICBGbG9hdFBvaW50IHAxID0gcG9pbnQxOwogICAgIEZs
b2F0UG9pbnQgcDIgPSBwb2ludDI7CiAgICAgYm9vbCBpc1ZlcnRpY2FsTGluZSA9IChwMS54KCkg
PT0gcDIueCgpKTsKQEAgLTYwNCw2ICs2NDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JNaXNzcGVsCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2FyZURyYXcoKTsK
KwogICAgIC8vIENyZWF0ZSB0aGUgcGF0dGVybiB3ZSdsbCB1c2UgdG8gZHJhdyB0aGUgdW5kZXJs
aW5lLgogICAgIHN0YXRpYyBTa0JpdG1hcCogbWlzc3BlbGxCaXRtYXAgPSAwOwogICAgIGlmICgh
bWlzc3BlbGxCaXRtYXApIHsKQEAgLTY4NCw2ICs3MjcsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0xpbmVGb3JUZXh0KGNvCiAgICAgaWYgKHdpZHRoIDw9IDApCiAgICAgICAgIHJldHVy
bjsKIAorICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yU29mdHdhcmVEcmF3KCk7CisK
ICAgICBpbnQgdGhpY2tuZXNzID0gU2tNYXgzMihzdGF0aWNfY2FzdDxpbnQ+KHN0cm9rZVRoaWNr
bmVzcygpKSwgMSk7CiAgICAgU2tSZWN0IHI7CiAgICAgci5mTGVmdCA9IFNrSW50VG9TY2FsYXIo
cHQueCgpKTsKQEAgLTcwNCw2ICs3NDksOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1Jl
Y3QoY29uc3QgSW50CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2FyZURyYXcoKTsKKwog
ICAgIFNrUmVjdCByID0gcmVjdDsKICAgICBpZiAoIWlzUmVjdFNraWFTYWZlKGdldENUTSgpLCBy
KSkgewogICAgICAgICAvLyBTZWUgdGhlIGZpbGxSZWN0IGJlbG93LgpAQCAtNzIyLDYgKzc2OSw4
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCgpCiAgICAgaWYgKCFpc1BhdGhTa2lh
U2FmZShnZXRDVE0oKSwgcGF0aCkpCiAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRl
eHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJhdygpOworCiAgICAgY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmIHN0YXRlID0gbV9jb21tb24tPnN0YXRlOwogICAgIHBhdGguc2V0RmlsbFR5cGUo
c3RhdGUuZmlsbFJ1bGUgPT0gUlVMRV9FVkVOT0REID8KICAgICAgICAgU2tQYXRoOjprRXZlbk9k
ZF9GaWxsVHlwZSA6IFNrUGF0aDo6a1dpbmRpbmdfRmlsbFR5cGUpOwpAQCAtNzQ1LDYgKzc5NCwx
NiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAgICAgICAgIENs
aXBSZWN0VG9DYW52YXMoKnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgciwgJnIpOwogICAg
IH0KIAorI2lmIFVTRShHTEVTMl9SRU5ERVJJTkcpCisgICAgaWYgKHBsYXRmb3JtQ29udGV4dCgp
LT51c2VHUFUoKSAmJiAhbV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuICYmICFtX2NvbW1vbi0+
c3RhdGUuZmlsbEdyYWRpZW50KSB7CisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJl
Rm9ySGFyZHdhcmVEcmF3KCk7CisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5ncHVDYW52YXMo
KS0+ZmlsbFJlY3QocmVjdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAg
IHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yU29mdHdhcmVEcmF3KCk7CisKICAgICBTa1Bh
aW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygm
cGFpbnQpOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKS0+ZHJhd1JlY3QociwgcGFp
bnQpOwpAQCAtNzU3LDYgKzgxNiwxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0KCktPnVz
ZUdQVSgpICYmICFtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4gJiYgIW1fY29tbW9uLT5zdGF0
ZS5maWxsR3JhZGllbnQpIHsKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JI
YXJkd2FyZURyYXcoKTsKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPmdwdUNhbnZhcygpLT5m
aWxsUmVjdChyZWN0LCBjb2xvciwgY29sb3JTcGFjZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisjZW5kaWYKKworICAgIHBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yU29mdHdhcmVEcmF3
KCk7CisKICAgICBTa1JlY3QgciA9IHJlY3Q7CiAgICAgaWYgKCFpc1JlY3RTa2lhU2FmZShnZXRD
VE0oKSwgcikpIHsKICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHdoZW4gdGhlIHJlY3RhbmdsZSBv
dmVyZmxvd3MgZml4ZWQgcG9pbnQuIFRoaXMgaXMgYQpAQCAtNzg5LDYgKzg1OCw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY28KICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFy
ZUZvclNvZnR3YXJlRHJhdygpOworCiAgICAgU2tSZWN0IHIgPSByZWN0OwogICAgIGlmICghaXNS
ZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHIpKQogICAgICAgICAvLyBTZWUgZmlsbFJlY3QoKS4KQEAg
LTg3Miw2ICs5NDMsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNjYWxlKGNvbnN0IEZsb2F0
UwogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKworI2lm
IFVTRShHTEVTMl9SRU5ERVJJTkcpCisgICAgaWYgKHBsYXRmb3JtQ29udGV4dCgpLT51c2VHUFUo
KSkKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPmdwdUNhbnZhcygpLT5zY2FsZShzaXplKTsK
KyNlbmRpZgorCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5zY2FsZShXZWJDb3Jl
RmxvYXRUb1NrU2NhbGFyKHNpemUud2lkdGgoKSksCiAgICAgICAgIFdlYkNvcmVGbG9hdFRvU2tT
Y2FsYXIoc2l6ZS5oZWlnaHQoKSkpOwogfQpAQCAtODgwLDYgKzk1NywxMCBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6c2V0QWxwaGEoZmxvYXQgYWxwCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOworI2lmIFVTRShHTEVTMl9SRU5ERVJJTkcpCisgICAgaWYg
KHBsYXRmb3JtQ29udGV4dCgpLT51c2VHUFUoKSkKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0KCkt
PmdwdUNhbnZhcygpLT5zZXRBbHBoYShhbHBoYSk7CisjZW5kaWYKICAgICBwbGF0Zm9ybUNvbnRl
eHQoKS0+c2V0QWxwaGEoYWxwaGEpOwogfQogCkBAIC04ODcsNiArOTY4LDEwIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpzZXRDb21wb3NpdGVPcGVyYXQKIHsKICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpKQogICAgICAgICByZXR1cm47CisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBp
ZiAocGxhdGZvcm1Db250ZXh0KCktPnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQo
KS0+Z3B1Q2FudmFzKCktPnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcCk7CisjZW5kaWYKICAgICBw
bGF0Zm9ybUNvbnRleHQoKS0+c2V0WGZlcm1vZGVNb2RlKFdlYkNvcmVDb21wb3NpdGVUb1NraWFD
b21wb3NpdGUob3ApKTsKIH0KIApAQCAtOTczLDYgKzEwNTgsMTEgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtRmlsbENvbAogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKKyNpZiBVU0UoR0xFUzJfUkVOREVSSU5HKQorICAgIGlmIChwbGF0
Zm9ybUNvbnRleHQoKS0+dXNlR1BVKCkpCisgICAgICAgIHBsYXRmb3JtQ29udGV4dCgpLT5ncHVD
YW52YXMoKS0+c2V0RmlsbENvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKKyNlbmRpZgorCiAgICAg
cGxhdGZvcm1Db250ZXh0KCktPnNldEZpbGxDb2xvcihjb2xvci5yZ2IoKSk7CiB9CiAKQEAgLTEx
MDIsNiArMTE5Miw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VBcmMoY29uc3QgSW4K
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0
Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJhdygpOworCiAgICAgU2tQYWludCBw
YWludDsKICAgICBTa1JlY3Qgb3ZhbCA9IHI7CiAgICAgaWYgKHN0cm9rZVN0eWxlKCkgPT0gTm9T
dHJva2UpIHsKQEAgLTExMzMsNiArMTIyNSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoKCkKICAgICBpZiAoIWlzUGF0aFNraWFTYWZlKGdldENUTSgpLCBwYXRoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgcGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2FyZURy
YXcoKTsKKwogICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNldHVw
UGFpbnRGb3JTdHJva2luZygmcGFpbnQsIDAsIDApOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5j
YW52YXMoKS0+ZHJhd1BhdGgocGF0aCwgcGFpbnQpOwpAQCAtMTE0Niw2ICsxMjQwLDggQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRgogICAgIGlmICghaXNSZWN0U2tp
YVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQogICAgICAgICByZXR1cm47CiAKKyAgICBwbGF0Zm9ybUNv
bnRleHQoKS0+cHJlcGFyZUZvclNvZnR3YXJlRHJhdygpOworCiAgICAgU2tQYWludCBwYWludDsK
ICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwg
MCk7CiAgICAgcGFpbnQuc2V0U3Ryb2tlV2lkdGgoV2ViQ29yZUZsb2F0VG9Ta1NjYWxhcihsaW5l
V2lkdGgpKTsKQEAgLTExNTcsNiArMTI1MywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cm90
YXRlKGZsb2F0IGFuZ2xlCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBpZiAocGxhdGZvcm1Db250ZXh0
KCktPnVzZUdQVSgpKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Z3B1Q2FudmFzKCktPnJv
dGF0ZShhbmdsZUluUmFkaWFucyk7CisjZW5kaWYKKwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5j
YW52YXMoKS0+cm90YXRlKFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIoCiAgICAgICAgIGFuZ2xlSW5S
YWRpYW5zICogKDE4MC4wZiAvIDMuMTQxNTkyNjVmKSkpOwogfQpAQCAtMTE2Niw2ICsxMjY3LDEx
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgdywKICAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoR0xFUzJfUkVOREVS
SU5HKQorICAgIGlmIChwbGF0Zm9ybUNvbnRleHQoKS0+dXNlR1BVKCkpCisgICAgICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+dHJhbnNsYXRlKHcsIGgpOworI2VuZGlmCisKICAg
ICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPnRyYW5zbGF0ZShXZWJDb3JlRmxvYXRUb1Nr
U2NhbGFyKHcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YkNvcmVGbG9hdFRvU2tTY2FsYXIoaCkpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAkocmV2aXNpb24g
NjQyMTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0
U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4Miw3ICs2ODIsNyBAQCB2b2lkIFBsYXRmb3Jt
Q29udGV4dFNraWE6OnNldEdMRVMyQ29udGV4CiAgICAgbV9ncHVDYW52YXMgPSBuZXcgV2ViQ29y
ZTo6R0xFUzJDYW52YXMoY29udGV4dCwgc2l6ZSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0
U2tpYTo6cHJlU29mdHdhcmVEcmF3KCkgY29uc3QKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6
cHJlcGFyZUZvclNvZnR3YXJlRHJhdygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3VzZUdQVSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tp
YTo6cHJlU29mdHdhcmVEcmEKICAgICB9CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6
cHJlSGFyZHdhcmVEcmF3KCkgY29uc3QKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlcGFy
ZUZvckhhcmR3YXJlRHJhdygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3VzZUdQVSkKICAgICAgICAg
cmV0dXJuOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29u
dGV4dFNraWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
UGxhdGZvcm1Db250ZXh0U2tpYS5oCShyZXZpc2lvbiA2NDIxNCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE5MSwxMyArMTkxLDEzIEBAIHB1YmxpYzoKICNpZiBVU0UoR0xFUzJfUkVOREVSSU5HKQogICAg
IC8vIENhbGwgdGhlc2UgYmVmb3JlIG1ha2luZyBhIGNhbGwgdGhhdCBtYW5pcHVsYXRlcyB0aGUg
dW5kZXJseWluZwogICAgIC8vIHNraWE6OlBsYXRmb3JtQ2FudmFzIG9yIFdlYkNvcmU6OkdMRVMy
Q2FudmFzCi0gICAgdm9pZCBwcmVTb2Z0d2FyZURyYXcoKSBjb25zdDsKLSAgICB2b2lkIHByZUhh
cmR3YXJlRHJhdygpIGNvbnN0OworICAgIHZvaWQgcHJlcGFyZUZvclNvZnR3YXJlRHJhdygpIGNv
bnN0OworICAgIHZvaWQgcHJlcGFyZUZvckhhcmR3YXJlRHJhdygpIGNvbnN0OwogICAgIC8vIENh
bGwgdG8gZm9yY2UgdGhlIHNraWE6OlBsYXRmb3JtQ2FudmFzIHRvIGNvbnRhaW4gYWxsIHJlbmRl
cmluZyByZXN1bHRzLgogICAgIHZvaWQgc3luY1NvZnR3YXJlQ2FudmFzKCkgY29uc3Q7CiAjZWxz
ZQotICAgIHZvaWQgcHJlU29mdHdhcmVEcmF3KCkgY29uc3Qge30KLSAgICB2b2lkIHByZUhhcmR3
YXJlRHJhdygpIGNvbnN0IHt9CisgICAgdm9pZCBwcmVwYXJlRm9yU29mdHdhcmVEcmF3KCkgY29u
c3Qge30KKyAgICB2b2lkIHByZXBhcmVGb3JIYXJkd2FyZURyYXcoKSBjb25zdCB7fQogICAgIHZv
aWQgc3luY1NvZnR3YXJlQ2FudmFzKCkgY29uc3Qge30KICNlbmRpZgogCg==
</data>
<flag name="review"
          id="51115"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>