<?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>96684</bug_id>
          
          <creation_ts>2012-09-13 12:43:58 -0700</creation_ts>
          <short_desc>[BlackBerry] Support copying image data in WebOverlay</short_desc>
          <delta_ts>2012-09-17 07:57:17 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Jakob Petsovits">jpetsovits</reporter>
          <assigned_to name="Jakob Petsovits">jpetsovits</assigned_to>
          <cc>anilsson</cc>
    
    <cc>anlo</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>719805</commentid>
    <comment_count>0</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-09-13 12:43:58 -0700</bug_when>
    <thetext>The publicly exposed WebOverlay class provides a method setContentsToImage() to assign a pointer to pixel data, which is later used to provide texture data for the underlying compositing layer. This works well for static images that stay in memory and never change, but not so well for images with changing contents or where the image data is being reassigned from different image sources that are not constantly kept around in memory.

Due to the delayed upload and delayed fetching of EGLImage data by the GPU, we shouldn&apos;t assume the caller to know how long the image should be retained. Instead, we should offer another method of setting image data that takes ownership of the pixel data.

This patch adds an option to setContentsToImage() that copies the passed pixel data and doesn&apos;t destroy it until both the texture is destroyed and the image contents are changed. Using this method, the caller can withdraw the passed pixel array right after the setContentsToImage() call without consequences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719814</commentid>
    <comment_count>1</comment_count>
      <attachid>163940</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-09-13 12:49:56 -0700</bug_when>
    <thetext>Created attachment 163940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719935</commentid>
    <comment_count>2</comment_count>
      <attachid>163965</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-09-13 14:22:45 -0700</bug_when>
    <thetext>Created attachment 163965
Patch

Not sure why the first attempt above didn&apos;t apply. Git had no rebase issues (except for ChangeLog, which is irrelevant here) but the bot uses regular patch, so let&apos;s try again with the rebased version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720960</commentid>
    <comment_count>3</comment_count>
      <attachid>164194</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-09-14 11:10:02 -0700</bug_when>
    <thetext>Created attachment 164194
Patch

There, that should do it. Shoot for the sky, bots!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721913</commentid>
    <comment_count>4</comment_count>
      <attachid>164194</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-09-17 07:41:13 -0700</bug_when>
    <thetext>Comment on attachment 164194
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721930</commentid>
    <comment_count>5</comment_count>
      <attachid>164194</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 07:57:13 -0700</bug_when>
    <thetext>Comment on attachment 164194
Patch

Clearing flags on attachment: 164194

Committed r128755: &lt;http://trac.webkit.org/changeset/128755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721932</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 07:57:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163940</attachid>
            <date>2012-09-13 12:49:56 -0700</date>
            <delta_ts>2012-09-13 14:22:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96684-20120913154813.patch</filename>
            <type>text/plain</type>
            <size>12094</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3OTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA0NjhmNWZiZGU1YTEzZTliYjRiMTJkOWFkNjA0ZTQ5ZTNlN2Y0Y2IyLi45YTJhYWEyODk0
