<?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>78809</bug_id>
          
          <creation_ts>2012-02-16 06:33:55 -0800</creation_ts>
          <short_desc>[Qt][WK2] Allow opaque tiles</short_desc>
          <delta_ts>2012-02-17 15:28:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558147</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 06:33:55 -0800</bug_when>
    <thetext>For memory management on different platforms, we want to distinguish between opaque and non-opaque tiles. This would allow us to use 16-bit tiles for opaque layers in platforms that support that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558149</commentid>
    <comment_count>1</comment_count>
      <attachid>127369</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 06:40:28 -0800</bug_when>
    <thetext>Created attachment 127369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558186</commentid>
    <comment_count>2</comment_count>
      <attachid>127378</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 07:47:08 -0800</bug_when>
    <thetext>Created attachment 127378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558238</commentid>
    <comment_count>3</comment_count>
      <attachid>127378</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 08:53:49 -0800</bug_when>
    <thetext>Comment on attachment 127378
Patch

Clearing flags on attachment: 127378

Committed r107943: &lt;http://trac.webkit.org/changeset/107943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558239</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 08:53:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558976</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-17 00:01:03 -0800</bug_when>
    <thetext>More patch(es) to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559063</commentid>
    <comment_count>6</comment_count>
      <attachid>127558</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-17 02:22:37 -0800</bug_when>
    <thetext>Created attachment 127558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559065</commentid>
    <comment_count>7</comment_count>
      <attachid>127558</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 02:26:07 -0800</bug_when>
    <thetext>Comment on attachment 127558
Patch

Rejecting attachment 127558 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Source/WebKit2/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit2/Shared/ShareableBitmap.h
patching file Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp
patching file Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp
Hunk #1 FAILED at 48.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11540426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559458</commentid>
    <comment_count>8</comment_count>
      <attachid>127639</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-17 13:06:41 -0800</bug_when>
    <thetext>Created attachment 127639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559593</commentid>
    <comment_count>9</comment_count>
      <attachid>127639</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 15:28:33 -0800</bug_when>
    <thetext>Comment on attachment 127639
Patch

Clearing flags on attachment: 127639

Committed r108135: &lt;http://trac.webkit.org/changeset/108135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559594</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 15:28:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127369</attachid>
            <date>2012-02-16 06:40:28 -0800</date>
            <delta_ts>2012-02-16 07:47:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>7584</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNTY1MWVjLi4yZjA5Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gQWxsb3cgb3BhcXVlIHRpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwOQorCisgICAgICAgIEFkZCBh
IHN1cHBvcnRzQWxwaGEgcHJvcGVydHkgdG8gVGlsZWRCYWNraW5nU3RvcmUuCisgICAgICAgIFdl
IGludmFsaWRhdGUgYWxsIHRoZSB0aWxlcyBpZiB0aGF0IHByb3BlcnR5IGNoYW5nZXMsIGJlY2F1
c2UgdGhlIGJ1ZmZlcnMgbmVlZCB0byBiZQorICAgICAgICByZWNyZWF0ZWQgaW4gYSBkaWZmZXJl
bnQgZm9ybWF0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
aWxlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9y
ZTo6VGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3Rv
cmU6OnNldFN1cHBvcnRzQWxwaGEpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFRpbGVkQmFja2lu
Z1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjpzdXBwb3J0c0Fs
cGhhKToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBmb3IgIUVOQUJMRShDU1NfRklMVEVSUykg
YWZ0ZXIgcjEwNjU5My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCA3NTVhODY1Li4zYjRiMjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuY3BwCkBAIC00Niw2ICs0Niw3IEBAIFRpbGVkQmFja2luZ1N0b3JlOjpUaWxlZEJhY2tpbmdT
dG9yZShUaWxlZEJhY2tpbmdTdG9yZUNsaWVudCogY2xpZW50LCBQYXNzT3duUHRyCiAgICAgLCBt
X2NvbnRlbnRzU2NhbGUoMS5mKQogICAgICwgbV9wZW5kaW5nU2NhbGUoMCkKICAgICAsIG1fY29u
dGVudHNGcm96ZW4oZmFsc2UpCisgICAgLCBtX3N1cHBvcnRzQWxwaGEoZmFsc2UpCiB7CiB9CiAK
QEAgLTUwNyw2ICs1MDgsMTQgQEAgdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6c2V0Q29udGVudHNG
cm96ZW4oYm9vbCBmcmVlemUpCiAgICAgfQogfQogCit2b2lkIFRpbGVkQmFja2luZ1N0b3JlOjpz
ZXRTdXBwb3J0c0FscGhhKGJvb2wgYSkKK3sKKyAgICBpZiAoYSA9PSBzdXBwb3J0c0FscGhhKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBtX3N1cHBvcnRzQWxwaGEgPSBhOworICAgIGludmFsaWRh
dGUoY29udGVudHNSZWN0KCkpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggZDU1YjRl
Yi4uZjJlMmE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC03Myw2ICs3Myw5IEBAIHB1YmxpYzoKICAgICBkb3Vi
bGUgdGlsZURpc3RhbmNlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0LCBjb25zdCBUaWxlOjpDb29y
ZGluYXRlJikgY29uc3Q7CiAgICAgZmxvYXQgY292ZXJhZ2VSYXRpbyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjb250ZW50c1JlY3QpOwogCisgICAgdm9pZCBzZXRTdXBwb3J0c0FscGhhKGJvb2wp
OworICAgIGJvb2wgc3VwcG9ydHNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNBbHBo
YTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRUaWxlQnVmZmVyVXBkYXRlVGltZXIoKTsK
ICAgICB2b2lkIHN0YXJ0VGlsZUNyZWF0aW9uVGltZXIoKTsKQEAgLTEyMCw2ICsxMjMsNyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fcGVuZGluZ1NjYWxlOwogCiAgICAgYm9vbCBtX2NvbnRlbnRz
RnJvemVuOworICAgIGJvb2wgbV9zdXBwb3J0c0FscGhhOwogCiAgICAgZnJpZW5kIGNsYXNzIFRp
bGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGRlYTI3MGIuLmQ4NjY4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxA
bm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBBbGxvdyBvcGFxdWUgdGlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODA5CisKKyAgICAg
ICAgU2V0IHRoZSBzdXBwb3J0c0FscGhhIGZsYWcgZm9yIFRpbGVkQmFja2luZ1N0b3JlIHdoZW4g
dGhlIGxheWVyIGhhcyBjb250ZW50c09wYXF1ZSBlbmFibGVkLgorICAgICAgICBVc2UgdGhlIGZs
YWcgZm9yIFNoYXJlYWJsZUJpdG1hcHMgY3JlYXRlZCBieSBUaWxlZEJhY2tpbmdTdG9yZS4KKwor
ICAgICAgICBGb3Igbm93IHRoaXMgd2lsbCBub3QgaGF2ZSBpbXBhY3Qgb24gcGVyZm9ybWFuY2Uv
bWVtb3J5LCBiZWNhdXNlIHdlIGFsbG9jYXRlIHRoZSBzYW1lIHR5cGUKKyAgICAgICAgb2YgYnVm
ZmVycyBmb3Igb3BhcXVlIGFuZCB0cmFuc3BhcmVudCB0aWxlcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c09wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAg
KFdlYkdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJh
Y2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaWxlZEJhY2tpbmdT
dG9yZVJlbW90ZVRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIpOgorCiAyMDEyLTAyLTE2ICBQYXRyaWNr
IEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDTWFrZV0gQWRkIG1p
c3NpbmcgaW5jbHVkZSBkaXJlY3Rvcmllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IDVlOTdmZDUuLjI2YWQ3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMjUxLDYg
KzI1MSw4IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNPcGFxdWUoYm9vbCBi
KQogewogICAgIGlmIChjb250ZW50c09wYXF1ZSgpID09IGIpCiAgICAgICAgIHJldHVybjsKKyAg
ICBpZiAobV9tYWluQmFja2luZ1N0b3JlKQorICAgICAgICBtX21haW5CYWNraW5nU3RvcmUtPnNl
dFN1cHBvcnRzQWxwaGEoIWIpOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzT3BhcXVl
KGIpOwogICAgIG5vdGlmeUNoYW5nZSgpOwogfQpAQCAtNDg4LDExICs0OTAsMTcgQEAgdm9pZCBX
ZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0IHNjYWxlKQogICAgIG1fY29u
dGVudHNTY2FsZSA9IHNjYWxlOwogICAgIGlmIChtX21haW5CYWNraW5nU3RvcmUgJiYgbV9tYWlu
QmFja2luZ1N0b3JlLT5jb250ZW50c1NjYWxlKCkgIT0gc2NhbGUpIHsKICAgICAgICAgbV9wcmV2
aW91c0JhY2tpbmdTdG9yZSA9IG1fbWFpbkJhY2tpbmdTdG9yZS5yZWxlYXNlKCk7Ci0gICAgICAg
IG1fbWFpbkJhY2tpbmdTdG9yZSA9IGFkb3B0UHRyKG5ldyBUaWxlZEJhY2tpbmdTdG9yZSh0aGlz
LCBUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGVCYWNrZW5kOjpjcmVhdGUodGhpcykpKTsKLSAg
ICAgICAgbV9tYWluQmFja2luZ1N0b3JlLT5zZXRDb250ZW50c1NjYWxlKHNjYWxlKTsKKyAgICAg
ICAgY3JlYXRlQmFja2luZ1N0b3JlKCk7CiAgICAgfQogfQogCit2b2lkIFdlYkdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSgpCit7CisgICAgbV9tYWluQmFja2luZ1N0b3JlID0gYWRv
cHRQdHIobmV3IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMsIFRpbGVkQmFja2luZ1N0b3JlUmVtb3Rl
VGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlzKSkpOworICAgIG1fbWFpbkJhY2tpbmdTdG9yZS0+c2V0
U3VwcG9ydHNBbHBoYSghY29udGVudHNPcGFxdWUoKSk7CisgICAgbV9tYWluQmFja2luZ1N0b3Jl
LT5zZXRDb250ZW50c1NjYWxlKG1fY29udGVudHNTY2FsZSk7Cit9CisKIHZvaWQgV2ViR3JhcGhp
Y3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQpAQCAtNTc2
LDEwICs1ODQsOCBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJz
KCkKICAgICBtX2luVXBkYXRlTW9kZSA9IHRydWU7CiAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBw
bGFjZSB3ZSAocmUpY3JlYXRlIHRoZSBtYWluIHRpbGVkIGJhY2tpbmcgc3RvcmUsCiAgICAgLy8g
b25jZSB3ZSBoYXZlIGEgcmVtb3RlIGNsaWVudCBhbmQgd2UgYXJlIHJlYWR5IHRvIHNlbmQgb3Vy
IGRhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCi0gICAgaWYgKCFtX21haW5CYWNraW5nU3RvcmUpIHsK
LSAgICAgICAgbV9tYWluQmFja2luZ1N0b3JlID0gYWRvcHRQdHIobmV3IFRpbGVkQmFja2luZ1N0
b3JlKHRoaXMsIFRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlz
KSkpOwotICAgICAgICBtX21haW5CYWNraW5nU3RvcmUtPnNldENvbnRlbnRzU2NhbGUobV9jb250
ZW50c1NjYWxlKTsKLSAgICB9CisgICAgaWYgKCFtX21haW5CYWNraW5nU3RvcmUpCisgICAgICAg
IGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIG1fbWFpbkJhY2tpbmdTdG9yZS0+dXBkYXRlVGls
ZUJ1ZmZlcnMoKTsKICAgICBtX2luVXBkYXRlTW9kZSA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNz
TGF5ZXIuaAppbmRleCBhNmNjNDM5Li40MDk2ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApA
QCAtMTU4LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeUNoYW5nZSgpOwog
ICAgIHZvaWQgbm90aWZ5Q2hhbmdlUmVjdXJzaXZlbHkoKTsKKyAgICB2b2lkIGNyZWF0ZUJhY2tp
bmdTdG9yZSgpOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9ybUFuaW1hdGlvbnM7CiAK
ICAgICBib29sIHNlbGZPckFuY2VzdG9ySGFzQWN0aXZlVHJhbnNmb3JtQW5pbWF0aW9ucygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVk
QmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAppbmRleCA3Y2VhMGI0Li45M2Fm
ZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRC
YWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcApAQCAtODQsNyArODQsNyBA
QCBWZWN0b3I8SW50UmVjdD4gVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlOjp1cGRhdGVCYWNr
QnVmZmVyKCkKICAgICAvLyBmb3IgdXMgdG8gYmUgYWJsZSB0byBkcmF3IHRoaXMgYnVmZmVyIG9u
IHRoZSBTaGFyZWFibGVCaXRtYXAgcmlnaHQgYWZ0ZXIuCiAgICAgbV90aWxlZEJhY2tpbmdTdG9y
ZS0+Y2xpZW50KCktPnRpbGVkQmFja2luZ1N0b3JlUGFpbnQobV9sb2NhbEJ1ZmZlci0+Y29udGV4
dCgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5tYXBUb0NvbnRlbnRzKG1fZGlydHlSZWN0KSk7CiAK
LSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNy
ZWF0ZVNoYXJlYWJsZShtX3JlY3Quc2l6ZSgpLCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxw
aGEpOworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1h
cDo6Y3JlYXRlU2hhcmVhYmxlKG1fcmVjdC5zaXplKCksIG1fdGlsZWRCYWNraW5nU3RvcmUtPnN1
cHBvcnRzQWxwaGEoKSA/IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IDApOwogICAg
IE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dChiaXRtYXAtPmNyZWF0ZUdy
YXBoaWNzQ29udGV4dCgpKTsKICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlciht
X2xvY2FsQnVmZmVyLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgwLCAwKSk7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127378</attachid>
            <date>2012-02-16 07:47:08 -0800</date>
            <delta_ts>2012-02-16 08:53:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>7608</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNTY1MWVjLi4yZjA5Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gQWxsb3cgb3BhcXVlIHRpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwOQorCisgICAgICAgIEFkZCBh