NjQzZDJkMmYxYmViYzlhZmYwNTNkM2ZhNTQ2MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMi0wOS0xMyAgSmFrb2IgUGV0c292aXRzICA8anBl
dHNvdml0c0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBTdXBwb3J0IGNvcHlpbmcg
aW1hZ2UgZGF0YSBpbiBXZWJPdmVybGF5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY2ODQKKyAgICAgICAgUklNIFBSIDE5NTQ0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdWJsaWNseSBleHBv
c2VkIFdlYk92ZXJsYXkgY2xhc3MgcHJvdmlkZXMgYSBtZXRob2QKKyAgICAgICAgc2V0Q29udGVu
dHNUb0ltYWdlKCkgdG8gYXNzaWduIGEgcG9pbnRlciB0byBwaXhlbCBkYXRhLAorICAgICAgICB3
aGljaCBpcyBsYXRlciB1c2VkIHRvIHByb3ZpZGUgdGV4dHVyZSBkYXRhIGZvciB0aGUKKyAgICAg
ICAgdW5kZXJseWluZyBjb21wb3NpdGluZyBsYXllci4gVGhpcyB3b3JrcyB3ZWxsIGZvciBzdGF0
aWMKKyAgICAgICAgaW1hZ2VzIHRoYXQgc3RheSBpbiBtZW1vcnkgYW5kIG5ldmVyIGNoYW5nZSwg
YnV0IG5vdAorICAgICAgICBzbyB3ZWxsIGZvciBpbWFnZXMgd2l0aCBjaGFuZ2luZyBjb250ZW50
cyBvciB3aGVyZSB0aGUKKyAgICAgICAgaW1hZ2UgZGF0YSBpcyBiZWluZyByZWFzc2lnbmVkIGZy
b20gZGlmZmVyZW50IGltYWdlCisgICAgICAgIHNvdXJjZXMgdGhhdCBhcmUgbm90IGNvbnN0YW50
bHkga2VwdCBhcm91bmQgaW4gbWVtb3J5LgorCisgICAgICAgIER1ZSB0byB0aGUgZGVsYXllZCB1
cGxvYWQgYW5kIGRlbGF5ZWQgZmV0Y2hpbmcgb2YKKyAgICAgICAgRUdMSW1hZ2UgZGF0YSBieSB0
aGUgR1BVLCB3ZSBzaG91bGRuJ3QgYXNzdW1lIHRoZSBjYWxsZXIKKyAgICAgICAgdG8ga25vdyBo
b3cgbG9uZyB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHJldGFpbmVkLiBJbnN0ZWFkLAorICAgICAgICB3
ZSBzaG91bGQgb2ZmZXIgYW5vdGhlciBtZXRob2Qgb2Ygc2V0dGluZyBpbWFnZSBkYXRhCisgICAg
ICAgIHRoYXQgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBwaXhlbCBkYXRhLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBhbiBvcHRpb24gdG8gc2V0Q29udGVudHNUb0ltYWdlKCkgdGhhdAorICAg
ICAgICBjb3BpZXMgdGhlIHBhc3NlZCBwaXhlbCBkYXRhIGFuZCBkb2Vzbid0IGRlc3Ryb3kgaXQK
KyAgICAgICAgdW50aWwgYm90aCB0aGUgdGV4dHVyZSBpcyBkZXN0cm95ZWQgYW5kIHRoZSBpbWFn
ZQorICAgICAgICBjb250ZW50cyBhcmUgY2hhbmdlZC4gVXNpbmcgdGhpcyBtZXRob2QsIHRoZSBj
YWxsZXIgY2FuCisgICAgICAgIHdpdGhkcmF3IHRoZSBwYXNzZWQgcGl4ZWwgYXJyYXkgcmlnaHQg
YWZ0ZXIgdGhlCisgICAgICAgIHNldENvbnRlbnRzVG9JbWFnZSgpIGNhbGwgd2l0aG91dCBjb25z
ZXF1ZW5jZXMuCisKKyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheS5jcHA6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXk6OnNldENvbnRlbnRzVG9JbWFnZSk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpzZXRD
b250ZW50c1RvSW1hZ2UpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5
TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdU
aHJlYWRDbGllbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5
ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6aW52YWxpZGF0ZSk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRD
b250ZW50cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6Y2xlYXJVcGxvYWRlZENv
bnRlbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheUxheWVyQ29t
cG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzVG9Db2xvcik6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Ojp1
cGxvYWRUZXh0dXJlc0lmTmVlZGVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
T3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmRlbGV0ZVRleHR1cmVzKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1Ro
cmVhZDo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheS5oOgor
ICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAgICAgKFdlYk92ZXJsYXlQcml2YXRl
KToKKyAgICAgICAgKFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKFdl
Yk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KToKKyAgICAgICAgKFdlYk92ZXJs
YXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQpOgorCiAyMDEyLTA5LTA4ICBNYXggRmVpbCAgPG1m
ZWlsQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEV4aXRpbmcgZnVsbHNjcmVlbiBt
b2RlIGNhbiBsZWF2ZSB1c2VyIHN0dWNrIHdpdGhvdXQgQnJvd3NlciBtZW51cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKaW5kZXggODNmMWQ4N2Y2YmU5Yzdj
ODJjMzEzMTc5YTQxMGY0ZmU0NGIzYjZlMy4uNjk1OTRjZjM4YmQ4ZDM3ZjkxNTlkNTRmYjExYmY0
NGE4MDViNzQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJP
dmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXku
Y3BwCkBAIC0xNjgsOSArMTY4LDkgQEAgdm9pZCBXZWJPdmVybGF5OjpyZW1vdmVGcm9tUGFyZW50
KCkKICAgICBkLT5wYXJlbnQgPSAwOwogfQogCi12b2lkIFdlYk92ZXJsYXk6OnNldENvbnRlbnRz
VG9JbWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBjb25zdCBQbGF0Zm9ybTo6SW50U2l6
ZSYgaW1hZ2VTaXplKQordm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3Qg
dW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgUGxhdGZvcm06OkludFNpemUmIGltYWdlU2l6ZSwg
SW1hZ2VEYXRhQWRvcHRpb25UeXBlIGFkb3B0aW9uVHlwZSkKIHsKLSAgICBkLT5zZXRDb250ZW50
c1RvSW1hZ2UoZGF0YSwgaW1hZ2VTaXplKTsKKyAgICBkLT5zZXRDb250ZW50c1RvSW1hZ2UoZGF0
YSwgaW1hZ2VTaXplLCBhZG9wdGlvblR5cGUpOwogfQogCiB2b2lkIFdlYk92ZXJsYXk6OnNldENv
bnRlbnRzVG9Db2xvcihpbnQgciwgaW50IGcsIGludCBiLCBpbnQgYSkKQEAgLTMzNCw3ICszMzQs
NyBAQCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpyZW1vdmVGcm9tUGFyZW50
KCkKICAgICBtX2xheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CiB9CiAKLXZvaWQgV2ViT3Zlcmxh
eVByaXZhdGVXZWJLaXRUaHJlYWQ6OnNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUpCit2b2lkIFdlYk92
ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBXZWJPdmVy
bGF5OjpJbWFnZURhdGFBZG9wdGlvblR5cGUgYWRvcHRpb25UeXBlKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CkBAIC0zODgsNiArMzg4LDcgQEAgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRp
bmdUaHJlYWRDbGllbnQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KCkK
ICAgICA6IG1fZHJhd3NDb250ZW50KGZhbHNlKQogI2lmICFVU0UoU0tJQSkKICAgICAsIG1fY29u
dGVudHMoMCkKKyAgICAsIG1fdXBsb2FkZWRDb250ZW50cygwKQogI2VuZGlmCiAgICAgLCBtX2xh
eWVyQ29tcG9zaXRpbmdUaHJlYWQoMCkKICAgICAsIG1fY2xpZW50KDApCkBAIC00MDIsNiArNDAz
LDcgQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6c2V0RHJh
d3NDb250ZW50KGJvb2wgZHJhd3NDb250ZW50KQogdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3Np
dGluZ1RocmVhZENsaWVudDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV90ZXh0dXJlLmNsZWFyKCk7
CisgICAgY2xlYXJVcGxvYWRlZENvbnRlbnRzKCk7CiB9CiAKIHZvaWQgV2ViT3ZlcmxheUxheWVy
Q29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OlRleHR1
cmU6Okhvc3RUeXBlJiBjb250ZW50cykKQEAgLTQwOSw2ICs0MTEsMTYgQEAgdm9pZCBXZWJPdmVy
bGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6c2V0Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6VGV4dHVyZToKICAgICBtX2NvbnRlbnRzID0gY29udGVudHM7CiAgICAgbV9jb2xvciA9IENv
bG9yKCk7CiAgICAgbV90ZXh0dXJlLmNsZWFyKCk7CisgICAgY2xlYXJVcGxvYWRlZENvbnRlbnRz
KCk7Cit9CisKK3ZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmNs
ZWFyVXBsb2FkZWRDb250ZW50cygpCit7CisjaWYgVVNFKFNLSUEpCisgICAgbV91cGxvYWRlZENv
bnRlbnRzID0gU2tCaXRtYXAoKTsKKyNlbHNlCisgICAgbV91cGxvYWRlZENvbnRlbnRzID0gMDsK
KyNlbmRpZgogfQogCiB2b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50
OjpzZXRDb250ZW50c1RvQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtNDIzLDYgKzQzNSw3
IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRl
bnRzVG9Db2xvcihjb25zdCBDb2xvciYgY29sCiAjZW5kaWYKICAgICBtX2NvbG9yID0gY29sb3I7
CiAgICAgbV90ZXh0dXJlLmNsZWFyKCk7CisgICAgY2xlYXJVcGxvYWRlZENvbnRlbnRzKCk7CiB9
CiAKIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmxheWVyQ29t
cG9zaXRpbmdUaHJlYWREZXN0cm95ZWQoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZCop
CkBAIC00NjYsNyArNDc5LDggQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVh
ZENsaWVudDo6dXBsb2FkVGV4dHVyZXNJZk5lZWRlZChMYXllckNvbXBvc2kKICAgICBtX3RleHR1
cmUgPSBUZXh0dXJlOjpjcmVhdGUoKTsKICAgICBtX3RleHR1cmUtPnByb3RlY3QoSW50U2l6ZSht
X2NvbnRlbnRzLndpZHRoKCksIG1fY29udGVudHMuaGVpZ2h0KCkpKTsKICAgICBJbnRSZWN0IGJp
dG1hcFJlY3QoMCwgMCwgbV9jb250ZW50cy53aWR0aCgpLCBtX2NvbnRlbnRzLmhlaWdodCgpKTsK
LSAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fY29udGVudHMsIGJpdG1hcFJlY3QsIGJp
dG1hcFJlY3QsIGZhbHNlKTsKKyAgICBtX3VwbG9hZGVkQ29udGVudHMgPSBtX2NvbnRlbnRzOwor
ICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMobV91cGxvYWRlZENvbnRlbnRzLCBiaXRtYXBS
ZWN0LCBiaXRtYXBSZWN0LCBmYWxzZSk7CiAjZWxzZQogICAgIGlmICghbV9jb250ZW50cyAmJiAh
bV9jb2xvci5pc1ZhbGlkKCkgJiYgIW1fZHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm47CkBA
IC00OTgsNyArNTEyLDggQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENs
aWVudDo6dXBsb2FkVGV4dHVyZXNJZk5lZWRlZChMYXllckNvbXBvc2kKIAogICAgIG1fdGV4dHVy
ZSA9IFRleHR1cmU6OmNyZWF0ZSgpOwogICAgIEludFJlY3QgYml0bWFwUmVjdCgwLCAwLCBtX2xh
eWVyQ29tcG9zaXRpbmdUaHJlYWQtPmJvdW5kcygpLndpZHRoKCksIG1fbGF5ZXJDb21wb3NpdGlu
Z1RocmVhZC0+Ym91bmRzKCkuaGVpZ2h0KCkpOwotICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVu
dHMobV9jb250ZW50cywgYml0bWFwUmVjdCwgYml0bWFwUmVjdCwgZmFsc2UpOworICAgIG1fdXBs
b2FkZWRDb250ZW50cyA9IG1fY29udGVudHM7CisgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50
cyhtX3VwbG9hZGVkQ29udGVudHMsIGJpdG1hcFJlY3QsIGJpdG1hcFJlY3QsIGZhbHNlKTsKICNl
bmRpZgogfQogCkBAIC01MjYsNiArNTQxLDcgQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3Np
dGluZ1RocmVhZENsaWVudDo6ZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQKIHZv
aWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmRlbGV0ZVRleHR1cmVz
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQqKQogewogICAgIG1fdGV4dHVyZS5jbGVhcigpOworICAg
IGNsZWFyVXBsb2FkZWRDb250ZW50cygpOwogfQogCiBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0
aW5nVGhyZWFkOjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkKFBhc3NSZWZQdHI8
TGF5ZXJDb21wb3NpdGluZ1RocmVhZD4gbGF5ZXJDb21wb3NpdGluZ1RocmVhZCkKQEAgLTY1Niw3
ICs2NzIsNyBAQCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQ6OnJlbW92
ZUZyb21QYXJlbnQoKQogICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdSdW4oKTsKIH0KIAotdm9pZCBX
ZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpzZXRDb250ZW50c1RvSW1hZ2UoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgSW50U2l6ZSYgaW1hZ2VTaXplKQordm9pZCBX
ZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpzZXRDb250ZW50c1RvSW1hZ2UoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgSW50U2l6ZSYgaW1hZ2VTaXplLCBXZWJPdmVy
bGF5OjpJbWFnZURhdGFBZG9wdGlvblR5cGUgYWRvcHRpb25UeXBlKQogewogICAgIGlmICghbV9s
YXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KQogICAgICAgICByZXR1cm47CkBAIC02NzEsNyAr
Njg3LDIyIEBAIHZvaWQgV2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6c2V0Q29u
dGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqCiAKICAgICBTa0JpdG1hcCBjb250ZW50
czsKICAgICBjb250ZW50cy5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnLCBp
bWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKTsKLSAgICBjb250ZW50cy5zZXRQ
aXhlbHMoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YSkpOworCisgICAgc3dpdGNoIChh
ZG9wdGlvblR5cGUpIHsKKyAgICBjYXNlIFdlYk92ZXJsYXk6OlJlZmVyZW5jZUltYWdlRGF0YToK
KyAgICAgICAgY29udGVudHMuc2V0UGl4ZWxzKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRh
dGEpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJPdmVybGF5OjpDb3B5SW1hZ2VEYXRh
OgorICAgICAgICBpZiAoY29udGVudHMuYWxsb2NQaXhlbHMoKSkgeworICAgICAgICAgICAgY29u
dGVudHMubG9ja1BpeGVscygpOworICAgICAgICAgICAgc2l6ZV90IGJ5dGVzID0gU2tCaXRtYXA6
OkNvbXB1dGVTaXplKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgaW1hZ2VTaXplLndpZHRo
KCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICBtZW1jcHkoY29udGVudHMuZ2V0
UGl4ZWxzKCksIGRhdGEsIGJ5dGVzKTsKKyAgICAgICAgICAgIGNvbnRlbnRzLnVubG9ja1BpeGVs
cygpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIAogICAgIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVh
ZENsaWVudC0+c2V0Q29udGVudHMoY29udGVudHMpOwogI2Vsc2UKQEAgLTgwMCw3ICs4MzEsNyBA
QCB2b2lkIFdlYk92ZXJsYXk6OnJlbW92ZUFuaW1hdGlvbihjb25zdCBXZWJTdHJpbmcmKQogewog
fQogCi12b2lkIFdlYk92ZXJsYXk6OnNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBj
aGFyKiwgY29uc3QgUGxhdGZvcm06OkludFNpemUmKQordm9pZCBXZWJPdmVybGF5OjpzZXRDb250
ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IFBsYXRmb3JtOjpJbnRTaXpl
JiwgSW1hZ2VEYXRhQWRvcHRpb25UeXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheS5oCmluZGV4IDVmZTgwYzQyMzA5YmE1YWM5MGNmMWI1YjdlOTljMTBl
ZDgyYzk5NzEuLmE1OWY2MGUyODY0MmYxMzNjNzg0ZjVkYzZkNWQ3OGMwMTc3YTU5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCkBAIC01NSw2ICs1NSwxMSBA
QCBjbGFzcyBXZWJTdHJpbmc7CiAgKi8KIGNsYXNzIEJMQUNLQkVSUllfRVhQT1JUIFdlYk92ZXJs
YXkgewogcHVibGljOgorICAgIGVudW0gSW1hZ2VEYXRhQWRvcHRpb25UeXBlIHsKKyAgICAgICAg
UmVmZXJlbmNlSW1hZ2VEYXRhLAorICAgICAgICBDb3B5SW1hZ2VEYXRhCisgICAgfTsKKwogICAg
IFdlYk92ZXJsYXkoKTsKICAgICBXZWJPdmVybGF5KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5XZWJPdmVybGF5KCk7CkBAIC05NCw3ICs5OSw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGFkZENoaWxkKFdlYk92ZXJsYXkqKTsKICAgICB2b2lkIHJlbW92ZUZyb21Q
YXJlbnQoKTsKIAotICAgIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBpbWFnZVNpemUpOworICAgIHZvaWQg
c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFBsYXRm
b3JtOjpJbnRTaXplJiBpbWFnZVNpemUsIEltYWdlRGF0YUFkb3B0aW9uVHlwZSA9IFJlZmVyZW5j
ZUltYWdlRGF0YSk7CiAgICAgdm9pZCBzZXRDb250ZW50c1RvQ29sb3IoaW50IHIsIGludCBnLCBp
bnQgYiwgaW50IGEpOwogICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAppbmRleCBhNTBhZGE4MGYzYTVh
OGU1ZjY2ODM5Y2MzMDEyODBhMzJmMTFhYjgyLi4zMGE3MDRhZTJiOTQyMjgxNGUwMGEzZWUzMTI2
ZmMyODc2YTVlOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
Yk92ZXJsYXlfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3Zlcmxh
eV9wLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5j
bHVkZSAiTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oIgogI2luY2x1ZGUgIlRleHR1cmUuaCIKKyNp
bmNsdWRlICJXZWJPdmVybGF5LmgiCiAjaW5jbHVkZSAiV2ViT3ZlcmxheU92ZXJyaWRlLmgiCiAK
ICNpbmNsdWRlIDxwdGhyZWFkLmg+CkBAIC00Nyw3ICs0OCw2IEBAIGNsYXNzIEtleWZyYW1lVmFs
dWVMaXN0OwogbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNs
YXNzIFdlYk92ZXJsYXk7CiBjbGFzcyBXZWJPdmVybGF5Q2xpZW50OwogY2xhc3MgV2ViUGFnZVBy
aXZhdGU7CiAKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZChXZWJPdmVybGF5UHJpdmF0ZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJv
bVBhcmVudCgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXpl
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIFdlYk92ZXJs
YXk6OkltYWdlRGF0YUFkb3B0aW9uVHlwZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldERyYXdzQ29udGVudChib29sKSA9IDA7CiAKQEAgLTE1NCw3ICsxNTQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFdlYk92ZXJsYXlQcml2YXRlKik7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZUZyb21QYXJlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgaW1hZ2VTaXplKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6
ZSwgV2ViT3ZlcmxheTo6SW1hZ2VEYXRhQWRvcHRpb25UeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb0NvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAgICAgdmlydHVhbCB2
b2lkIHNldERyYXdzQ29udGVudChib29sKTsKIApAQCAtMjA0LDkgKzIwNCwxMyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmVzKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRp
bmdUaHJlYWQqKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyVXBsb2FkZWRDb250ZW50cygp
OworCitwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlPiBtX3RleHR1cmU7CiAg
ICAgYm9vbCBtX2RyYXdzQ29udGVudDsKICAgICBXZWJDb3JlOjpUZXh0dXJlOjpIb3N0VHlwZSBt
X2NvbnRlbnRzOworICAgIFdlYkNvcmU6OlRleHR1cmU6Okhvc3RUeXBlIG1fdXBsb2FkZWRDb250
ZW50czsKICAgICBXZWJDb3JlOjpDb2xvciBtX2NvbG9yOwogICAgIFdlYkNvcmU6OkxheWVyQ29t
cG9zaXRpbmdUaHJlYWQqIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZDsKICAgICBXZWJPdmVybGF5
KiBtX293bmVyOwpAQCAtMjQ1LDcgKzI0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
YWRkQ2hpbGQoV2ViT3ZlcmxheVByaXZhdGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJv
bVBhcmVudCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBXZWJPdmVybGF5OjpJbWFn
ZURhdGFBZG9wdGlvblR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhd3NDb250ZW50
KGJvb2wpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163965</attachid>
            <date>2012-09-13 14:22:45 -0700</date>
            <delta_ts>2012-09-14 11:10:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96684-20120913172101.patch</filename>
            <type>text/plain</type>
            <size>12146</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA5MTE4YTFlM2RjMzdkMWZiNjRiNjExMjQ5Mjc5MGZiNTY3Nzc1NGQ3Li4zMTg3MzcyYjVk
ODcyNDI1ZTYxYzI5NGU3MTRmYmM1Nzk4MTJhZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wOS0xMyAgSmFrb2IgUGV0c292aXRzICA8anBl
dHNvdml0c0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBTdXBwb3J0IGNvcHlpbmcg
aW1hZ2UgZGF0YSBpbiBXZWJPdmVybGF5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY2ODQKKyAgICAgICAgUklNIFBSIDE5NTQ0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBJbnRlcm5hbGx5IHJldmlld2Vk
IGJ5IEFydmlkIE5pbHNzb24uCisKKyAgICAgICAgVGhlIHB1YmxpY2x5IGV4cG9zZWQgV2ViT3Zl
cmxheSBjbGFzcyBwcm92aWRlcyBhIG1ldGhvZAorICAgICAgICBzZXRDb250ZW50c1RvSW1hZ2Uo
KSB0byBhc3NpZ24gYSBwb2ludGVyIHRvIHBpeGVsIGRhdGEsCisgICAgICAgIHdoaWNoIGlzIGxh
dGVyIHVzZWQgdG8gcHJvdmlkZSB0ZXh0dXJlIGRhdGEgZm9yIHRoZQorICAgICAgICB1bmRlcmx5
aW5nIGNvbXBvc2l0aW5nIGxheWVyLiBUaGlzIHdvcmtzIHdlbGwgZm9yIHN0YXRpYworICAgICAg
ICBpbWFnZXMgdGhhdCBzdGF5IGluIG1lbW9yeSBhbmQgbmV2ZXIgY2hhbmdlLCBidXQgbm90Cisg
ICAgICAgIHNvIHdlbGwgZm9yIGltYWdlcyB3aXRoIGNoYW5naW5nIGNvbnRlbnRzIG9yIHdoZXJl
IHRoZQorICAgICAgICBpbWFnZSBkYXRhIGlzIGJlaW5nIHJlYXNzaWduZWQgZnJvbSBkaWZmZXJl
bnQgaW1hZ2UKKyAgICAgICAgc291cmNlcyB0aGF0IGFyZSBub3QgY29uc3RhbnRseSBrZXB0IGFy
b3VuZCBpbiBtZW1vcnkuCisKKyAgICAgICAgRHVlIHRvIHRoZSBkZWxheWVkIHVwbG9hZCBhbmQg
ZGVsYXllZCBmZXRjaGluZyBvZgorICAgICAgICBFR0xJbWFnZSBkYXRhIGJ5IHRoZSBHUFUsIHdl
IHNob3VsZG4ndCBhc3N1bWUgdGhlIGNhbGxlcgorICAgICAgICB0byBrbm93IGhvdyBsb25nIHRo
ZSBpbWFnZSBzaG91bGQgYmUgcmV0YWluZWQuIEluc3RlYWQsCisgICAgICAgIHdlIHNob3VsZCBv
ZmZlciBhbm90aGVyIG1ldGhvZCBvZiBzZXR0aW5nIGltYWdlIGRhdGEKKyAgICAgICAgdGhhdCB0
YWtlcyBvd25lcnNoaXAgb2YgdGhlIHBpeGVsIGRhdGEuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGFuIG9wdGlvbiB0byBzZXRDb250ZW50c1RvSW1hZ2UoKSB0aGF0CisgICAgICAgIGNvcGll
cyB0aGUgcGFzc2VkIHBpeGVsIGRhdGEgYW5kIGRvZXNuJ3QgZGVzdHJveSBpdAorICAgICAgICB1
bnRpbCBib3RoIHRoZSB0ZXh0dXJlIGlzIGRlc3Ryb3llZCBhbmQgdGhlIGltYWdlCisgICAgICAg
IGNvbnRlbnRzIGFyZSBjaGFuZ2VkLiBVc2luZyB0aGlzIG1ldGhvZCwgdGhlIGNhbGxlciBjYW4K
KyAgICAgICAgd2l0aGRyYXcgdGhlIHBhc3NlZCBwaXhlbCBhcnJheSByaWdodCBhZnRlciB0aGUK
KyAgICAgICAgc2V0Q29udGVudHNUb0ltYWdlKCkgY2FsbCB3aXRob3V0IGNvbnNlcXVlbmNlcy4K
KworICAgICAgICAqIEFwaS9XZWJPdmVybGF5LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViT3ZlcmxheTo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVXZWJLaXRUaHJlYWQ6OnNldENvbnRlbnRzVG9J
bWFnZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBv
c2l0aW5nVGhyZWFkQ2xpZW50OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVu
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50OjppbnZhbGlkYXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJs
YXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpjbGVhclVwbG9hZGVkQ29udGVudHMpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZENsaWVudDo6c2V0Q29udGVudHNUb0NvbG9yKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnVwbG9hZFRleHR1
cmVzSWZOZWVkZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5
ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6ZGVsZXRlVGV4dHVyZXMpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpzZXRD
b250ZW50c1RvSW1hZ2UpOgorICAgICAgICAqIEFwaS9XZWJPdmVybGF5Lmg6CisgICAgICAgICog
QXBpL1dlYk92ZXJsYXlfcC5oOgorICAgICAgICAoV2ViT3ZlcmxheVByaXZhdGUpOgorICAgICAg
ICAoV2ViT3ZlcmxheVByaXZhdGVXZWJLaXRUaHJlYWQpOgorICAgICAgICAoV2ViT3ZlcmxheUxh
eWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQpOgorICAgICAgICAoV2ViT3ZlcmxheVByaXZhdGVD
b21wb3NpdGluZ1RocmVhZCk6CisKIDIwMTItMDktMTMgIEphY2t5IEppYW5nICA8emhhamlhbmdA
cmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gTWlzc2luZyBjb25kaXRpb25zIGluIElu
UmVnaW9uU2Nyb2xsZXJQcml2YXRlOjpjYW5TY3JvbGxSZW5kZXJCb3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwCmluZGV4IDgzZjFkODdmNmJlOWM3YzgyYzMx
MzE3OWE0MTBmNGZlNDRiM2I2ZTMuLjY5NTk0Y2YzOGJkOGQzN2Y5MTU5ZDU0ZmIxMWJmNDRhODA1
Yjc0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNwcApA
QCAtMTY4LDkgKzE2OCw5IEBAIHZvaWQgV2ViT3ZlcmxheTo6cmVtb3ZlRnJvbVBhcmVudCgpCiAg
ICAgZC0+cGFyZW50ID0gMDsKIH0KIAotdm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50c1RvSW1h
Z2UoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgUGxhdGZvcm06OkludFNpemUmIGlt
YWdlU2l6ZSkKK3ZvaWQgV2ViT3ZlcmxheTo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGRhdGEsIGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBpbWFnZVNpemUsIEltYWdl
RGF0YUFkb3B0aW9uVHlwZSBhZG9wdGlvblR5cGUpCiB7Ci0gICAgZC0+c2V0Q29udGVudHNUb0lt
YWdlKGRhdGEsIGltYWdlU2l6ZSk7CisgICAgZC0+c2V0Q29udGVudHNUb0ltYWdlKGRhdGEsIGlt
YWdlU2l6ZSwgYWRvcHRpb25UeXBlKTsKIH0KIAogdm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50
c1RvQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEpCkBAIC0zMzQsNyArMzM0LDcgQEAg
dm9pZCBXZWJPdmVybGF5UHJpdmF0ZVdlYktpdFRocmVhZDo6cmVtb3ZlRnJvbVBhcmVudCgpCiAg
ICAgbV9sYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwogfQogCi12b2lkIFdlYk92ZXJsYXlQcml2
YXRlV2ViS2l0VGhyZWFkOjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplKQordm9pZCBXZWJPdmVybGF5
UHJpdmF0ZVdlYktpdFRocmVhZDo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgV2ViT3ZlcmxheTo6
SW1hZ2VEYXRhQWRvcHRpb25UeXBlIGFkb3B0aW9uVHlwZSkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQpAQCAtMzg4LDYgKzM4OCw3IEBAIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudCgpCiAgICAg
OiBtX2RyYXdzQ29udGVudChmYWxzZSkKICNpZiAhVVNFKFNLSUEpCiAgICAgLCBtX2NvbnRlbnRz
KDApCisgICAgLCBtX3VwbG9hZGVkQ29udGVudHMoMCkKICNlbmRpZgogICAgICwgbV9sYXllckNv
bXBvc2l0aW5nVGhyZWFkKDApCiAgICAgLCBtX2NsaWVudCgwKQpAQCAtNDAyLDYgKzQwMyw3IEBA
IHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldERyYXdzQ29u
dGVudChib29sIGRyYXdzQ29udGVudCkKIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdU
aHJlYWRDbGllbnQ6OmludmFsaWRhdGUoKQogewogICAgIG1fdGV4dHVyZS5jbGVhcigpOworICAg
IGNsZWFyVXBsb2FkZWRDb250ZW50cygpOwogfQogCiB2b2lkIFdlYk92ZXJsYXlMYXllckNvbXBv
c2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpUZXh0dXJlOjpI
b3N0VHlwZSYgY29udGVudHMpCkBAIC00MDksNiArNDExLDE2IEBAIHZvaWQgV2ViT3ZlcmxheUxh
eWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OlRl
eHR1cmU6CiAgICAgbV9jb250ZW50cyA9IGNvbnRlbnRzOwogICAgIG1fY29sb3IgPSBDb2xvcigp
OwogICAgIG1fdGV4dHVyZS5jbGVhcigpOworICAgIGNsZWFyVXBsb2FkZWRDb250ZW50cygpOwor
fQorCit2b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpjbGVhclVw
bG9hZGVkQ29udGVudHMoKQoreworI2lmIFVTRShTS0lBKQorICAgIG1fdXBsb2FkZWRDb250ZW50
cyA9IFNrQml0bWFwKCk7CisjZWxzZQorICAgIG1fdXBsb2FkZWRDb250ZW50cyA9IDA7CisjZW5k
aWYKIH0KIAogdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6c2V0
Q29udGVudHNUb0NvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTQyMyw2ICs0MzUsNyBAQCB2
b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRDb250ZW50c1Rv
Q29sb3IoY29uc3QgQ29sb3ImIGNvbAogI2VuZGlmCiAgICAgbV9jb2xvciA9IGNvbG9yOwogICAg
IG1fdGV4dHVyZS5jbGVhcigpOworICAgIGNsZWFyVXBsb2FkZWRDb250ZW50cygpOwogfQogCiB2
b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpsYXllckNvbXBvc2l0
aW5nVGhyZWFkRGVzdHJveWVkKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQqKQpAQCAt
NDY2LDcgKzQ3OSw4IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGll
bnQ6OnVwbG9hZFRleHR1cmVzSWZOZWVkZWQoTGF5ZXJDb21wb3NpCiAgICAgbV90ZXh0dXJlID0g
VGV4dHVyZTo6Y3JlYXRlKCk7CiAgICAgbV90ZXh0dXJlLT5wcm90ZWN0KEludFNpemUobV9jb250
ZW50cy53aWR0aCgpLCBtX2NvbnRlbnRzLmhlaWdodCgpKSk7CiAgICAgSW50UmVjdCBiaXRtYXBS
ZWN0KDAsIDAsIG1fY29udGVudHMud2lkdGgoKSwgbV9jb250ZW50cy5oZWlnaHQoKSk7Ci0gICAg
bV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhtX2NvbnRlbnRzLCBiaXRtYXBSZWN0LCBiaXRtYXBS
ZWN0LCBmYWxzZSk7CisgICAgbV91cGxvYWRlZENvbnRlbnRzID0gbV9jb250ZW50czsKKyAgICBt
X3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fdXBsb2FkZWRDb250ZW50cywgYml0bWFwUmVjdCwg
Yml0bWFwUmVjdCwgZmFsc2UpOwogI2Vsc2UKICAgICBpZiAoIW1fY29udGVudHMgJiYgIW1fY29s
b3IuaXNWYWxpZCgpICYmICFtX2RyYXdzQ29udGVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDk4
LDcgKzUxMiw4IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6
OnVwbG9hZFRleHR1cmVzSWZOZWVkZWQoTGF5ZXJDb21wb3NpCiAKICAgICBtX3RleHR1cmUgPSBU
ZXh0dXJlOjpjcmVhdGUoKTsKICAgICBJbnRSZWN0IGJpdG1hcFJlY3QoMCwgMCwgbV9sYXllckNv
bXBvc2l0aW5nVGhyZWFkLT5ib3VuZHMoKS53aWR0aCgpLCBtX2xheWVyQ29tcG9zaXRpbmdUaHJl
YWQtPmJvdW5kcygpLmhlaWdodCgpKTsKLSAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1f
Y29udGVudHMsIGJpdG1hcFJlY3QsIGJpdG1hcFJlY3QsIGZhbHNlKTsKKyAgICBtX3VwbG9hZGVk
Q29udGVudHMgPSBtX2NvbnRlbnRzOworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMobV91
cGxvYWRlZENvbnRlbnRzLCBiaXRtYXBSZWN0LCBiaXRtYXBSZWN0LCBmYWxzZSk7CiAjZW5kaWYK
IH0KIApAQCAtNTI2LDYgKzU0MSw3IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdU
aHJlYWRDbGllbnQ6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkCiB2b2lkIFdl
Yk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkZWxldGVUZXh0dXJlcyhMYXll
ckNvbXBvc2l0aW5nVGhyZWFkKikKIHsKICAgICBtX3RleHR1cmUuY2xlYXIoKTsKKyAgICBjbGVh
clVwbG9hZGVkQ29udGVudHMoKTsKIH0KIAogV2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1Ro
cmVhZDo6V2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZChQYXNzUmVmUHRyPExheWVy
Q29tcG9zaXRpbmdUaHJlYWQ+IGxheWVyQ29tcG9zaXRpbmdUaHJlYWQpCkBAIC02NTYsNyArNjcy
LDcgQEAgdm9pZCBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpyZW1vdmVGcm9t
UGFyZW50KCkKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nUnVuKCk7CiB9CiAKLXZvaWQgV2ViT3Zl
cmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSkKK3ZvaWQgV2ViT3Zl
cmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSwgV2ViT3ZlcmxheTo6
SW1hZ2VEYXRhQWRvcHRpb25UeXBlIGFkb3B0aW9uVHlwZSkKIHsKICAgICBpZiAoIW1fbGF5ZXJD
b21wb3NpdGluZ1RocmVhZENsaWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtNjcxLDcgKzY4Nywy
MiBAQCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQ6OnNldENvbnRlbnRz
VG9JbWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKgogCiAgICAgU2tCaXRtYXAgY29udGVudHM7CiAg
ICAgY29udGVudHMuc2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgaW1hZ2VT
aXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgY29udGVudHMuc2V0UGl4ZWxz
KGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEpKTsKKworICAgIHN3aXRjaCAoYWRvcHRp
b25UeXBlKSB7CisgICAgY2FzZSBXZWJPdmVybGF5OjpSZWZlcmVuY2VJbWFnZURhdGE6CisgICAg
ICAgIGNvbnRlbnRzLnNldFBpeGVscyhjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViT3ZlcmxheTo6Q29weUltYWdlRGF0YToKKyAg
ICAgICAgaWYgKGNvbnRlbnRzLmFsbG9jUGl4ZWxzKCkpIHsKKyAgICAgICAgICAgIGNvbnRlbnRz
LmxvY2tQaXhlbHMoKTsKKyAgICAgICAgICAgIHNpemVfdCBieXRlcyA9IFNrQml0bWFwOjpDb21w
dXRlU2l6ZShTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIGltYWdlU2l6ZS53aWR0aCgpLCBp
bWFnZVNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgbWVtY3B5KGNvbnRlbnRzLmdldFBpeGVs
cygpLCBkYXRhLCBieXRlcyk7CisgICAgICAgICAgICBjb250ZW50cy51bmxvY2tQaXhlbHMoKTsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CiAKICAgICBtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGll
bnQtPnNldENvbnRlbnRzKGNvbnRlbnRzKTsKICNlbHNlCkBAIC04MDAsNyArODMxLDcgQEAgdm9p
ZCBXZWJPdmVybGF5OjpyZW1vdmVBbmltYXRpb24oY29uc3QgV2ViU3RyaW5nJikKIHsKIH0KIAot
dm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhcios
IGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJikKK3ZvaWQgV2ViT3ZlcmxheTo6c2V0Q29udGVudHNU
b0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCBjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYsIElt
YWdlRGF0YUFkb3B0aW9uVHlwZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYk92ZXJsYXkuaAppbmRleCA1ZmU4MGM0MjMwOWJhNWFjOTBjZjFiNWI3ZTk5YzEwZWQ4MmM5
OTcxLi5hNTlmNjBlMjg2NDJmMTMzYzc4NGY1ZGM2ZDVkNzhjMDE3N2E1OWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuaApAQCAtNTUsNiArNTUsMTEgQEAgY2xh
c3MgV2ViU3RyaW5nOwogICovCiBjbGFzcyBCTEFDS0JFUlJZX0VYUE9SVCBXZWJPdmVybGF5IHsK
IHB1YmxpYzoKKyAgICBlbnVtIEltYWdlRGF0YUFkb3B0aW9uVHlwZSB7CisgICAgICAgIFJlZmVy
ZW5jZUltYWdlRGF0YSwKKyAgICAgICAgQ29weUltYWdlRGF0YQorICAgIH07CisKICAgICBXZWJP
dmVybGF5KCk7CiAgICAgV2ViT3ZlcmxheShXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50Kik7
CiAgICAgdmlydHVhbCB+V2ViT3ZlcmxheSgpOwpAQCAtOTQsNyArOTksNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBhZGRDaGlsZChXZWJPdmVybGF5Kik7CiAgICAgdm9pZCByZW1vdmVGcm9tUGFyZW50
KCk7CiAKLSAgICB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKiBk
YXRhLCBjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYgaW1hZ2VTaXplKTsKKyAgICB2b2lkIHNldENv
bnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBjb25zdCBQbGF0Zm9ybTo6
SW50U2l6ZSYgaW1hZ2VTaXplLCBJbWFnZURhdGFBZG9wdGlvblR5cGUgPSBSZWZlcmVuY2VJbWFn
ZURhdGEpOwogICAgIHZvaWQgc2V0Q29udGVudHNUb0NvbG9yKGludCByLCBpbnQgZywgaW50IGIs
IGludCBhKTsKICAgICB2b2lkIHNldERyYXdzQ29udGVudChib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgKaW5kZXggYTUwYWRhODBmM2E1YThlNWY2
NjgzOWNjMzAxMjgwYTMyZjExYWI4Mi4uMzBhNzA0YWUyYjk0MjI4MTRlMDBhM2VlMzEyNmZjMjg3
NmE1ZTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVy
bGF5X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5o
CkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUg
IkxheWVyQ29tcG9zaXRpbmdUaHJlYWQuaCIKICNpbmNsdWRlICJUZXh0dXJlLmgiCisjaW5jbHVk
ZSAiV2ViT3ZlcmxheS5oIgogI2luY2x1ZGUgIldlYk92ZXJsYXlPdmVycmlkZS5oIgogCiAjaW5j
bHVkZSA8cHRocmVhZC5oPgpAQCAtNDcsNyArNDgsNiBAQCBjbGFzcyBLZXlmcmFtZVZhbHVlTGlz
dDsKIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBX
ZWJPdmVybGF5OwogY2xhc3MgV2ViT3ZlcmxheUNsaWVudDsKIGNsYXNzIFdlYlBhZ2VQcml2YXRl
OwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
V2ViT3ZlcmxheVByaXZhdGUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21QYXJl
bnQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hh
ciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBXZWJPdmVybGF5OjpJ
bWFnZURhdGFBZG9wdGlvblR5cGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
b0NvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRE
cmF3c0NvbnRlbnQoYm9vbCkgPSAwOwogCkBAIC0xNTQsNyArMTU0LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBhZGRDaGlsZChXZWJPdmVybGF5UHJpdmF0ZSopOwogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
b0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGltYWdlU2l6ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIFdl
Yk92ZXJsYXk6OkltYWdlRGF0YUFkb3B0aW9uVHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9Db2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXREcmF3c0NvbnRlbnQoYm9vbCk7CiAKQEAgLTIwNCw5ICsyMDQsMTMgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhy
ZWFkKik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjbGVhclVwbG9hZGVkQ29udGVudHMoKTsKKwor
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZT4gbV90ZXh0dXJlOwogICAgIGJv
b2wgbV9kcmF3c0NvbnRlbnQ7CiAgICAgV2ViQ29yZTo6VGV4dHVyZTo6SG9zdFR5cGUgbV9jb250
ZW50czsKKyAgICBXZWJDb3JlOjpUZXh0dXJlOjpIb3N0VHlwZSBtX3VwbG9hZGVkQ29udGVudHM7
CiAgICAgV2ViQ29yZTo6Q29sb3IgbV9jb2xvcjsKICAgICBXZWJDb3JlOjpMYXllckNvbXBvc2l0
aW5nVGhyZWFkKiBtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWQ7CiAgICAgV2ViT3ZlcmxheSogbV9v
d25lcjsKQEAgLTI0NSw3ICsyNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZENo
aWxkKFdlYk92ZXJsYXlQcml2YXRlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21QYXJl
bnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgV2ViT3ZlcmxheTo6SW1hZ2VEYXRh
QWRvcHRpb25UeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERyYXdzQ29udGVudChib29s
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164194</attachid>
            <date>2012-09-14 11:10:02 -0700</date>
            <delta_ts>2012-09-17 07:57:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96684-20120914140817.patch</filename>
            <type>text/plain</type>
            <size>11432</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBhNmIxOWU5ODY3ODllMGY3NTg0YTIzZGY2NmY5ODdmMjQ3ZWQxZTE3Li42ZGY5ZjRiY2Iz