IHN1cHBvcnRzQWxwaGEgcHJvcGVydHkgdG8gVGlsZWRCYWNraW5nU3RvcmUuCisgICAgICAgIFdl
IGludmFsaWRhdGUgYWxsIHRoZSB0aWxlcyBpZiB0aGF0IHByb3BlcnR5IGNoYW5nZXMsIGJlY2F1
c2UgdGhlIGJ1ZmZlcnMgbmVlZCB0byBiZQorICAgICAgICByZWNyZWF0ZWQgaW4gYSBkaWZmZXJl
bnQgZm9ybWF0LgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxl
ZEJhY2tpbmdTdG9yZTo6VGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZWRCYWNraW5nU3RvcmU6OnNldFN1cHBvcnRzQWxwaGEpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KFRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3Jl
OjpzdXBwb3J0c0FscGhhKToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBmb3IgIUVOQUJMRShD
U1NfRklMVEVSUykgYWZ0ZXIgcjEwNjU5My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCA3NTVhODY1Li4zYjRi
MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGls
ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC00Niw2ICs0Niw3IEBAIFRpbGVkQmFja2luZ1N0b3JlOjpU
aWxlZEJhY2tpbmdTdG9yZShUaWxlZEJhY2tpbmdTdG9yZUNsaWVudCogY2xpZW50LCBQYXNzT3du
UHRyCiAgICAgLCBtX2NvbnRlbnRzU2NhbGUoMS5mKQogICAgICwgbV9wZW5kaW5nU2NhbGUoMCkK
ICAgICAsIG1fY29udGVudHNGcm96ZW4oZmFsc2UpCisgICAgLCBtX3N1cHBvcnRzQWxwaGEoZmFs
c2UpCiB7CiB9CiAKQEAgLTUwNyw2ICs1MDgsMTQgQEAgdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6
c2V0Q29udGVudHNGcm96ZW4oYm9vbCBmcmVlemUpCiAgICAgfQogfQogCit2b2lkIFRpbGVkQmFj
a2luZ1N0b3JlOjpzZXRTdXBwb3J0c0FscGhhKGJvb2wgYSkKK3sKKyAgICBpZiAoYSA9PSBzdXBw
b3J0c0FscGhhKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N1cHBvcnRzQWxwaGEgPSBhOwor
ICAgIGludmFsaWRhdGUoY29udGVudHNSZWN0KCkpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgK
aW5kZXggZDU1YjRlYi4uZjJlMmE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC03Myw2ICs3Myw5IEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgdGlsZURpc3RhbmNlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0LCBjb25z
dCBUaWxlOjpDb29yZGluYXRlJikgY29uc3Q7CiAgICAgZmxvYXQgY292ZXJhZ2VSYXRpbyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50c1JlY3QpOwogCisgICAgdm9pZCBzZXRTdXBwb3J0
c0FscGhhKGJvb2wpOworICAgIGJvb2wgc3VwcG9ydHNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3VwcG9ydHNBbHBoYTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRUaWxlQnVmZmVyVXBk
YXRlVGltZXIoKTsKICAgICB2b2lkIHN0YXJ0VGlsZUNyZWF0aW9uVGltZXIoKTsKQEAgLTEyMCw2
ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGVuZGluZ1NjYWxlOwogCiAgICAgYm9v
bCBtX2NvbnRlbnRzRnJvemVuOworICAgIGJvb2wgbV9zdXBwb3J0c0FscGhhOwogCiAgICAgZnJp
ZW5kIGNsYXNzIFRpbGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRlYTI3MGIuLmQ4NjY4ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9h
bS5yb3NlbnRoYWxAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBBbGxvdyBvcGFxdWUg
dGlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
ODA5CisKKyAgICAgICAgU2V0IHRoZSBzdXBwb3J0c0FscGhhIGZsYWcgZm9yIFRpbGVkQmFja2lu
Z1N0b3JlIHdoZW4gdGhlIGxheWVyIGhhcyBjb250ZW50c09wYXF1ZSBlbmFibGVkLgorICAgICAg
ICBVc2UgdGhlIGZsYWcgZm9yIFNoYXJlYWJsZUJpdG1hcHMgY3JlYXRlZCBieSBUaWxlZEJhY2tp
bmdTdG9yZS4KKworICAgICAgICBGb3Igbm93IHRoaXMgd2lsbCBub3QgaGF2ZSBpbXBhY3Qgb24g
cGVyZm9ybWFuY2UvbWVtb3J5LCBiZWNhdXNlIHdlIGFsbG9jYXRlIHRoZSBzYW1lIHR5cGUKKyAg
ICAgICAgb2YgYnVmZmVycyBmb3Igb3BhcXVlIGFuZCB0cmFuc3BhcmVudCB0aWxlcy4KKworICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c09wYXF1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1NjYWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNv
bnRlbnRCdWZmZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIp
OgorCiAyMDEyLTAyLTE2ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFtDTWFrZV0gQWRkIG1pc3NpbmcgaW5jbHVkZSBkaXJlY3Rvcmllcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDVlOTdmZDUuLjI2YWQ3MzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFw
aGljc0xheWVyLmNwcApAQCAtMjUxLDYgKzI1MSw4IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNPcGFxdWUoYm9vbCBiKQogewogICAgIGlmIChjb250ZW50c09wYXF1ZSgpID09
IGIpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9tYWluQmFja2luZ1N0b3JlKQorICAgICAg
ICBtX21haW5CYWNraW5nU3RvcmUtPnNldFN1cHBvcnRzQWxwaGEoIWIpOwogICAgIEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzT3BhcXVlKGIpOwogICAgIG5vdGlmeUNoYW5nZSgpOwogfQpAQCAt
NDg4LDExICs0OTAsMTcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1NjYWxl
KGZsb2F0IHNjYWxlKQogICAgIG1fY29udGVudHNTY2FsZSA9IHNjYWxlOwogICAgIGlmIChtX21h
aW5CYWNraW5nU3RvcmUgJiYgbV9tYWluQmFja2luZ1N0b3JlLT5jb250ZW50c1NjYWxlKCkgIT0g
c2NhbGUpIHsKICAgICAgICAgbV9wcmV2aW91c0JhY2tpbmdTdG9yZSA9IG1fbWFpbkJhY2tpbmdT
dG9yZS5yZWxlYXNlKCk7Ci0gICAgICAgIG1fbWFpbkJhY2tpbmdTdG9yZSA9IGFkb3B0UHRyKG5l
dyBUaWxlZEJhY2tpbmdTdG9yZSh0aGlzLCBUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGVCYWNr
ZW5kOjpjcmVhdGUodGhpcykpKTsKLSAgICAgICAgbV9tYWluQmFja2luZ1N0b3JlLT5zZXRDb250
ZW50c1NjYWxlKHNjYWxlKTsKKyAgICAgICAgY3JlYXRlQmFja2luZ1N0b3JlKCk7CiAgICAgfQog
fQogCit2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSgpCit7CisgICAg
bV9tYWluQmFja2luZ1N0b3JlID0gYWRvcHRQdHIobmV3IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMs
IFRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlzKSkpOworICAg
IG1fbWFpbkJhY2tpbmdTdG9yZS0+c2V0U3VwcG9ydHNBbHBoYSghY29udGVudHNPcGFxdWUoKSk7
CisgICAgbV9tYWluQmFja2luZ1N0b3JlLT5zZXRDb250ZW50c1NjYWxlKG1fY29udGVudHNTY2Fs
ZSk7Cit9CisKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYg
KHJlY3QuaXNFbXB0eSgpKQpAQCAtNTc2LDEwICs1ODQsOCBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5
ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCkKICAgICBtX2luVXBkYXRlTW9kZSA9IHRydWU7CiAg
ICAgLy8gVGhpcyBpcyB0aGUgb25seSBwbGFjZSB3ZSAocmUpY3JlYXRlIHRoZSBtYWluIHRpbGVk
IGJhY2tpbmcgc3RvcmUsCiAgICAgLy8gb25jZSB3ZSBoYXZlIGEgcmVtb3RlIGNsaWVudCBhbmQg
d2UgYXJlIHJlYWR5IHRvIHNlbmQgb3VyIGRhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCi0gICAgaWYg
KCFtX21haW5CYWNraW5nU3RvcmUpIHsKLSAgICAgICAgbV9tYWluQmFja2luZ1N0b3JlID0gYWRv
cHRQdHIobmV3IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMsIFRpbGVkQmFja2luZ1N0b3JlUmVtb3Rl
VGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlzKSkpOwotICAgICAgICBtX21haW5CYWNraW5nU3RvcmUt
PnNldENvbnRlbnRzU2NhbGUobV9jb250ZW50c1NjYWxlKTsKLSAgICB9CisgICAgaWYgKCFtX21h
aW5CYWNraW5nU3RvcmUpCisgICAgICAgIGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIG1fbWFp
bkJhY2tpbmdTdG9yZS0+dXBkYXRlVGlsZUJ1ZmZlcnMoKTsKICAgICBtX2luVXBkYXRlTW9kZSA9
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAppbmRleCBhNmNjNDM5Li40MDk2ZDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdy
YXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApAQCAtMTU4LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIG5vdGlmeUNoYW5nZSgpOwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlUmVjdXJzaXZlbHko
KTsKKyAgICB2b2lkIGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBt
X3RyYW5zZm9ybUFuaW1hdGlvbnM7CiAKICAgICBib29sIHNlbGZPckFuY2VzdG9ySGFzQWN0aXZl
VHJhbnNmb3JtQW5pbWF0aW9ucygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxl
LmNwcAppbmRleCA3Y2VhMGI0Li45M2FmZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVU
aWxlLmNwcApAQCAtODQsNyArODQsNyBAQCBWZWN0b3I8SW50UmVjdD4gVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKCkKICAgICAvLyBmb3IgdXMgdG8gYmUgYWJs
ZSB0byBkcmF3IHRoaXMgYnVmZmVyIG9uIHRoZSBTaGFyZWFibGVCaXRtYXAgcmlnaHQgYWZ0ZXIu
CiAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+Y2xpZW50KCktPnRpbGVkQmFja2luZ1N0b3JlUGFp
bnQobV9sb2NhbEJ1ZmZlci0+Y29udGV4dCgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5tYXBUb0Nv
bnRlbnRzKG1fZGlydHlSZWN0KSk7CiAKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRt
YXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShtX3JlY3Quc2l6ZSgpLCBTaGFy
ZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEpOworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKG1fcmVjdC5zaXplKCks
IG1fdGlsZWRCYWNraW5nU3RvcmUtPnN1cHBvcnRzQWxwaGEoKSA/IFNoYXJlYWJsZUJpdG1hcDo6
U3VwcG9ydHNBbHBoYSA6IDApOwogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNz
Q29udGV4dChiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpKTsKICAgICBncmFwaGljc0Nv
bnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihtX2xvY2FsQnVmZmVyLmdldCgpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBJbnRQb2ludCgwLCAwKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127558</attachid>
            <date>2012-02-17 02:22:37 -0800</date>
            <delta_ts>2012-02-17 13:06:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>18231</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYjUzZjlkLi4xNjVkNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTItMDItMTcgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gQWxsb3cgb3BhcXVlIHRpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwOQorCisgICAgICAgIFJlcGxh
Y2UgdGhlIGlzT3BhcXVlIGJvb2xlYW4gaW4gQml0bWFwVGV4dHVyZSB0byBhIFN1cHBvcnRzQWxw
aGEgZmxhZy4KKyAgICAgICAgVXNlIHJlc2V0L2RpZFJlc2V0IGluc3RlYWQgb2YgYSB2aXJ0dWFs
IGZ1bmN0aW9uIHRoYXQgaGFzIHRvIGNhbGwgdGhlIHN1cGVyY2xhc3MuCisKKyAgICAgICAgTWFr
ZSBzdXJlIHRoYXQgYWxsIGNhbGxzIHRvIEJpdG1hcFRleHR1cmU6OnJlc2V0KCkgcGFzcyB0aGUg
Y29ycmVjdCBTdXBwb3J0c0FscGhhIGZsYWcsCisgICAgICAgIGJhc2VkIG9uIHRoZSBzb3VyY2Ug
aW1hZ2UuCisgICAgICAgIFNpbmNlIHdlIG5vdyBkaXNhYmxlIGJsZW5kaW5nIGZvciBvcGFxdWUg
dGV4dHVyZXMsIHdlIGFsc28gaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB3ZSB0cmVhdAorICAgICAg
ICB0aGUgZGVwdGggYnVmZmVyIGNvcnJlY3RseSBhbmQgYnJpbmcgaXQgYmFjayB0byBpdHMgcHJl
dmlvdXMgc3RhdGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoVGV4dHVy
ZU1hcHBlckdMRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpp
bml0U3RlbmNpbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpUZXh0
dXJlTWFwcGVyR0xEYXRhKToKKyAgICAgICAgKEJpdG1hcFRleHR1cmVHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQYWludGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1
cmVHTDo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjpiaW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmVnaW5DbGlwKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZTo6Qml0bWFwVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlOjpmbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
OjpkaWRSZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjpyZXNldCk6Cisg
ICAgICAgIChCaXRtYXBUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3Jl
YXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAo
VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyKToKKwogMjAxMi0w
Mi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAg
ICAgIFtRdF1bV0syXSBBbGxvdyBwYXJ0aWFsIHVwZGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAK
aW5kZXggNmFkZGVmOC4uYmZhNzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTI4Miwx
NyArMjgyLDI5IEBAIHN0cnVjdCBUZXh0dXJlTWFwcGVyR0xEYXRhIHsKICAgICAgICAgcmV0dXJu
ICoobV9zaGFyZWRHTERhdGEuZ2V0KCkpOwogICAgIH0KIAorICAgIHZvaWQgaW5pdFN0ZW5jaWwo
KQorICAgIHsKKyAgICAgICAgaWYgKGRpZE1vZGlmeVN0ZW5jaWwpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGdsQ2xlYXJTdGVuY2lsKDApOworICAgICAgICBnbENsZWFyKEdMX1NURU5D
SUxfQlVGRkVSX0JJVCk7CisgICAgICAgIGRpZE1vZGlmeVN0ZW5jaWwgPSB0cnVlOworICAgIH0K
ICAgICBUZXh0dXJlTWFwcGVyR0xEYXRhKCkKICAgICAgICAgOiBjdXJyZW50UHJvZ3JhbShTaGFy
ZWRHTERhdGE6Ok5vUHJvZ3JhbSkKICAgICAgICAgLCBwcmV2aW91c1Byb2dyYW0oMCkKKyAgICAg
ICAgLCBkaWRNb2RpZnlTdGVuY2lsKGZhbHNlKQogICAgICAgICAsIHByZXZpb3VzU2Npc3NvclN0
YXRlKDApCisgICAgICAgICwgcHJldmlvdXNEZXB0aFN0YXRlKDApCiAgICAgICAgICwgbV9zaGFy
ZWRHTERhdGEoVGV4dHVyZU1hcHBlckdMRGF0YTo6U2hhcmVkR0xEYXRhOjpjdXJyZW50U2hhcmVk
R0xEYXRhKCkpCiAgICAgeyB9CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwcm9qZWN0aW9u
TWF0cml4OwogICAgIGludCBjdXJyZW50UHJvZ3JhbTsKICAgICBHTGludCBwcmV2aW91c1Byb2dy
YW07CisgICAgYm9vbCBkaWRNb2RpZnlTdGVuY2lsOwogICAgIEdMaW50IHByZXZpb3VzU2Npc3Nv
clN0YXRlOworICAgIEdMaW50IHByZXZpb3VzRGVwdGhTdGF0ZTsKICAgICBHTGludCB2aWV3cG9y
dFs0XTsKICAgICBSZWZQdHI8U2hhcmVkR0xEYXRhPiBtX3NoYXJlZEdMRGF0YTsKIH07CkBAIC0z
MDIsNyArMzE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CiAgICAg
dmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCByZXNldChjb25zdCBJbnRTaXplJiwgYm9vbCBvcGFx
dWUpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNldCgpOwogICAgIHZvaWQgYmluZCgpOwogICAg
IH5CaXRtYXBUZXh0dXJlR0woKSB7IGRlc3Ryb3koKTsgfQogICAgIHZpcnR1YWwgdWludDMyX3Qg
aWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC0zMTgsNyArMzMwLDYgQEAgcHJpdmF0ZToK
ICAgICBJbnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEdMdWludCBtX2ZibzsKICAgICBHTHVpbnQg
bV9yYm87Ci0gICAgSW50U2l6ZSBtX2FjdHVhbFNpemU7CiAgICAgYm9vbCBtX3N1cmZhY2VOZWVk
c1Jlc2V0OwogICAgIFRleHR1cmVNYXBwZXJHTCogbV90ZXh0dXJlTWFwcGVyOwogICAgIEJpdG1h
cFRleHR1cmVHTCgpCkBAIC00NjQsNyArNDc1LDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJl
Z2luUGFpbnRpbmcoKQogCiAgICAgZ2xHZXRJbnRlZ2VydihHTF9DVVJSRU5UX1BST0dSQU0sICZk
YXRhKCkucHJldmlvdXNQcm9ncmFtKTsKICAgICBkYXRhKCkucHJldmlvdXNTY2lzc29yU3RhdGUg
PSBnbElzRW5hYmxlZChHTF9TQ0lTU09SX1RFU1QpOwotCisgICAgZGF0YSgpLnByZXZpb3VzRGVw
dGhTdGF0ZSA9IGdsSXNFbmFibGVkKEdMX0RFUFRIX1RFU1QpOworICAgIGdsRGlzYWJsZShHTF9E
RVBUSF9URVNUKTsKICAgICBnbEVuYWJsZShHTF9TQ0lTU09SX1RFU1QpOwogI2lmIFBMQVRGT1JN
KFFUKQogICAgIGlmIChtX2NvbnRleHQpIHsKQEAgLTQ3MywyMyArNDg1LDMwIEBAIHZvaWQgVGV4
dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKCkKICAgICAgICAgcGFpbnRlci0+YmVnaW5OYXRp
dmVQYWludGluZygpOwogICAgIH0KICNlbmRpZgotICAgIGdsQ2xlYXJTdGVuY2lsKDApOwotICAg
IGdsQ2xlYXIoR0xfU1RFTkNJTF9CVUZGRVJfQklUKTsKKyAgICBkYXRhKCkuZGlkTW9kaWZ5U3Rl
bmNpbCA9IGZhbHNlOworICAgIGdsRGVwdGhNYXNrKDApOwogICAgIGdsR2V0SW50ZWdlcnYoR0xf
VklFV1BPUlQsIGRhdGEoKS52aWV3cG9ydCk7CiAgICAgYmluZFN1cmZhY2UoMCk7CiB9CiAKIHZv
aWQgVGV4dHVyZU1hcHBlckdMOjplbmRQYWludGluZygpCiB7Ci0gICAgZ2xDbGVhclN0ZW5jaWwo
MSk7Ci0gICAgZ2xDbGVhcihHTF9TVEVOQ0lMX0JVRkZFUl9CSVQpOwotICAgIGdsVXNlUHJvZ3Jh
bShkYXRhKCkucHJldmlvdXNQcm9ncmFtKTsKKyAgICBpZiAoZGF0YSgpLmRpZE1vZGlmeVN0ZW5j
aWwpIHsKKyAgICAgICAgZ2xDbGVhclN0ZW5jaWwoMSk7CisgICAgICAgIGdsQ2xlYXIoR0xfU1RF
TkNJTF9CVUZGRVJfQklUKTsKKyAgICB9CiAKKyAgICBnbFVzZVByb2dyYW0oZGF0YSgpLnByZXZp
b3VzUHJvZ3JhbSk7CiAgICAgaWYgKGRhdGEoKS5wcmV2aW91c1NjaXNzb3JTdGF0ZSkKICAgICAg
ICAgZ2xFbmFibGUoR0xfU0NJU1NPUl9URVNUKTsKICAgICBlbHNlCiAgICAgICAgIGdsRGlzYWJs
ZShHTF9TQ0lTU09SX1RFU1QpOwogCisgICAgaWYgKGRhdGEoKS5wcmV2aW91c0RlcHRoU3RhdGUp
CisgICAgICAgIGdsRW5hYmxlKEdMX0RFUFRIX1RFU1QpOworICAgIGVsc2UKKyAgICAgICAgZ2xE
aXNhYmxlKEdMX0RFUFRIX1RFU1QpOworCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFtX2Nv
bnRleHQpCiAgICAgICAgIHJldHVybjsKQEAgLTU2MSwxNCArNTgwLDE0IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3VGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlLCBib29sIG9wYXF1ZSwgY29u
c3QgRmxvYXRTaXplCiAgICAgICAgIEdMX0NNRChnbEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTAp
KQogICAgIH0KIAotICAgIGlmIChvcGFxdWUgJiYgb3BhY2l0eSA+IDAuOTkgJiYgIW1hc2tUZXh0
dXJlKQotICAgICAgICBHTF9DTUQoZ2xEaXNhYmxlKEdMX0JMRU5EKSkKLSAgICBlbHNlIHsKKyAg
ICBib29sIG5lZWRzQmxlbmRpbmcgPSAhb3BhcXVlIHx8IG9wYWNpdHkgPCAwLjk5IHx8IG1hc2tU
ZXh0dXJlOworCisgICAgaWYgKG5lZWRzQmxlbmRpbmcpIHsKICAgICAgICAgR0xfQ01EKGdsQmxl
bmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19BTFBIQSkpCiAgICAgICAgIEdMX0NNRChn
bEVuYWJsZShHTF9CTEVORCkpCi0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBHTF9DTUQoZ2xE
aXNhYmxlKEdMX0JMRU5EKSkKIAotICAgIEdMX0NNRChnbERpc2FibGUoR0xfREVQVEhfVEVTVCkp
CiAKICAgICBHTF9DTUQoZ2xEcmF3QXJyYXlzKEdMX1RSSUFOR0xFX0ZBTiwgMCwgNCkpCiAgICAg
R0xfQ01EKGdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KHByb2dyYW1JbmZvLnZlcnRleEF0dHJp
YikpCkBAIC01NzksMTAgKzU5OCw5IEBAIGNvbnN0IGNoYXIqIFRleHR1cmVNYXBwZXJHTDo6dHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuICJPcGVuR0wiOwogfQogCi12b2lkIEJpdG1hcFRleHR1cmVH
TDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwgYm9vbCBvcGFxdWUpCit2b2lkIEJpdG1h
cFRleHR1cmVHTDo6ZGlkUmVzZXQoKQogewotICAgIEJpdG1hcFRleHR1cmU6OnJlc2V0KG5ld1Np
emUsIG9wYXF1ZSk7Ci0gICAgSW50U2l6ZSBuZXdUZXh0dXJlU2l6ZSA9IG5leHRQb3dlck9mVHdv
KG5ld1NpemUpOworICAgIEludFNpemUgbmV3VGV4dHVyZVNpemUgPSBuZXh0UG93ZXJPZlR3byhj
b250ZW50U2l6ZSgpKTsKICAgICBib29sIGp1c3RDcmVhdGVkID0gZmFsc2U7CiAgICAgaWYgKCFt
X2lkKSB7CiAgICAgICAgIEdMX0NNRChnbEdlblRleHR1cmVzKDEsICZtX2lkKSkKQEAgLTU5OCw4
ICs2MTYsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3
U2l6ZSwgYm9vbCBvcGFxdWUpCiAgICAgICAgIEdMX0NNRChnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpKQogICAgICAgICBH
TF9DTUQoZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIEdMX1JHQkEsIG1fdGV4dHVyZVNp
emUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSwgMCwgR0xfUkdCQSwgR0xfVU5TSUdO
RURfQllURSwgMCkpCiAgICAgfQotICAgIG1fYWN0dWFsU2l6ZSA9IG5ld1NpemU7Ci0gICAgbV9y
ZWxhdGl2ZVNpemUgPSBGbG9hdFNpemUoZmxvYXQobmV3U2l6ZS53aWR0aCgpKSAvIG1fdGV4dHVy
ZVNpemUud2lkdGgoKSwgZmxvYXQobmV3U2l6ZS5oZWlnaHQoKSkgLyBtX3RleHR1cmVTaXplLmhl
aWdodCgpKTsKKyAgICBtX3JlbGF0aXZlU2l6ZSA9IEZsb2F0U2l6ZShmbG9hdChjb250ZW50U2l6
ZSgpLndpZHRoKCkpIC8gbV90ZXh0dXJlU2l6ZS53aWR0aCgpLCBmbG9hdChjb250ZW50U2l6ZSgp
LmhlaWdodCgpKSAvIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOwogICAgIG1fc3VyZmFjZU5lZWRz
UmVzZXQgPSB0cnVlOwogfQogCkBAIC03MzMsMTIgKzc1MCw5IEBAIHZvaWQgQml0bWFwVGV4dHVy
ZUdMOjpiaW5kKCkKICAgICAgICAgR0xfQ01EKGdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJC
VUZGRVIsIDApKQogICAgICAgICBHTF9DTUQoZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFN
RUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGlkKCksIDApKQog
ICAgICAgICBHTF9DTUQoZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwg
R0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fcmJvKSkKLSNpZm5kZWYg
VEVYTUFQX09QRU5HTF9FU18yCi0gICAgICAgIEdMX0NNRChnbEZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIs
IG1fcmJvKSk7Ci0jZW5kaWYKICAgICAgICAgR0xfQ01EKGdsQ2xlYXJDb2xvcigwLCAwLCAwLCAw
KSkKICAgICAgICAgR0xfQ01EKGdsQ2xlYXJTdGVuY2lsKHN0ZW5jaWxJbmRleCAtIDEpKQotICAg
ICAgICBHTF9DTUQoZ2xDbGVhcihHTF9TVEVOQ0lMX0JVRkZFUl9CSVQgfCBHTF9DT0xPUl9CVUZG
RVJfQklUIHwgR0xfREVQVEhfQlVGRkVSX0JJVCkpCisgICAgICAgIEdMX0NNRChnbENsZWFyKEdM
X1NURU5DSUxfQlVGRkVSX0JJVCB8IEdMX0NPTE9SX0JVRkZFUl9CSVQpKQogICAgICAgICBtX3N1
cmZhY2VOZWVkc1Jlc2V0ID0gZmFsc2U7CiAgICAgfSBlbHNlCiAgICAgICAgIEdMX0NNRChnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pKQpAQCAtODQ0LDYgKzg1OCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1vZGVsVmlld01hdHJpeCwgY29uCiB7CiAgICAgaWYgKGJlZ2luU2Npc3NvckNsaXAobW9k
ZWxWaWV3TWF0cml4LCB0YXJnZXRSZWN0KSkKICAgICAgICAgcmV0dXJuOworICAgIGRhdGEoKS5p
bml0U3RlbmNpbCgpOwogICAgIFRleHR1cmVNYXBwZXJHTERhdGE6OlNoYXJlZEdMRGF0YTo6U2hh
ZGVyUHJvZ3JhbUluZGV4IHByb2dyYW0gPSBUZXh0dXJlTWFwcGVyR0xEYXRhOjpTaGFyZWRHTERh
dGE6OkNsaXBQcm9ncmFtOwogICAgIGNvbnN0IFRleHR1cmVNYXBwZXJHTERhdGE6OlNoYXJlZEdM
RGF0YTo6UHJvZ3JhbUluZm8mIHByb2dyYW1JbmZvID0gZGF0YSgpLnNoYXJlZEdMRGF0YSgpLnBy
b2dyYW1zW3Byb2dyYW1dOwogICAgIEdMX0NNRChnbFVzZVByb2dyYW0ocHJvZ3JhbUluZm8uaWQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmgKaW5kZXggMDkzNDM1Yi4uM2I5NGU4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBA
IC00OCw4ICs0OCwxNCBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyOwogY2xhc3MgQml0bWFwVGV4dHVy
ZSAgOiBwdWJsaWMgUmVmQ291bnRlZDxCaXRtYXBUZXh0dXJlPiB7CiBwdWJsaWM6CiAgICAgZW51
bSBQaXhlbEZvcm1hdCB7IEJHUkFGb3JtYXQsIFJHQkFGb3JtYXQsIEJHUkZvcm1hdCwgUkdCRm9y
bWF0IH07CisgICAgZW51bSBGbGFnIHsKKyAgICAgICAgU3VwcG9ydHNBbHBoYSA9IDB4MDEKKyAg
ICB9OworCisgICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKKwogICAgIEJpdG1hcFRleHR1cmUo
KQotICAgICAgICA6IG1faXNPcGFxdWUodHJ1ZSkKKyAgICAgICAgOiBtX2ZsYWdzKDApCiAgICAg
ewogICAgIH0KIApAQCAtNjAsMTIgKzY2LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQ29udGVudHMoSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYsIEJp
dG1hcFRleHR1cmU6OlBpeGVsRm9ybWF0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNv
bnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpc1ZhbGlkKCkgY29uc3QgPSAwOworICAgIGlubGluZSBGbGFncyBmbGFncygpIGNvbnN0IHsg
cmV0dXJuIG1fZmxhZ3M7IH0KIAogICAgIHZpcnR1YWwgaW50IGJwcCgpIGNvbnN0IHsgcmV0dXJu
IDMyOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0KGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wg
b3BhcXVlID0gZmFsc2UpCisgICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0KCkgeyB9CisgICAgdm9p
ZCByZXNldChjb25zdCBJbnRTaXplJiBzaXplLCBGbGFncyBmbGFncyA9IDApCiAgICAgewotICAg
ICAgICBtX2lzT3BhcXVlID0gb3BhcXVlOworICAgICAgICBtX2ZsYWdzID0gZmxhZ3M7CiAgICAg
ICAgIG1fY29udGVudFNpemUgPSBzaXplOworICAgICAgICBkaWRSZXNldCgpOwogICAgIH0KIAog
ICAgIGlubGluZSBJbnRTaXplIGNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
U2l6ZTsgfQpAQCAtNzksNiArODgsOSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSW50U2l6
ZSBtX2NvbnRlbnRTaXplOwogICAgIGJvb2wgbV9pc09wYXF1ZTsKKworcHJpdmF0ZToKKyAgICBG
bGFncyBtX2ZsYWdzOwogfTsKIAogLy8gQSAiY29udGV4dCIgY2xhc3MgdXNlZCB0byBlbmNhcHN1
bGF0ZSBhY2NlbGVyYXRlZCB0ZXh0dXJlIG1hcHBpbmcgZnVuY3Rpb25zOiBpLmUuIGRyYXdpbmcg
YSB0ZXh0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKaW5kZXgg
ZmNiOWY1My4uOWM5OTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3Jl
LmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250
ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZwogICAgIHRhcmdl
dFJlY3QubW92ZSgtbV9yZWN0LngoKSwgLW1fcmVjdC55KCkpOwogICAgIGlmICghbV90ZXh0dXJl
KSB7CiAgICAgICAgIG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsK
LSAgICAgICAgbV90ZXh0dXJlLT5yZXNldCh0YXJnZXRSZWN0LnNpemUoKSwgLyogb3BhcXVlID0g
Ki8gZmFsc2UpOworICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHRhcmdldFJlY3Quc2l6ZSgpLCBp
bWFnZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxw
aGEgOiAwKTsKICAgICB9CiAKICAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLCB0
YXJnZXRSZWN0LCBzb3VyY2VSZWN0LCBmb3JtYXQpOwpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5l
ZWRlZChUZXh0dXJlTWFwcAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgQml0bWFwVGV4
dHVyZTo6QkdSQUZvcm1hdCk7CisgICAgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9p
bWFnZS5nZXQoKSwgbV9pbWFnZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IEJpdG1hcFRleHR1
cmU6OkJHUkFGb3JtYXQgOiBCaXRtYXBUZXh0dXJlOjpCR1JGb3JtYXQpOwogICAgIG1faW1hZ2Uu
Y2xlYXIoKTsKIH0KIApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZQog
ICAgICAgICBtX3RpbGVzW2ldLnBhaW50KHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3Jt
LCBvcGFjaXR5LCBtYXNrKTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3Rv
cmU6OmNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBzaXplLCBj
b25zdCBJbnRTaXplJiB0aWxlU2l6ZSkKK3ZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0
b3JlOjpjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
Y29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGJvb2wgaGFzQWxwaGEpCiB7CiAgICAgaWYgKHNpemUg
PT0gbV9zaXplKQogICAgICAgICByZXR1cm47CkBAIC0xMTksOCArMTE5LDkgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQo
Y29uc3QgRmxvYXRTaXoKICAgICAgICAgICAgIFRleHR1cmVNYXBwZXJUaWxlJiB0aWxlID0gbV90
aWxlc1t0aWxlSW5kaWNlc1RvUmVtb3ZlLmxhc3QoKV07CiAgICAgICAgICAgICB0aWxlSW5kaWNl
c1RvUmVtb3ZlLnJlbW92ZUxhc3QoKTsKICAgICAgICAgICAgIHRpbGUuc2V0UmVjdCh0aWxlUmVj
dHNUb0FkZFtpXSk7CisKICAgICAgICAgICAgIGlmICh0aWxlLnRleHR1cmUoKSkKLSAgICAgICAg
ICAgICAgICB0aWxlLnRleHR1cmUoKS0+cmVzZXQoZW5jbG9zaW5nSW50UmVjdCh0aWxlLnJlY3Qo
KSkuc2l6ZSgpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGlsZS50ZXh0dXJlKCktPnJlc2V0
KGVuY2xvc2luZ0ludFJlY3QodGlsZS5yZWN0KCkpLnNpemUoKSwgaGFzQWxwaGEgPyBCaXRtYXBU
ZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogMCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCkBAIC0xMzUsNyArMTM2LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5n
U3RvcmU6OmNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQoY29uc3QgRmxvYXRTaXoKIAogdm9p
ZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiB0b3Rh
bFNpemUsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3Jt
YXQgZm9ybWF0KQogewotICAgIGNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQodG90YWxTaXpl
LCB0ZXh0dXJlTWFwcGVyLT5tYXhUZXh0dXJlU2l6ZSgpKTsKKyAgICBjcmVhdGVPckRlc3Ryb3lU
aWxlc0lmTmVlZGVkKHRvdGFsU2l6ZSwgdGV4dHVyZU1hcHBlci0+bWF4VGV4dHVyZVNpemUoKSwg
aW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV90aWxlcy5zaXplKCk7ICsraSkKICAgICAgICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50
cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgZGlydHlSZWN0LCBmb3JtYXQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJC
YWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKaW5kZXggZTJlZjFhOS4uOWYwNTZlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUoKSB7IH0K
LSAgICB2b2lkIGNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBi
YWNraW5nU3RvcmVTaXplLCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSk7CisgICAgdm9pZCBjcmVh
dGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYgYmFja2luZ1N0b3JlU2l6
ZSwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGJvb2wgaGFzQWxwaGEpOwogCiAgICAgVmVjdG9y
PFRleHR1cmVNYXBwZXJUaWxlPiBtX3RpbGVzOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCmluZGV4IDI0NThiMjAuLjBlOGVhZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCkBAIC0zNyw2ICszNywx
MiBAQCB2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29udGVudHMoY29uc3Qg
dm9pZCogZGF0YSwgY29uc3QgSW50UmVjdCYgdAogI2VuZGlmCiB9CiAKK3ZvaWQgQml0bWFwVGV4
dHVyZUltYWdlQnVmZmVyOjpkaWRSZXNldCgpCit7CisgICAgbV9pbWFnZSA9IEltYWdlQnVmZmVy
OjpjcmVhdGUoY29udGVudFNpemUoKSk7Cit9CisKKwogdm9pZCBCaXRtYXBUZXh0dXJlSW1hZ2VC
dWZmZXI6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgUGl4ZWxGb3JtYXQpCiB7CiAgICAgbV9p
bWFnZS0+Y29udGV4dCgpLT5kcmF3SW1hZ2UoaW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHRh
cmdldFJlY3QsIHNvdXJjZVJlY3QsIENvbXBvc2l0ZUNvcHkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5oCmluZGV4IGRhYTRhZWEuLjBiMzYzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyLmgKQEAgLTMzLDEyICszMyw3IEBAIHB1YmxpYzoKICAgICB+Qml0
bWFwVGV4dHVyZUltYWdlQnVmZmVyKCkgeyBkZXN0cm95KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJveSgpIHsgbV9pbWFnZS5jbGVhcigpOyB9CiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX2ltYWdlLT5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBvcGFxdWUpCi0gICAgewotICAgICAgICBCaXRt
YXBUZXh0dXJlOjpyZXNldChzaXplLCBvcGFxdWUpOwotICAgICAgICBtX2ltYWdlID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKTsKLSAgICB9Ci0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzZXQo
KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2U7IH0K
ICAgICBpbmxpbmUgR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQoKSB7IHJldHVybiBt
X2ltYWdlID8gbV9pbWFnZS0+Y29udGV4dCgpIDogMDsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JiwgUGl4ZWxG
b3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDdmMjI3YTIuLmQ3MjhlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0wMi0xNyAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxA
bm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBBbGxvdyBvcGFxdWUgdGlsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODA5CisKKyAgICAg
ICAgQXBwbHkgdGhlIFN1cHBvcnRzQWxwaGEgZmxhZyBvbmx5IHdoZW4gdGhlIGJ1ZmZlcnMgYWN0
dWFsbHkgaGF2ZSBhbHBoYS4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KKworICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKyAgICAg
ICAgKFNoYXJlYWJsZUJpdG1hcCk6CisgICAgICAgICogU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1h
cFF0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKToKKwog
MjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgog
CiAgICAgICAgIFtRdF1bV0syXSBBbGxvdyBwYXJ0aWFsIHVwZGF0ZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuaAppbmRleCA0MTE2YjM5Li5lNWQxYTZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xMzYsNyArMTM2LDYgQEAgcHVibGlj
OgogICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUg
Y29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgogICAgIFFJbWFn
ZSBjcmVhdGVRSW1hZ2UoKTsKICAgICBzdGF0aWMgdm9pZCByZWxlYXNlU2hhcmVkTWVtb3J5RGF0
YSh2b2lkKiB0eXBlbGVzc0JpdG1hcCk7Ci0gICAgdm9pZCBzd2l6emxlUkdCKCk7CiAjZW5kaWYK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFi
bGVCaXRtYXBRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFw
UXQuY3BwCmluZGV4IDhiODgxZWIuLjBjOGJlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcApAQCAtNzcsMTcgKzc3LDUgQEAgdm9pZCBTaGFy
ZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgLypjb250ZXh0Ki8sIGZsb2F0IC8q
c2NhbGVGYWN0b3IqLywKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNoYXJlYWJs
ZUJpdG1hcDo6c3dpenpsZVJHQigpCi17Ci0gICAgdWludDMyX3QqIGRhdGEgPSByZWludGVycHJl
dF9jYXN0PHVpbnQzMl90Kj4odGhpcy0+ZGF0YSgpKTsKLSAgICBpbnQgd2lkdGggPSBzaXplKCku
d2lkdGgoKTsKLSAgICBpbnQgaGVpZ2h0ID0gc2l6ZSgpLmhlaWdodCgpOwotICAgIGZvciAoaW50
IHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKLSAgICAgICAgdWludDMyX3QqIHAgPSBkYXRhICsg
eSAqIHdpZHRoOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCi0gICAg
ICAgICAgICBwW3hdID0gKChwW3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikg
JiAweGZmKSB8IChwW3hdICYgMHhmZjAwZmYwMCk7Ci0gICAgfQotfQotCiB9CiAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJC
YWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2lu
Z1N0b3JlLmNwcAppbmRleCAxYmEzZWZkLi5jZDAxYWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5jcHAKQEAgLTQ4LDExICs0OCwxMiBA
QCB2b2lkIExheWVyQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgc2hvdWxkUmVzZXQgPSB0cnVlOwogICAg
IH0KIAotICAgIC8vIEZJWE1FOiBjcmVhdGUgYW4gb3BhcXVlIHRleHR1cmUgd2hlbiB0aGUgYml0
bWFwIGlzIG9wYXF1ZS4KKyAgICBRSW1hZ2UgcUltYWdlID0gbV9iYWNrQnVmZmVyLT5jcmVhdGVR
SW1hZ2UoKTsKKwogICAgIGlmIChzaG91bGRSZXNldCkKLSAgICAgICAgdGV4dHVyZS0+cmVzZXQo
bV9zb3VyY2VSZWN0LnNpemUoKSwgZmFsc2UgLyogb3BhcXVlICovKTsKKyAgICAgICAgdGV4dHVy
ZS0+cmVzZXQobV9zb3VyY2VSZWN0LnNpemUoKSwgcUltYWdlLmhhc0FscGhhQ2hhbm5lbCgpID8g
Qml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IDApOwogCi0gICAgdGV4dHVyZS0+dXBkYXRl
Q29udGVudHMobV9iYWNrQnVmZmVyLT5jcmVhdGVRSW1hZ2UoKS5jb25zdEJpdHMoKSwgbV9zb3Vy
Y2VSZWN0KTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhxSW1hZ2UuY29uc3RCaXRzKCks
IG1fc291cmNlUmVjdCk7CiAgICAgbV9iYWNrQnVmZmVyLmNsZWFyKCk7CiB9CiAK
</data>
<flag name="commit-queue"
          id="129722"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127639</attachid>
            <date>2012-02-17 13:06:41 -0800</date>
            <delta_ts>2012-02-17 15:28:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>18288</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZmMyOWI3Li43Njk3OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTItMDItMTcgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gQWxsb3cgb3BhcXVlIHRpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwOQorCisgICAgICAgIFJlcGxh