NTc0NmY2NDI0OTExMmRmY2U2NjQ5N2QwZDY1YWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wOS0xMyAgSmFrb2IgUGV0c292aXRzICA8anBl
dHNvdml0c0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBTdXBwb3J0IGNvcHlpbmcg
aW1hZ2UgZGF0YSBpbiBXZWJPdmVybGF5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY2ODQKKyAgICAgICAgUklNIFBSIDE5NTQ0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBJbnRlcm5hbGx5IHJldmlld2Vk
IGJ5IEFydmlkIE5pbHNzb24uCisKKyAgICAgICAgVGhlIHB1YmxpY2x5IGV4cG9zZWQgV2ViT3Zl
cmxheSBjbGFzcyBwcm92aWRlcyBhIG1ldGhvZAorICAgICAgICBzZXRDb250ZW50c1RvSW1hZ2Uo
KSB0byBhc3NpZ24gYSBwb2ludGVyIHRvIHBpeGVsIGRhdGEsCisgICAgICAgIHdoaWNoIGlzIGxh
dGVyIHVzZWQgdG8gcHJvdmlkZSB0ZXh0dXJlIGRhdGEgZm9yIHRoZQorICAgICAgICB1bmRlcmx5
aW5nIGNvbXBvc2l0aW5nIGxheWVyLiBUaGlzIHdvcmtzIHdlbGwgZm9yIHN0YXRpYworICAgICAg
ICBpbWFnZXMgdGhhdCBzdGF5IGluIG1lbW9yeSBhbmQgbmV2ZXIgY2hhbmdlLCBidXQgbm90Cisg
ICAgICAgIHNvIHdlbGwgZm9yIGltYWdlcyB3aXRoIGNoYW5naW5nIGNvbnRlbnRzIG9yIHdoZXJl
IHRoZQorICAgICAgICBpbWFnZSBkYXRhIGlzIGJlaW5nIHJlYXNzaWduZWQgZnJvbSBkaWZmZXJl
bnQgaW1hZ2UKKyAgICAgICAgc291cmNlcyB0aGF0IGFyZSBub3QgY29uc3RhbnRseSBrZXB0IGFy
b3VuZCBpbiBtZW1vcnkuCisKKyAgICAgICAgRHVlIHRvIHRoZSBkZWxheWVkIHVwbG9hZCBhbmQg
ZGVsYXllZCBmZXRjaGluZyBvZgorICAgICAgICBFR0xJbWFnZSBkYXRhIGJ5IHRoZSBHUFUsIHdl
IHNob3VsZG4ndCBhc3N1bWUgdGhlIGNhbGxlcgorICAgICAgICB0byBrbm93IGhvdyBsb25nIHRo
ZSBpbWFnZSBzaG91bGQgYmUgcmV0YWluZWQuIEluc3RlYWQsCisgICAgICAgIHdlIHNob3VsZCBv
ZmZlciBhbm90aGVyIG1ldGhvZCBvZiBzZXR0aW5nIGltYWdlIGRhdGEKKyAgICAgICAgdGhhdCB0
YWtlcyBvd25lcnNoaXAgb2YgdGhlIHBpeGVsIGRhdGEuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGFuIG9wdGlvbiB0byBzZXRDb250ZW50c1RvSW1hZ2UoKSB0aGF0CisgICAgICAgIGNvcGll
cyB0aGUgcGFzc2VkIHBpeGVsIGRhdGEgYW5kIGRvZXNuJ3QgZGVzdHJveSBpdAorICAgICAgICB1
bnRpbCBib3RoIHRoZSB0ZXh0dXJlIGlzIGRlc3Ryb3llZCBhbmQgdGhlIGltYWdlCisgICAgICAg
IGNvbnRlbnRzIGFyZSBjaGFuZ2VkLiBVc2luZyB0aGlzIG1ldGhvZCwgdGhlIGNhbGxlciBjYW4K
KyAgICAgICAgd2l0aGRyYXcgdGhlIHBhc3NlZCBwaXhlbCBhcnJheSByaWdodCBhZnRlciB0aGUK
KyAgICAgICAgc2V0Q29udGVudHNUb0ltYWdlKCkgY2FsbCB3aXRob3V0IGNvbnNlcXVlbmNlcy4K
KworICAgICAgICAqIEFwaS9XZWJPdmVybGF5LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViT3ZlcmxheTo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVXZWJLaXRUaHJlYWQ6OnNldENvbnRlbnRzVG9J
bWFnZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBv
c2l0aW5nVGhyZWFkQ2xpZW50OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVu
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50OjppbnZhbGlkYXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJs
YXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpjbGVhclVwbG9hZGVkQ29udGVudHMpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZENsaWVudDo6c2V0Q29udGVudHNUb0NvbG9yKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnVwbG9hZFRleHR1
cmVzSWZOZWVkZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5
ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6ZGVsZXRlVGV4dHVyZXMpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpzZXRD
b250ZW50c1RvSW1hZ2UpOgorICAgICAgICAqIEFwaS9XZWJPdmVybGF5Lmg6CisgICAgICAgICog
QXBpL1dlYk92ZXJsYXlfcC5oOgorICAgICAgICAoV2ViT3ZlcmxheVByaXZhdGUpOgorICAgICAg
ICAoV2ViT3ZlcmxheVByaXZhdGVXZWJLaXRUaHJlYWQpOgorICAgICAgICAoV2ViT3ZlcmxheUxh
eWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQpOgorICAgICAgICAoV2ViT3ZlcmxheVByaXZhdGVD
b21wb3NpdGluZ1RocmVhZCk6CisKIDIwMTItMDktMTQgIEdlbmV2aWV2ZSBNYWsgIDxnbWFrQHJp
bS5jb20+CiAKICAgICAgICAgQWx3YXlzIHNlbmQgbW91c2UgZXZlbnRzIG9uIHBhZ2VzIHRoYXQg
ZG9uJ3Qgc2Nyb2xsIGV2ZW4gaWYgdGhlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYk92ZXJsYXkuY3BwCmluZGV4IGUwMTY5NGNlZjUyZTJiODAxOTE2OWI2ZmFkN2I3ZjAzODlh
M2Y2ZGQuLjc5MmE0NzNiMDNmYmUyMGQ2ODg3MGU1ZjY1MTE2YmRmNTRhY2UzZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNwcApAQCAtMTYzLDkgKzE2Myw5
IEBAIHZvaWQgV2ViT3ZlcmxheTo6cmVtb3ZlRnJvbVBhcmVudCgpCiAgICAgZC0+cGFyZW50ID0g
MDsKIH0KIAotdm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgY29uc3QgUGxhdGZvcm06OkludFNpemUmIGltYWdlU2l6ZSkKK3ZvaWQg
V2ViT3ZlcmxheTo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBpbWFnZVNpemUsIEltYWdlRGF0YUFkb3B0aW9uVHlw
ZSBhZG9wdGlvblR5cGUpCiB7Ci0gICAgZC0+c2V0Q29udGVudHNUb0ltYWdlKGRhdGEsIGltYWdl
U2l6ZSk7CisgICAgZC0+c2V0Q29udGVudHNUb0ltYWdlKGRhdGEsIGltYWdlU2l6ZSwgYWRvcHRp
b25UeXBlKTsKIH0KIAogdm9pZCBXZWJPdmVybGF5OjpzZXRDb250ZW50c1RvQ29sb3IoaW50IHIs
IGludCBnLCBpbnQgYiwgaW50IGEpCkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBXZWJPdmVybGF5
UHJpdmF0ZVdlYktpdFRocmVhZDo6cmVtb3ZlRnJvbVBhcmVudCgpCiAgICAgbV9sYXllci0+cmVt
b3ZlRnJvbVBhcmVudCgpOwogfQogCi12b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFk
OjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplKQordm9pZCBXZWJPdmVybGF5UHJpdmF0ZVdlYktpdFRo
cmVhZDo6c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgV2ViT3ZlcmxheTo6SW1hZ2VEYXRhQWRvcHRp
b25UeXBlIGFkb3B0aW9uVHlwZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMzkw
LDYgKzM5MCw3IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6
OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKIHZvaWQgV2ViT3ZlcmxheUxheWVy
Q29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmludmFsaWRhdGUoKQogewogICAgIG1fdGV4dHVyZS5j
bGVhcigpOworICAgIGNsZWFyVXBsb2FkZWRDb250ZW50cygpOwogfQogCiB2b2lkIFdlYk92ZXJs
YXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRDb250ZW50cyhjb25zdCBTa0JpdG1h
cCYgY29udGVudHMpCkBAIC0zOTcsNiArMzk4LDEyIEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29t
cG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRzKGNvbnN0IFNrQml0bWFwJiBjb250ZW50
CiAgICAgbV9jb250ZW50cyA9IGNvbnRlbnRzOwogICAgIG1fY29sb3IgPSBDb2xvcigpOwogICAg
IG1fdGV4dHVyZS5jbGVhcigpOworICAgIGNsZWFyVXBsb2FkZWRDb250ZW50cygpOworfQorCit2
b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpjbGVhclVwbG9hZGVk
Q29udGVudHMoKQoreworICAgIG1fdXBsb2FkZWRDb250ZW50cyA9IFNrQml0bWFwKCk7CiB9CiAK
IHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OnNldENvbnRlbnRz
VG9Db2xvcihjb25zdCBDb2xvciYgY29sb3IpCkBAIC00MDQsNiArNDExLDcgQEAgdm9pZCBXZWJP
dmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6c2V0Q29udGVudHNUb0NvbG9yKGNv
bnN0IENvbG9yJiBjb2wKICAgICBtX2NvbnRlbnRzID0gU2tCaXRtYXAoKTsKICAgICBtX2NvbG9y
ID0gY29sb3I7CiAgICAgbV90ZXh0dXJlLmNsZWFyKCk7CisgICAgY2xlYXJVcGxvYWRlZENvbnRl
bnRzKCk7CiB9CiAKIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6
OmxheWVyQ29tcG9zaXRpbmdUaHJlYWREZXN0cm95ZWQoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZCopCkBAIC00NDYsNyArNDU0LDggQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3Np
dGluZ1RocmVhZENsaWVudDo6dXBsb2FkVGV4dHVyZXNJZk5lZWRlZChMYXllckNvbXBvc2kKICAg
ICBtX3RleHR1cmUgPSBUZXh0dXJlOjpjcmVhdGUoKTsKICAgICBtX3RleHR1cmUtPnByb3RlY3Qo
SW50U2l6ZShtX2NvbnRlbnRzLndpZHRoKCksIG1fY29udGVudHMuaGVpZ2h0KCkpKTsKICAgICBJ
bnRSZWN0IGJpdG1hcFJlY3QoMCwgMCwgbV9jb250ZW50cy53aWR0aCgpLCBtX2NvbnRlbnRzLmhl
aWdodCgpKTsKLSAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fY29udGVudHMsIGJpdG1h
cFJlY3QsIGJpdG1hcFJlY3QsIGZhbHNlKTsKKyAgICBtX3VwbG9hZGVkQ29udGVudHMgPSBtX2Nv
bnRlbnRzOworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMobV91cGxvYWRlZENvbnRlbnRz
LCBiaXRtYXBSZWN0LCBiaXRtYXBSZWN0LCBmYWxzZSk7CiB9CiAKIHZvaWQgV2ViT3ZlcmxheUxh
eWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkKiBsYXllciwgZG91YmxlIC8qc2NhbGUqLywgaW50IHBvc2l0aW9uTG9jYXRpb24sIGlu
dCB0ZXhDb29yZExvY2F0aW9uKQpAQCAtNDY0LDYgKzQ3Myw3IEBAIHZvaWQgV2ViT3ZlcmxheUxh
eWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkCiB2b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkZWxl
dGVUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKikKIHsKICAgICBtX3RleHR1cmUuY2xl
YXIoKTsKKyAgICBjbGVhclVwbG9hZGVkQ29udGVudHMoKTsKIH0KIAogV2ViT3ZlcmxheVByaXZh
dGVDb21wb3NpdGluZ1RocmVhZDo6V2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZChQ
YXNzUmVmUHRyPExheWVyQ29tcG9zaXRpbmdUaHJlYWQ+IGxheWVyQ29tcG9zaXRpbmdUaHJlYWQp
CkBAIC01OTQsNyArNjA0LDcgQEAgdm9pZCBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhy
ZWFkOjpyZW1vdmVGcm9tUGFyZW50KCkKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nUnVuKCk7CiB9
CiAKLXZvaWQgV2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6c2V0Q29udGVudHNU
b0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IEludFNpemUmIGltYWdlU2l6
ZSkKK3ZvaWQgV2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6c2V0Q29udGVudHNU
b0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IEludFNpemUmIGltYWdlU2l6
ZSwgV2ViT3ZlcmxheTo6SW1hZ2VEYXRhQWRvcHRpb25UeXBlIGFkb3B0aW9uVHlwZSkKIHsKICAg
ICBpZiAoIW1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudCkKICAgICAgICAgcmV0dXJuOwpA
QCAtNjA4LDcgKzYxOCwyMiBAQCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlQ29tcG9zaXRpbmdUaHJl
YWQ6OnNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKgogCiAgICAgU2tCaXRt
YXAgY29udGVudHM7CiAgICAgY29udGVudHMuc2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4
X0NvbmZpZywgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgY29u
dGVudHMuc2V0UGl4ZWxzKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEpKTsKKworICAg
IHN3aXRjaCAoYWRvcHRpb25UeXBlKSB7CisgICAgY2FzZSBXZWJPdmVybGF5OjpSZWZlcmVuY2VJ
bWFnZURhdGE6CisgICAgICAgIGNvbnRlbnRzLnNldFBpeGVscyhjb25zdF9jYXN0PHVuc2lnbmVk
IGNoYXIqPihkYXRhKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViT3ZlcmxheTo6Q29w
eUltYWdlRGF0YToKKyAgICAgICAgaWYgKGNvbnRlbnRzLmFsbG9jUGl4ZWxzKCkpIHsKKyAgICAg
ICAgICAgIGNvbnRlbnRzLmxvY2tQaXhlbHMoKTsKKyAgICAgICAgICAgIHNpemVfdCBieXRlcyA9
IFNrQml0bWFwOjpDb21wdXRlU2l6ZShTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIGltYWdl
U2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgbWVtY3B5KGNv
bnRlbnRzLmdldFBpeGVscygpLCBkYXRhLCBieXRlcyk7CisgICAgICAgICAgICBjb250ZW50cy51
bmxvY2tQaXhlbHMoKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAKICAgICBtX2xheWVyQ29tcG9z
aXRpbmdUaHJlYWRDbGllbnQtPnNldENvbnRlbnRzKGNvbnRlbnRzKTsKICAgICBtX2xheWVyQ29t
cG9zaXRpbmdUaHJlYWQtPnNldE5lZWRzVGV4dHVyZSh0cnVlKTsKQEAgLTczMyw3ICs3NTgsNyBA
QCB2b2lkIFdlYk92ZXJsYXk6OnJlbW92ZUFuaW1hdGlvbihjb25zdCBXZWJTdHJpbmcmKQogewog
fQogCi12b2lkIFdlYk92ZXJsYXk6OnNldENvbnRlbnRzVG9JbWFnZShjb25zdCB1bnNpZ25lZCBj
aGFyKiwgY29uc3QgUGxhdGZvcm06OkludFNpemUmKQordm9pZCBXZWJPdmVybGF5OjpzZXRDb250
ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciosIGNvbnN0IFBsYXRmb3JtOjpJbnRTaXpl
JiwgSW1hZ2VEYXRhQWRvcHRpb25UeXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheS5oCmluZGV4IDVmZTgwYzQyMzA5YmE1YWM5MGNmMWI1YjdlOTljMTBl
ZDgyYzk5NzEuLmE1OWY2MGUyODY0MmYxMzNjNzg0ZjVkYzZkNWQ3OGMwMTc3YTU5ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCkBAIC01NSw2ICs1NSwxMSBA
QCBjbGFzcyBXZWJTdHJpbmc7CiAgKi8KIGNsYXNzIEJMQUNLQkVSUllfRVhQT1JUIFdlYk92ZXJs
YXkgewogcHVibGljOgorICAgIGVudW0gSW1hZ2VEYXRhQWRvcHRpb25UeXBlIHsKKyAgICAgICAg
UmVmZXJlbmNlSW1hZ2VEYXRhLAorICAgICAgICBDb3B5SW1hZ2VEYXRhCisgICAgfTsKKwogICAg
IFdlYk92ZXJsYXkoKTsKICAgICBXZWJPdmVybGF5KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5XZWJPdmVybGF5KCk7CkBAIC05NCw3ICs5OSw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGFkZENoaWxkKFdlYk92ZXJsYXkqKTsKICAgICB2b2lkIHJlbW92ZUZyb21Q
YXJlbnQoKTsKIAotICAgIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBpbWFnZVNpemUpOworICAgIHZvaWQg
c2V0Q29udGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFBsYXRm
b3JtOjpJbnRTaXplJiBpbWFnZVNpemUsIEltYWdlRGF0YUFkb3B0aW9uVHlwZSA9IFJlZmVyZW5j
ZUltYWdlRGF0YSk7CiAgICAgdm9pZCBzZXRDb250ZW50c1RvQ29sb3IoaW50IHIsIGludCBnLCBp
bnQgYiwgaW50IGEpOwogICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAppbmRleCBiZDI3NDMyOGE4NTZl
YzI0MDBmYjlkZDE0ZjhiZjc2Y2U3NTI2ZDMyLi5kNmMxZGMxNzZjMjAxZGQ1YmY2OGU0MWUxMjQz
ZThhYmYyMmVlOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
Yk92ZXJsYXlfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3Zlcmxh
eV9wLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5j
bHVkZSAiTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oIgogI2luY2x1ZGUgIlRleHR1cmUuaCIKKyNp
bmNsdWRlICJXZWJPdmVybGF5LmgiCiAjaW5jbHVkZSAiV2ViT3ZlcmxheU92ZXJyaWRlLmgiCiAK
ICNpbmNsdWRlIDxTa0JpdG1hcC5oPgpAQCAtNDUsNyArNDYsNiBAQCBjbGFzcyBLZXlmcmFtZVZh
bHVlTGlzdDsKIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1j
bGFzcyBXZWJPdmVybGF5OwogY2xhc3MgV2ViT3ZlcmxheUNsaWVudDsKIGNsYXNzIFdlYlBhZ2VQ
cml2YXRlOwogCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRk
Q2hpbGQoV2ViT3ZlcmxheVByaXZhdGUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZy
b21QYXJlbnQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6
ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBXZWJPdmVy
bGF5OjpJbWFnZURhdGFBZG9wdGlvblR5cGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb0NvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXREcmF3c0NvbnRlbnQoYm9vbCkgPSAwOwogCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChXZWJPdmVybGF5UHJpdmF0ZSopOwogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb0ltYWdlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGltYWdlU2l6ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNp
emUsIFdlYk92ZXJsYXk6OkltYWdlRGF0YUFkb3B0aW9uVHlwZSk7CiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRlbnRzVG9Db2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXREcmF3c0NvbnRlbnQoYm9vbCk7CiAKQEAgLTIwMiw5ICsyMDIsMTMgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhXZWJDb3JlOjpMYXllckNvbXBvc2l0
aW5nVGhyZWFkKik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjbGVhclVwbG9hZGVkQ29udGVudHMo
KTsKKworcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZT4gbV90ZXh0dXJlOwog
ICAgIGJvb2wgbV9kcmF3c0NvbnRlbnQ7CiAgICAgU2tCaXRtYXAgbV9jb250ZW50czsKKyAgICBT
a0JpdG1hcCBtX3VwbG9hZGVkQ29udGVudHM7CiAgICAgV2ViQ29yZTo6Q29sb3IgbV9jb2xvcjsK
ICAgICBXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkKiBtX2xheWVyQ29tcG9zaXRpbmdU
aHJlYWQ7CiAgICAgV2ViT3ZlcmxheSogbV9vd25lcjsKQEAgLTI0Myw3ICsyNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFdlYk92ZXJsYXlQcml2YXRlKik7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUZyb21QYXJlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvSW1hZ2UoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgaW1hZ2VTaXplKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdl
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdl
U2l6ZSwgV2ViT3ZlcmxheTo6SW1hZ2VEYXRhQWRvcHRpb25UeXBlKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb0NvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAgICAgdmlydHVh
bCB2b2lkIHNldERyYXdzQ29udGVudChib29sKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>