Y2UgdGhlIGlzT3BhcXVlIGJvb2xlYW4gaW4gQml0bWFwVGV4dHVyZSB0byBhIFN1cHBvcnRzQWxw
aGEgZmxhZy4KKyAgICAgICAgVXNlIHJlc2V0L2RpZFJlc2V0IGluc3RlYWQgb2YgYSB2aXJ0dWFs
IGZ1bmN0aW9uIHRoYXQgaGFzIHRvIGNhbGwgdGhlIHN1cGVyY2xhc3MuCisKKyAgICAgICAgTWFr
ZSBzdXJlIHRoYXQgYWxsIGNhbGxzIHRvIEJpdG1hcFRleHR1cmU6OnJlc2V0KCkgcGFzcyB0aGUg
Y29ycmVjdCBTdXBwb3J0c0FscGhhIGZsYWcsCisgICAgICAgIGJhc2VkIG9uIHRoZSBzb3VyY2Ug
aW1hZ2UuCisgICAgICAgIFNpbmNlIHdlIG5vdyBkaXNhYmxlIGJsZW5kaW5nIGZvciBvcGFxdWUg
dGV4dHVyZXMsIHdlIGFsc28gaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB3ZSB0cmVhdAorICAgICAg
ICB0aGUgZGVwdGggYnVmZmVyIGNvcnJlY3RseSBhbmQgYnJpbmcgaXQgYmFjayB0byBpdHMgcHJl
dmlvdXMgc3RhdGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4uCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoVGV4dHVy
ZU1hcHBlckdMRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpp
bml0U3RlbmNpbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpUZXh0
dXJlTWFwcGVyR0xEYXRhKToKKyAgICAgICAgKEJpdG1hcFRleHR1cmVHTCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQYWludGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1
cmVHTDo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjpiaW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmVnaW5DbGlwKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZTo6Qml0bWFwVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlOjpmbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
OjpkaWRSZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjpyZXNldCk6Cisg
ICAgICAgIChCaXRtYXBUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3Jl
YXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAo
VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAoQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyKToKKwogMjAxMi0w
Mi0xNyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBUYWJsZSBjZWxsJ3MgYW5vbnltb3VzIHdyYXBwZXJzIGFyZSBsZWZ0IGluIHRoZSB0cmVlLCBp
bXBhY3Rpbmcgb3VyIGxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA5ZjliNTlhLi5m
MGE0YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMjgyLDE3ICsyODIsMzAgQEAgc3Ry
dWN0IFRleHR1cmVNYXBwZXJHTERhdGEgewogICAgICAgICByZXR1cm4gKihtX3NoYXJlZEdMRGF0
YS5nZXQoKSk7CiAgICAgfQogCisgICAgdm9pZCBpbml0U3RlbmNpbCgpCisgICAgeworICAgICAg
ICBpZiAoZGlkTW9kaWZ5U3RlbmNpbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZ2xD
bGVhclN0ZW5jaWwoMCk7CisgICAgICAgIGdsQ2xlYXIoR0xfU1RFTkNJTF9CVUZGRVJfQklUKTsK
KyAgICAgICAgZGlkTW9kaWZ5U3RlbmNpbCA9IHRydWU7CisgICAgfQorCiAgICAgVGV4dHVyZU1h
cHBlckdMRGF0YSgpCiAgICAgICAgIDogY3VycmVudFByb2dyYW0oU2hhcmVkR0xEYXRhOjpOb1By
b2dyYW0pCiAgICAgICAgICwgcHJldmlvdXNQcm9ncmFtKDApCisgICAgICAgICwgZGlkTW9kaWZ5
U3RlbmNpbChmYWxzZSkKICAgICAgICAgLCBwcmV2aW91c1NjaXNzb3JTdGF0ZSgwKQorICAgICAg
ICAsIHByZXZpb3VzRGVwdGhTdGF0ZSgwKQogICAgICAgICAsIG1fc2hhcmVkR0xEYXRhKFRleHR1
cmVNYXBwZXJHTERhdGE6OlNoYXJlZEdMRGF0YTo6Y3VycmVudFNoYXJlZEdMRGF0YSgpKQogICAg
IHsgfQogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcHJvamVjdGlvbk1hdHJpeDsKICAgICBp
bnQgY3VycmVudFByb2dyYW07CiAgICAgR0xpbnQgcHJldmlvdXNQcm9ncmFtOworICAgIGJvb2wg
ZGlkTW9kaWZ5U3RlbmNpbDsKICAgICBHTGludCBwcmV2aW91c1NjaXNzb3JTdGF0ZTsKKyAgICBH
TGludCBwcmV2aW91c0RlcHRoU3RhdGU7CiAgICAgR0xpbnQgdmlld3BvcnRbNF07CiAgICAgUmVm
UHRyPFNoYXJlZEdMRGF0YT4gbV9zaGFyZWRHTERhdGE7CiB9OwpAQCAtMzAyLDcgKzMxNSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwogICAgIHZpcnR1YWwgSW50U2l6
ZSBzaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVzZXQoY29uc3QgSW50U2l6ZSYsIGJvb2wgb3BhcXVlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVzZXQoKTsKICAgICB2b2lkIGJpbmQoKTsKICAgICB+Qml0bWFwVGV4dHVy
ZUdMKCkgeyBkZXN0cm95KCk7IH0KICAgICB2aXJ0dWFsIHVpbnQzMl90IGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQpAQCAtMzE4LDcgKzMzMSw2IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBt
X2RpcnR5UmVjdDsKICAgICBHTHVpbnQgbV9mYm87CiAgICAgR0x1aW50IG1fcmJvOwotICAgIElu
dFNpemUgbV9hY3R1YWxTaXplOwogICAgIGJvb2wgbV9zdXJmYWNlTmVlZHNSZXNldDsKICAgICBU
ZXh0dXJlTWFwcGVyR0wqIG1fdGV4dHVyZU1hcHBlcjsKICAgICBCaXRtYXBUZXh0dXJlR0woKQpA
QCAtNDY0LDcgKzQ3Niw4IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKCkK
IAogICAgIGdsR2V0SW50ZWdlcnYoR0xfQ1VSUkVOVF9QUk9HUkFNLCAmZGF0YSgpLnByZXZpb3Vz
UHJvZ3JhbSk7CiAgICAgZGF0YSgpLnByZXZpb3VzU2Npc3NvclN0YXRlID0gZ2xJc0VuYWJsZWQo
R0xfU0NJU1NPUl9URVNUKTsKLQorICAgIGRhdGEoKS5wcmV2aW91c0RlcHRoU3RhdGUgPSBnbElz
RW5hYmxlZChHTF9ERVBUSF9URVNUKTsKKyAgICBnbERpc2FibGUoR0xfREVQVEhfVEVTVCk7CiAg
ICAgZ2xFbmFibGUoR0xfU0NJU1NPUl9URVNUKTsKICNpZiBQTEFURk9STShRVCkKICAgICBpZiAo
bV9jb250ZXh0KSB7CkBAIC00NzMsMjMgKzQ4NiwzMCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
YmVnaW5QYWludGluZygpCiAgICAgICAgIHBhaW50ZXItPmJlZ2luTmF0aXZlUGFpbnRpbmcoKTsK
ICAgICB9CiAjZW5kaWYKLSAgICBnbENsZWFyU3RlbmNpbCgwKTsKLSAgICBnbENsZWFyKEdMX1NU
RU5DSUxfQlVGRkVSX0JJVCk7CisgICAgZGF0YSgpLmRpZE1vZGlmeVN0ZW5jaWwgPSBmYWxzZTsK
KyAgICBnbERlcHRoTWFzaygwKTsKICAgICBnbEdldEludGVnZXJ2KEdMX1ZJRVdQT1JULCBkYXRh
KCkudmlld3BvcnQpOwogICAgIGJpbmRTdXJmYWNlKDApOwogfQogCiB2b2lkIFRleHR1cmVNYXBw
ZXJHTDo6ZW5kUGFpbnRpbmcoKQogewotICAgIGdsQ2xlYXJTdGVuY2lsKDEpOwotICAgIGdsQ2xl
YXIoR0xfU1RFTkNJTF9CVUZGRVJfQklUKTsKLSAgICBnbFVzZVByb2dyYW0oZGF0YSgpLnByZXZp
b3VzUHJvZ3JhbSk7CisgICAgaWYgKGRhdGEoKS5kaWRNb2RpZnlTdGVuY2lsKSB7CisgICAgICAg
IGdsQ2xlYXJTdGVuY2lsKDEpOworICAgICAgICBnbENsZWFyKEdMX1NURU5DSUxfQlVGRkVSX0JJ
VCk7CisgICAgfQogCisgICAgZ2xVc2VQcm9ncmFtKGRhdGEoKS5wcmV2aW91c1Byb2dyYW0pOwog
ICAgIGlmIChkYXRhKCkucHJldmlvdXNTY2lzc29yU3RhdGUpCiAgICAgICAgIGdsRW5hYmxlKEdM
X1NDSVNTT1JfVEVTVCk7CiAgICAgZWxzZQogICAgICAgICBnbERpc2FibGUoR0xfU0NJU1NPUl9U
RVNUKTsKIAorICAgIGlmIChkYXRhKCkucHJldmlvdXNEZXB0aFN0YXRlKQorICAgICAgICBnbEVu
YWJsZShHTF9ERVBUSF9URVNUKTsKKyAgICBlbHNlCisgICAgICAgIGdsRGlzYWJsZShHTF9ERVBU
SF9URVNUKTsKKwogI2lmIFBMQVRGT1JNKFFUKQogICAgIGlmICghbV9jb250ZXh0KQogICAgICAg
ICByZXR1cm47CkBAIC01NjEsMTQgKzU4MSwxNCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d1RleHR1cmUodWludDMyX3QgdGV4dHVyZSwgYm9vbCBvcGFxdWUsIGNvbnN0IEZsb2F0U2l6ZQog
ICAgICAgICBHTF9DTUQoZ2xBY3RpdmVUZXh0dXJlKEdMX1RFWFRVUkUwKSkKICAgICB9CiAKLSAg
ICBpZiAob3BhcXVlICYmIG9wYWNpdHkgPiAwLjk5ICYmICFtYXNrVGV4dHVyZSkKLSAgICAgICAg
R0xfQ01EKGdsRGlzYWJsZShHTF9CTEVORCkpCi0gICAgZWxzZSB7CisgICAgYm9vbCBuZWVkc0Js
ZW5kaW5nID0gIW9wYXF1ZSB8fCBvcGFjaXR5IDwgMC45OSB8fCBtYXNrVGV4dHVyZTsKKworICAg
IGlmIChuZWVkc0JsZW5kaW5nKSB7CiAgICAgICAgIEdMX0NNRChnbEJsZW5kRnVuYyhHTF9PTkUs
IEdMX09ORV9NSU5VU19TUkNfQUxQSEEpKQogICAgICAgICBHTF9DTUQoZ2xFbmFibGUoR0xfQkxF
TkQpKQotICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgR0xfQ01EKGdsRGlzYWJsZShHTF9CTEVO
RCkpCiAKLSAgICBHTF9DTUQoZ2xEaXNhYmxlKEdMX0RFUFRIX1RFU1QpKQogCiAgICAgR0xfQ01E
KGdsRHJhd0FycmF5cyhHTF9UUklBTkdMRV9GQU4sIDAsIDQpKQogICAgIEdMX0NNRChnbERpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheShwcm9ncmFtSW5mby52ZXJ0ZXhBdHRyaWIpKQpAQCAtNTc5LDEw
ICs1OTksOSBAQCBjb25zdCBjaGFyKiBUZXh0dXJlTWFwcGVyR0w6OnR5cGUoKSBjb25zdAogICAg
IHJldHVybiAiT3BlbkdMIjsKIH0KIAotdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnJlc2V0KGNvbnN0
IEludFNpemUmIG5ld1NpemUsIGJvb2wgb3BhcXVlKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OmRp
ZFJlc2V0KCkKIHsKLSAgICBCaXRtYXBUZXh0dXJlOjpyZXNldChuZXdTaXplLCBvcGFxdWUpOwot
ICAgIEludFNpemUgbmV3VGV4dHVyZVNpemUgPSBuZXh0UG93ZXJPZlR3byhuZXdTaXplKTsKKyAg
ICBJbnRTaXplIG5ld1RleHR1cmVTaXplID0gbmV4dFBvd2VyT2ZUd28oY29udGVudFNpemUoKSk7
CiAgICAgYm9vbCBqdXN0Q3JlYXRlZCA9IGZhbHNlOwogICAgIGlmICghbV9pZCkgewogICAgICAg
ICBHTF9DTUQoZ2xHZW5UZXh0dXJlcygxLCAmbV9pZCkpCkBAIC01OTgsOCArNjE3LDcgQEAgdm9p
ZCBCaXRtYXBUZXh0dXJlR0w6OnJlc2V0KGNvbnN0IEludFNpemUmIG5ld1NpemUsIGJvb2wgb3Bh
cXVlKQogICAgICAgICBHTF9DTUQoZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RF
WFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKSkKICAgICAgICAgR0xfQ01EKGdsVGV4SW1h
Z2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9SR0JBLCBtX3RleHR1cmVTaXplLndpZHRoKCksIG1f
dGV4dHVyZVNpemUuaGVpZ2h0KCksIDAsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIDApKQog
ICAgIH0KLSAgICBtX2FjdHVhbFNpemUgPSBuZXdTaXplOwotICAgIG1fcmVsYXRpdmVTaXplID0g
RmxvYXRTaXplKGZsb2F0KG5ld1NpemUud2lkdGgoKSkgLyBtX3RleHR1cmVTaXplLndpZHRoKCks
IGZsb2F0KG5ld1NpemUuaGVpZ2h0KCkpIC8gbV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSk7CisgICAg
bV9yZWxhdGl2ZVNpemUgPSBGbG9hdFNpemUoZmxvYXQoY29udGVudFNpemUoKS53aWR0aCgpKSAv
IG1fdGV4dHVyZVNpemUud2lkdGgoKSwgZmxvYXQoY29udGVudFNpemUoKS5oZWlnaHQoKSkgLyBt
X3RleHR1cmVTaXplLmhlaWdodCgpKTsKICAgICBtX3N1cmZhY2VOZWVkc1Jlc2V0ID0gdHJ1ZTsK
IH0KIApAQCAtNzMzLDEyICs3NTEsOSBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6YmluZCgpCiAg
ICAgICAgIEdMX0NNRChnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCAwKSkKICAg
ICAgICAgR0xfQ01EKGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NP
TE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBpZCgpLCAwKSkKICAgICAgICAgR0xfQ01E
KGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRU
QUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX3JibykpCi0jaWZuZGVmIFRFWE1BUF9PUEVOR0xf
RVNfMgotICAgICAgICBHTF9DTUQoZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX3JibykpOwotI2Vu
ZGlmCiAgICAgICAgIEdMX0NNRChnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCkpCiAgICAgICAgIEdM
X0NNRChnbENsZWFyU3RlbmNpbChzdGVuY2lsSW5kZXggLSAxKSkKLSAgICAgICAgR0xfQ01EKGds
Q2xlYXIoR0xfU1RFTkNJTF9CVUZGRVJfQklUIHwgR0xfQ09MT1JfQlVGRkVSX0JJVCB8IEdMX0RF
UFRIX0JVRkZFUl9CSVQpKQorICAgICAgICBHTF9DTUQoZ2xDbGVhcihHTF9TVEVOQ0lMX0JVRkZF
Ul9CSVQgfCBHTF9DT0xPUl9CVUZGRVJfQklUKSkKICAgICAgICAgbV9zdXJmYWNlTmVlZHNSZXNl
dCA9IGZhbHNlOwogICAgIH0gZWxzZQogICAgICAgICBHTF9DTUQoZ2xCaW5kRnJhbWVidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIG1fZmJvKSkKQEAgLTg0NCw2ICs4NTksNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6YmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGNvbgogewogICAgIGlmIChiZWdpblNjaXNzb3JDbGlwKG1vZGVsVmlld01hdHJpeCwg
dGFyZ2V0UmVjdCkpCiAgICAgICAgIHJldHVybjsKKyAgICBkYXRhKCkuaW5pdFN0ZW5jaWwoKTsK
ICAgICBUZXh0dXJlTWFwcGVyR0xEYXRhOjpTaGFyZWRHTERhdGE6OlNoYWRlclByb2dyYW1JbmRl
eCBwcm9ncmFtID0gVGV4dHVyZU1hcHBlckdMRGF0YTo6U2hhcmVkR0xEYXRhOjpDbGlwUHJvZ3Jh
bTsKICAgICBjb25zdCBUZXh0dXJlTWFwcGVyR0xEYXRhOjpTaGFyZWRHTERhdGE6OlByb2dyYW1J
bmZvJiBwcm9ncmFtSW5mbyA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS5wcm9ncmFtc1twcm9ncmFt
XTsKICAgICBHTF9DTUQoZ2xVc2VQcm9ncmFtKHByb2dyYW1JbmZvLmlkKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
CmluZGV4IDA5MzQzNWIuLjNiOTRlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApAQCAtNDgsOCArNDgsMTQg
QEAgY2xhc3MgVGV4dHVyZU1hcHBlcjsKIGNsYXNzIEJpdG1hcFRleHR1cmUgIDogcHVibGljIFJl
ZkNvdW50ZWQ8Qml0bWFwVGV4dHVyZT4gewogcHVibGljOgogICAgIGVudW0gUGl4ZWxGb3JtYXQg
eyBCR1JBRm9ybWF0LCBSR0JBRm9ybWF0LCBCR1JGb3JtYXQsIFJHQkZvcm1hdCB9OworICAgIGVu
dW0gRmxhZyB7CisgICAgICAgIFN1cHBvcnRzQWxwaGEgPSAweDAxCisgICAgfTsKKworICAgIHR5
cGVkZWYgdW5zaWduZWQgRmxhZ3M7CisKICAgICBCaXRtYXBUZXh0dXJlKCkKLSAgICAgICAgOiBt
X2lzT3BhcXVlKHRydWUpCisgICAgICAgIDogbV9mbGFncygwKQogICAgIHsKICAgICB9CiAKQEAg
LTYwLDEyICs2NiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRz
KEltYWdlKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBCaXRtYXBUZXh0dXJlOjpQ
aXhlbEZvcm1hdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB2
b2lkKiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0ID0gMDsKKyAgICBpbmxpbmUgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
OyB9CiAKICAgICB2aXJ0dWFsIGludCBicHAoKSBjb25zdCB7IHJldHVybiAzMjsgfQotICAgIHZp
cnR1YWwgdm9pZCByZXNldChjb25zdCBJbnRTaXplJiBzaXplLCBib29sIG9wYXF1ZSA9IGZhbHNl
KQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNldCgpIHsgfQorICAgIHZvaWQgcmVzZXQoY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgRmxhZ3MgZmxhZ3MgPSAwKQogICAgIHsKLSAgICAgICAgbV9pc09wYXF1
ZSA9IG9wYXF1ZTsKKyAgICAgICAgbV9mbGFncyA9IGZsYWdzOwogICAgICAgICBtX2NvbnRlbnRT
aXplID0gc2l6ZTsKKyAgICAgICAgZGlkUmVzZXQoKTsKICAgICB9CiAKICAgICBpbmxpbmUgSW50
U2l6ZSBjb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFNpemU7IH0KQEAgLTc5
LDYgKzg4LDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEludFNpemUgbV9jb250ZW50U2l6
ZTsKICAgICBib29sIG1faXNPcGFxdWU7CisKK3ByaXZhdGU6CisgICAgRmxhZ3MgbV9mbGFnczsK
IH07CiAKIC8vIEEgImNvbnRleHQiIGNsYXNzIHVzZWQgdG8gZW5jYXBzdWxhdGUgYWNjZWxlcmF0
ZWQgdGV4dHVyZSBtYXBwaW5nIGZ1bmN0aW9uczogaS5lLiBkcmF3aW5nIGEgdGV4dHVyZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDU5ZDk2ZGYuLjZjM2Uy
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWcKICAgICB0YXJnZXRSZWN0Lm1vdmUoLW1f
cmVjdC54KCksIC1tX3JlY3QueSgpKTsKICAgICBpZiAoIW1fdGV4dHVyZSkgewogICAgICAgICBt
X3RleHR1cmUgPSB0ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIG1fdGV4
dHVyZS0+cmVzZXQodGFyZ2V0UmVjdC5zaXplKCksIC8qIG9wYXF1ZSA9ICovIGZhbHNlKTsKKyAg
ICAgICAgbV90ZXh0dXJlLT5yZXNldCh0YXJnZXRSZWN0LnNpemUoKSwgaW1hZ2UtPmN1cnJlbnRG
cmFtZUhhc0FscGhhKCkgPyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogMCk7CiAgICAg
fQogCiAgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZSwgdGFyZ2V0UmVjdCwgc291
cmNlUmVjdCwgZm9ybWF0KTsKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVkZWQoVGV4dHVyZU1h
cHAKICAgICBpZiAoIW1faW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUNvbnRl
bnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIEJpdG1hcFRleHR1cmU6OkJHUkFGb3Jt
YXQpOworICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1f
aW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkgPyBCaXRtYXBUZXh0dXJlOjpCR1JBRm9ybWF0
IDogQml0bWFwVGV4dHVyZTo6QkdSRm9ybWF0KTsKICAgICBtX2ltYWdlLmNsZWFyKCk7CiB9CiAK
QEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnBh
aW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmUKICAgICAgICAgbV90aWxl
c1tpXS5wYWludCh0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFz
ayk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGVPckRl
c3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUpCit2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlT3JE
ZXN0cm95VGlsZXNJZk5lZWRlZChjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IEludFNpemUm
IHRpbGVTaXplLCBib29sIGhhc0FscGhhKQogewogICAgIGlmIChzaXplID09IG1fc2l6ZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTE5LDggKzExOSw5IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjpjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6
CiAgICAgICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSYgdGlsZSA9IG1fdGlsZXNbdGlsZUluZGlj
ZXNUb1JlbW92ZS5sYXN0KCldOwogICAgICAgICAgICAgdGlsZUluZGljZXNUb1JlbW92ZS5yZW1v
dmVMYXN0KCk7CiAgICAgICAgICAgICB0aWxlLnNldFJlY3QodGlsZVJlY3RzVG9BZGRbaV0pOwor
CiAgICAgICAgICAgICBpZiAodGlsZS50ZXh0dXJlKCkpCi0gICAgICAgICAgICAgICAgdGlsZS50
ZXh0dXJlKCktPnJlc2V0KGVuY2xvc2luZ0ludFJlY3QodGlsZS5yZWN0KCkpLnNpemUoKSwgZmFs
c2UpOworICAgICAgICAgICAgICAgIHRpbGUudGV4dHVyZSgpLT5yZXNldChlbmNsb3NpbmdJbnRS
ZWN0KHRpbGUucmVjdCgpKS5zaXplKCksIGhhc0FscGhhID8gQml0bWFwVGV4dHVyZTo6U3VwcG9y
dHNBbHBoYSA6IDApOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMTM1
LDcgKzEzNiw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGVP
ckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6CiAKIHZvaWQgVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXplLCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlBpeGVsRm9ybWF0IGZvcm1hdCkKIHsK
LSAgICBjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKHRvdGFsU2l6ZSwgdGV4dHVyZU1hcHBl
ci0+bWF4VGV4dHVyZVNpemUoKSk7CisgICAgY3JlYXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZCh0
b3RhbFNpemUsIHRleHR1cmVNYXBwZXItPm1heFRleHR1cmVTaXplKCksIGltYWdlLT5jdXJyZW50
RnJhbWVIYXNBbHBoYSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGlsZXMuc2l6
ZSgpOyArK2kpCiAgICAgICAgIG1fdGlsZXNbaV0udXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBl
ciwgaW1hZ2UsIGRpcnR5UmVjdCwgZm9ybWF0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJh
Y2tpbmdTdG9yZS5oCmluZGV4IGUyZWYxYTkuLjlmMDU2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJCYWNraW5nU3RvcmUuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKCkgeyB9Ci0gICAgdm9pZCBjcmVh
dGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYgYmFja2luZ1N0b3JlU2l6
ZSwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUpOworICAgIHZvaWQgY3JlYXRlT3JEZXN0cm95VGls
ZXNJZk5lZWRlZChjb25zdCBGbG9hdFNpemUmIGJhY2tpbmdTdG9yZVNpemUsIGNvbnN0IEludFNp
emUmIHRpbGVTaXplLCBib29sIGhhc0FscGhhKTsKIAogICAgIFZlY3RvcjxUZXh0dXJlTWFwcGVy
VGlsZT4gbV90aWxlczsKICAgICBGbG9hdFNpemUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckltYWdlQnVmZmVyLmNwcAppbmRleCAyNDU4YjIwLi4wZThlYWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdl
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcApAQCAtMzcsNiArMzcsMTEgQEAgdm9pZCBCaXRt
YXBUZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRhdGEsIGNv
bnN0IEludFJlY3QmIHQKICNlbmRpZgogfQogCit2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZl
cjo6ZGlkUmVzZXQoKQoreworICAgIG1faW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNvbnRl
bnRTaXplKCkpOworfQorCiB2b2lkIEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6dXBkYXRlQ29u
dGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBQaXhlbEZvcm1hdCkKIHsKICAgICBtX2ltYWdlLT5jb250ZXh0KCkt
PmRyYXdJbWFnZShpbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgdGFyZ2V0UmVjdCwgc291cmNl
UmVjdCwgQ29tcG9zaXRlQ29weSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgK
aW5kZXggZGFhNGFlYS4uMGIzNjNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuaApAQCAtMzMsMTIgKzMzLDcgQEAgcHVibGljOgogICAgIH5CaXRtYXBUZXh0dXJlSW1hZ2VC
dWZmZXIoKSB7IGRlc3Ryb3koKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgeyBtX2lt
YWdlLmNsZWFyKCk7IH0KICAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW1hZ2UtPnNpemUoKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXNldChjb25zdCBJbnRTaXpl
JiBzaXplLCBib29sIG9wYXF1ZSkKLSAgICB7Ci0gICAgICAgIEJpdG1hcFRleHR1cmU6OnJlc2V0
KHNpemUsIG9wYXF1ZSk7Ci0gICAgICAgIG1faW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNp
emUpOwotICAgIH0KLQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNldCgpOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZTsgfQogICAgIGlubGluZSBHcmFw
aGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCgpIHsgcmV0dXJuIG1faW1hZ2UgPyBtX2ltYWdl
LT5jb250ZXh0KCkgOiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdl
KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBQaXhlbEZvcm1hdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZWE3N2M2MC4uMjE2ZGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEy
LTAyLTE3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAg
ICAgICAgW1F0XVtXSzJdIEFsbG93IG9wYXF1ZSB0aWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MDkKKworICAgICAgICBBcHBseSB0aGUgU3Vw
cG9ydHNBbHBoYSBmbGFnIG9ubHkgd2hlbiB0aGUgYnVmZmVycyBhY3R1YWxseSBoYXZlIGFscGhh
LgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisg
ICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAgICAgICAoU2hhcmVhYmxlQml0
bWFwKToKKyAgICAgICAgKiBTaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFwUXQuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMpOgorCiAyMDEyLTAyLTE3ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggc29tZSB3
YXJuaW5ncyBlbmNvdW50ZXJlZCBkdXJpbmcgdGhlIEdUSysgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuaAppbmRleCA0MTE2YjM5Li5lNWQxYTZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xMzYsNyArMTM2LDYgQEAgcHVibGlj
OgogICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUg
Y29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgogICAgIFFJbWFn
ZSBjcmVhdGVRSW1hZ2UoKTsKICAgICBzdGF0aWMgdm9pZCByZWxlYXNlU2hhcmVkTWVtb3J5RGF0
YSh2b2lkKiB0eXBlbGVzc0JpdG1hcCk7Ci0gICAgdm9pZCBzd2l6emxlUkdCKCk7CiAjZW5kaWYK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFi
bGVCaXRtYXBRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFw
UXQuY3BwCmluZGV4IDhiODgxZWIuLjBjOGJlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcApAQCAtNzcsMTcgKzc3LDUgQEAgdm9pZCBTaGFy
ZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgLypjb250ZXh0Ki8sIGZsb2F0IC8q
c2NhbGVGYWN0b3IqLywKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNoYXJlYWJs
ZUJpdG1hcDo6c3dpenpsZVJHQigpCi17Ci0gICAgdWludDMyX3QqIGRhdGEgPSByZWludGVycHJl
dF9jYXN0PHVpbnQzMl90Kj4odGhpcy0+ZGF0YSgpKTsKLSAgICBpbnQgd2lkdGggPSBzaXplKCku
d2lkdGgoKTsKLSAgICBpbnQgaGVpZ2h0ID0gc2l6ZSgpLmhlaWdodCgpOwotICAgIGZvciAoaW50
IHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKLSAgICAgICAgdWludDMyX3QqIHAgPSBkYXRhICsg
eSAqIHdpZHRoOwotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCi0gICAg
ICAgICAgICBwW3hdID0gKChwW3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikg
JiAweGZmKSB8IChwW3hdICYgMHhmZjAwZmYwMCk7Ci0gICAgfQotfQotCiB9CiAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJC
YWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2lu
Z1N0b3JlLmNwcAppbmRleCAxYmEzZWZkLi5jZDAxYWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5jcHAKQEAgLTQ4LDExICs0OCwxMiBA
QCB2b2lkIExheWVyQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgc2hvdWxkUmVzZXQgPSB0cnVlOwogICAg
IH0KIAotICAgIC8vIEZJWE1FOiBjcmVhdGUgYW4gb3BhcXVlIHRleHR1cmUgd2hlbiB0aGUgYml0
bWFwIGlzIG9wYXF1ZS4KKyAgICBRSW1hZ2UgcUltYWdlID0gbV9iYWNrQnVmZmVyLT5jcmVhdGVR
SW1hZ2UoKTsKKwogICAgIGlmIChzaG91bGRSZXNldCkKLSAgICAgICAgdGV4dHVyZS0+cmVzZXQo
bV9zb3VyY2VSZWN0LnNpemUoKSwgZmFsc2UgLyogb3BhcXVlICovKTsKKyAgICAgICAgdGV4dHVy
ZS0+cmVzZXQobV9zb3VyY2VSZWN0LnNpemUoKSwgcUltYWdlLmhhc0FscGhhQ2hhbm5lbCgpID8g
Qml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IDApOwogCi0gICAgdGV4dHVyZS0+dXBkYXRl
Q29udGVudHMobV9iYWNrQnVmZmVyLT5jcmVhdGVRSW1hZ2UoKS5jb25zdEJpdHMoKSwgbV9zb3Vy
Y2VSZWN0KTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhxSW1hZ2UuY29uc3RCaXRzKCks
IG1fc291cmNlUmVjdCk7CiAgICAgbV9iYWNrQnVmZmVyLmNsZWFyKCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>