<?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>83224</bug_id>
          
          <creation_ts>2012-04-04 15:05:13 -0700</creation_ts>
          <short_desc>[Part 4] We should use CSSPropertyID rather than integers when manipulating CSS property ids.</short_desc>
          <delta_ts>2012-04-04 20:08:34 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>benjamin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>rakuco</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>595990</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-04-04 15:05:13 -0700</bug_when>
    <thetext>[Part 4] We should use CSSPropertyID rather than integers when manipulating CSS property ids.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595991</commentid>
    <comment_count>1</comment_count>
      <attachid>135693</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-04-04 15:06:13 -0700</bug_when>
    <thetext>Created attachment 135693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596041</commentid>
    <comment_count>2</comment_count>
      <attachid>135693</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-04 15:44:26 -0700</bug_when>
    <thetext>Comment on attachment 135693
Patch

Attachment 135693 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12327199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596093</commentid>
    <comment_count>3</comment_count>
      <attachid>135693</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 16:44:25 -0700</bug_when>
    <thetext>Comment on attachment 135693
Patch

Attachment 135693 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12329140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596125</commentid>
    <comment_count>4</comment_count>
      <attachid>135726</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-04 17:16:00 -0700</bug_when>
    <thetext>Created attachment 135726
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596128</commentid>
    <comment_count>5</comment_count>
      <attachid>135727</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-04 17:21:22 -0700</bug_when>
    <thetext>Created attachment 135727
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596132</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-04 17:24:46 -0700</bug_when>
    <thetext>Sorry about that, I do 2 things at the same time and mixed the repositories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596138</commentid>
    <comment_count>7</comment_count>
      <attachid>135729</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-04-04 17:33:50 -0700</bug_when>
    <thetext>Created attachment 135729
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596252</commentid>
    <comment_count>8</comment_count>
      <attachid>135729</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 20:08:28 -0700</bug_when>
    <thetext>Comment on attachment 135729
Patch for landing

Clearing flags on attachment: 135729

Committed r113281: &lt;http://trac.webkit.org/changeset/113281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596253</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 20:08:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135693</attachid>
            <date>2012-04-04 15:06:13 -0700</date>
            <delta_ts>2012-04-04 17:15:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83224-20120404190554.patch</filename>
            <type>text/plain</type>
            <size>17178</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY2NTg2YTZmMzI2Yzc2
MGY3MjBkYTI0NjVlMTE1MjdkZDI5MDBmZC4uM2NmZTY3YWM2NTQ2Yjg5NjI4MDQ5MjQ0NTkwN2Jk
ZmM1NzlhZjJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTA0LTA0ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCisgICAgICAgIFtQYXJ0
IDRdIFdlIHNob3VsZCB1c2UgQ1NTUHJvcGVydHlJRCByYXRoZXIgdGhhbiBpbnRlZ2VycyB3aGVu
IG1hbmlwdWxhdGluZyBDU1MgcHJvcGVydHkgaWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NQcm9wZXJ0eUlEIGVudW0gaG9sZHMgYWxsIHRoZSBD
U1MgcHJvcGVydHkgaWRzIGJ1dCBtYW55IHBhcnRzIG9mIFdlYktpdCB0cmVhdCB0aGUgaWRzCisg
ICAgICAgIGFzIGludGVnZXJzLiBXaGlsZSBpdCdzIG5vdCBpbmNvcnJlY3QgaXQgaXMgbmljZXIg
dG8gdXNlIHRoZSBlbnVtIGFzIGEgcGFyYW1ldGVyIG9mCisgICAgICAgIGZ1bmN0aW9ucyBtYW5p
cHVsYXRpbmcgcHJvcGVydHkgaWRzLCBhcyB3ZSBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgcGFzc2Vk
IHdpbGwgYmUgYW4KKyAgICAgICAgZXhpc3RpbmcgdmFsdWUuIFRoaXMgcGF0Y2ggY2xlYW4gdXAg
c29tZSByZW1haW5pbmcgcGFydCBvZiBjb2RlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyA6IFRo
ZXJlIHNob3VsZCBiZSBubyBiZWhhdmlvciBjaGFuZ2UgaW4gdGhpcyBwYXRjaC4KKworICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
U2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFz
ZTo6YWZmZWN0c1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6Omlz
QW5pbWF0aW5nUHJvcGVydHkpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OmdldEFu
aW1hdGlvbkZvclByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlv
bjo6b3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlQW5pbWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6aXNBbmltYXRpbmdQcm9wZXJ0eSk6Cisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmg6CisgICAgICAgIChD
b21wb3NpdGVBbmltYXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjphZmZlY3Rz
UHJvcGVydHkpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6dHJhbnNpdGlvblByb3BlcnR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjphbmltYXRpbmdQcm9wZXJ0
eSk6CisgICAgICAgIChJbXBsaWNpdEFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmlt
YXRpb246OmZldGNoSW50ZXJ2YWxFbmRwb2ludHNGb3JQcm9wZXJ0eSk6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246Om92ZXJyaWRlQW5pbWF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6cmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0
eSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaDoKKyAgICAg
ICAgKEtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dHJhbnNp
dGlvblBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnRyYW5z
aXRpb25GaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Omdy
YXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6Y3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQmFja2luZyk6CisK
KzIwMTItMDQtMDQgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+
CisKICAgICAgICAgQW5pbWF0aW9uIHJlbGF0ZWQgY2xhc3NlcyBzaG91bGQgdXNlIENTU1Byb3Bl
cnR5SUQgcmF0aGVyIHRoYW4gaW50ZWdlcnMgd2hlbiBtYW5pcHVsYXRpbmcgQ1NTIHByb3BlcnR5
IGlkcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgz
MDUwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA2YTY3NjUw
Zjc4NzM1NzNhZTU1OTRkZDY1OGQwZDIyODM4ZGI1YTEzLi4wZDVhMmUyZTc0N2JmMGE0YTg4NDRm
MDgzOWFmOGY3MGMxMzlkYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCkBAIC0xNjc4LDcgKzE2NzgsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHls
ZVNlbGVjdG9yOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IFJlbmRlclN0eWxlKiBlbAogICAgIGlm
IChTdHlsZVByb3BlcnR5U2V0KiBzdHlsZURlY2xhcmF0aW9uID0ga2V5ZnJhbWUtPnByb3BlcnRp
ZXMoKSkgewogICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gc3R5bGVEZWNsYXJhdGlv
bi0+cHJvcGVydHlDb3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJv
cGVydHlDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBpbnQgcHJvcGVydHkgPSBzdHlsZURlY2xh
cmF0aW9uLT5wcm9wZXJ0eUF0KGkpLmlkKCk7CisgICAgICAgICAgICBDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5ID0gc3R5bGVEZWNsYXJhdGlvbi0+cHJvcGVydHlBdChpKS5pZCgpOwogICAgICAgICAg
ICAgLy8gVGltaW5nLWZ1bmN0aW9uIHdpdGhpbiBrZXlmcmFtZXMgaXMgc3BlY2lhbCwgYmVjYXVz
ZSBpdCBpcyBub3QgYW5pbWF0ZWQ7IGl0IGp1c3QKICAgICAgICAgICAgIC8vIGRlc2NyaWJlcyB0
aGUgdGltaW5nIGZ1bmN0aW9uIGJldHdlZW4gdGhpcyBrZXlmcmFtZSBhbmQgdGhlIG5leHQuCiAg
ICAgICAgICAgICBpZiAocHJvcGVydHkgIT0gQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1p
bmdGdW5jdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuaAppbmRleCA5ZjVmYTk0YTE5NjdjNDAwYzNjODc3NmE4ZTUyZTQ5NjE3MzlmY2VlLi5jMDM4
ODJiYTU5NDA2NjgxMjRiODYzN2RjZWE5ODllMTc1NTFkYmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xNTMsOSArMTUzLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBvdmVycmlkZGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIERvZXMgdGhpcyBhbmltYXRpb24vdHJhbnNpdGlvbiBpbnZvbHZlIHRoZSBn
aXZlbiBwcm9wZXJ0eT8KLSAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0c1Byb3BlcnR5KGludCAvKnBy
b3BlcnR5Ki8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFmZmVj
dHNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIC8qcHJvcGVydHkqLykgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIGJvb2wgaXNBbmltYXRpbmdQcm9wZXJ0eShpbnQgcHJvcGVydHksIGJvb2wg
YWNjZWxlcmF0ZWRPbmx5LCBib29sIGlzUnVubmluZ05vdykgY29uc3QKKyAgICBib29sIGlzQW5p
bWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9u
bHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKGFjY2VsZXJh
dGVkT25seSAmJiAhbV9pc0FjY2VsZXJhdGVkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKaW5kZXggNjBkNzhiODIyOTZlZjViYWNmOWE5ZDY5MmM0YjhkYmNhOTBmODY4OC4uZjgz
MDA2N2UwYWMzNTdiOTNjZmM3NTI4NmEzN2JmOTgwMjZiZTQzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNzks
NyArMzc5LDcgQEAgZG91YmxlIENvbXBvc2l0ZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2Uo
KSBjb25zdAogICAgIHJldHVybiBtaW5UOwogfQogCi1QYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBDb21wb3NpdGVBbmltYXRpb246OmdldEFuaW1hdGlvbkZvclByb3BlcnR5KGludCBwcm9w
ZXJ0eSkgY29uc3QKK1Bhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IENvbXBvc2l0ZUFuaW1h
dGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29u
c3QKIHsKICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsKICAgICAKQEAgLTQ1
MCw3ICs0NTAsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6cmVzdW1lQW5pbWF0aW9ucygp
CiAgICAgfQogfQogCi12b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6b3ZlcnJpZGVJbXBsaWNpdEFu
aW1hdGlvbnMoaW50IHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVBbmltYXRpb246Om92ZXJyaWRl
SW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiB7CiAgICAgQ1NTUHJv
cGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90cmFuc2l0aW9ucy5l
bmQoKTsKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CkBAIC00NjIsNyArNDYy
LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246Om92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25z
KGludCBwcm9wZXJ0eSkKICAgICB9CiB9CiAKLXZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpyZXN1
bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSkKK3ZvaWQgQ29tcG9z
aXRlQW5pbWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHkpCiB7CiAgICAgaWYgKCFtX3RyYW5zaXRpb25zLmlzRW1wdHkoKSkgewog
ICAgICAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBt
X3RyYW5zaXRpb25zLmVuZCgpOwpAQCAtNDc0LDcgKzQ3NCw3IEBAIHZvaWQgQ29tcG9zaXRlQW5p
bWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSkK
ICAgICB9CiB9CiAKLWJvb2wgQ29tcG9zaXRlQW5pbWF0aW9uOjppc0FuaW1hdGluZ1Byb3BlcnR5
KGludCBwcm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93KSBj
b25zdAorYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93
KSBjb25zdAogewogICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKaW5kZXgg
NjdiYTNjZTY1YTk2NmQ0OTVlYTc1ZWEyMjg4ZjY3YWEzMGYxNTdkZi4uMjQ3NWFlYWNmODUwMDUx
YWMxMjc4YWJmZjNjNjMzN2NkZGRjNWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKQEAgLTcwLDEyICs3MCwxMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgIHsgcmV0dXJuICFtX3RyYW5zaXRp
b25zLmlzRW1wdHkoKSB8fCAhbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpOyB9CiAKICAg
ICB2b2lkIHNldEFuaW1hdGluZyhib29sKTsKLSAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHko
aW50IHByb3BlcnR5LCBib29sIGFjY2VsZXJhdGVkT25seSwgYm9vbCBpc1J1bm5pbmdOb3cpIGNv
bnN0OworICAgIGJvb2wgaXNBbmltYXRpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFj
Y2VsZXJhdGVkT25seSwgYm9vbCBpc1J1bm5pbmdOb3cpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoaW50IHByb3BlcnR5
KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBnZXRBbmltYXRpb25G
b3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIAotICAgIHZvaWQgb3ZlcnJpZGVJbXBs
aWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KTsKLSAgICB2b2lkIHJlc3VtZU92ZXJyaWRkZW5J
bXBsaWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KTsKKyAgICB2b2lkIG92ZXJyaWRlSW1wbGlj
aXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOworICAgIHZvaWQgcmVzdW1lT3ZlcnJpZGRlbklt
cGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKIAogICAgIGJvb2wgcGF1c2VBbmltYXRp
b25BdFRpbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBkb3VibGUgdCk7CiAgICAgYm9vbCBw
YXVzZVRyYW5zaXRpb25BdFRpbWUoQ1NTUHJvcGVydHlJRCwgZG91YmxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAppbmRleCBi
NDBkOWVlMjQ5YTg4ZDJjNzZlNmE2NWUyZTJmYjgzNmNhNDExMDhkLi40YmUyNmVkNDA3OGRmZmJj
MmJiMGE0MDA5OTVlMzNmNjYzN2YzN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgdm9p
ZCBJbXBsaWNpdEFuaW1hdGlvbjo6c2V0T3ZlcnJpZGRlbihib29sIGIpCiAgICAgdXBkYXRlU3Rh
dGVNYWNoaW5lKG1fb3ZlcnJpZGRlbiA/IEFuaW1hdGlvblN0YXRlSW5wdXRQYXVzZU92ZXJyaWRl
IDogQW5pbWF0aW9uU3RhdGVJbnB1dFJlc3VtZU92ZXJyaWRlLCAtMSk7CiB9CiAKLWJvb2wgSW1w
bGljaXRBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0eShpbnQgcHJvcGVydHkpIGNvbnN0Citib29s
IEltcGxpY2l0QW5pbWF0aW9uOjphZmZlY3RzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSkgY29uc3QKIHsKICAgICByZXR1cm4gKG1fYW5pbWF0aW5nUHJvcGVydHkgPT0gcHJvcGVydHkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmgKaW5kZXggY2Q1ZDBhZDc4OGFjMTI0MTVkMTg0M2E5NGQwNWFmMjZiZDc2M2M0ZS4uZTlm
Njk0MmVkZWE3ZTlhZTg5MzBhYjQ5NDYwZWZiODgzYmQyZjE1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC00NCw4ICs0NCw4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbXBsaWNpdEFuaW1hdGlv
bihhbmltYXRpb24sIGFuaW1hdGluZ1Byb3BlcnR5LCByZW5kZXJlciwgY29tcG9zaXRlQW5pbWF0
aW9uLCBmcm9tU3R5bGUpKTsKICAgICB9OwogICAgIAotICAgIGludCB0cmFuc2l0aW9uUHJvcGVy
dHkoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaXRpb25Qcm9wZXJ0eTsgfQotICAgIGludCBhbmlt
YXRpbmdQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KKyAg
ICBDU1NQcm9wZXJ0eUlEIHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNpdGlvblByb3BlcnR5OyB9CisgICAgQ1NTUHJvcGVydHlJRCBhbmltYXRpbmdQcm9wZXJ0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpOwogICAgIHZpcnR1YWwgYm9vbCBz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE92ZXJyaWRkZW4oYm9vbCk7CiAgICAgdmlydHVhbCBib29sIG92ZXJy
aWRkZW4oKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW47IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhZmZlY3RzUHJvcGVydHkoaW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0c1By
b3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJvbVN0eWxlICYmIG1fdG9TdHlsZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggYWVkNGZi
MGUzM2U5YzRkMjMzNGVkYzMxZjhlM2FmYjJiYTJmNDI1NS4uMDI5YjdiODQ2MDk2MWI4Y2FlODhi
YWJjZmY1MmM2MzhjNjY5OWU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgY29u
c3QgQW5pbWF0aW9uKiBnZXRBbmltYXRpb25Gcm9tU3R5bGVCeU5hbWUoY29uc3QgUmVuZGVyU3R5
bGUqIHN0eWxlLCBjbwogICAgIHJldHVybiAwOwogfQogCi12b2lkIEtleWZyYW1lQW5pbWF0aW9u
OjpmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoaW50IHByb3BlcnR5LCBjb25zdCBS
ZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3Vi
bGUmIHByb2cpIGNvbnN0Cit2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5k
cG9pbnRzRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5
bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiYgdG9TdHlsZSwgZG91YmxlJiBwcm9n
KSBjb25zdAogewogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGtleQogICAgIGRvdWJsZSBlbGFwc2Vk
VGltZSA9IGdldEVsYXBzZWRUaW1lKCk7CkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBLZXlmcmFt
ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZShSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRl
ZFN0eWxlKQogICAgIH0KIH0KIAotYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9u
Rm9yUHJvcGVydHkoaW50IHByb3BlcnR5KSBjb25zdAorYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6
aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9rZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShwcm9wZXJ0eSk7CiB9CkBA
IC0zNTEsNyArMzUxLDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRp
b25zKCkKICAgICAvLyBUaGlzIHdpbGwgb3ZlcnJpZGUgaW1wbGljaXQgYW5pbWF0aW9ucyB0aGF0
IG1hdGNoIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBrZXlmcmFtZSBhbmltYXRpb24KICAgICBIYXNo
U2V0PGludD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fa2V5ZnJhbWVzLmVuZFByb3BlcnRpZXMo
KTsKICAgICBmb3IgKEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1l
cy5iZWdpblByb3BlcnRpZXMoKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICBjb21wb3NpdGVB
bmltYXRpb24oKS0+b3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoKml0KTsKKyAgICAgICAgY29t
cG9zaXRlQW5pbWF0aW9uKCktPm92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKHN0YXRpY19jYXN0
PENTU1Byb3BlcnR5SUQ+KCppdCkpOwogfQogCiB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpyZXN1
bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpCkBAIC0zNTksMTAgKzM1OSwxMCBAQCB2b2lkIEtleWZy
YW1lQW5pbWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpCiAgICAgLy8gVGhpcyB3
aWxsIHJlc3VtZSBvdmVycmlkZGVuIGltcGxpY2l0IGFuaW1hdGlvbnMKICAgICBIYXNoU2V0PGlu
dD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fa2V5ZnJhbWVzLmVuZFByb3BlcnRpZXMoKTsKICAg
ICBmb3IgKEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lcy5iZWdp
blByb3BlcnRpZXMoKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICBjb21wb3NpdGVBbmltYXRp
b24oKS0+cmVzdW1lT3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucygqaXQpOworICAgICAgICBj
b21wb3NpdGVBbmltYXRpb24oKS0+cmVzdW1lT3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucyhz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPigqaXQpKTsKIH0KIAotYm9vbCBLZXlmcmFtZUFuaW1h
dGlvbjo6YWZmZWN0c1Byb3BlcnR5KGludCBwcm9wZXJ0eSkgY29uc3QKK2Jvb2wgS2V5ZnJhbWVB
bmltYXRpb246OmFmZmVjdHNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAog
ewogICAgIHJldHVybiBtX2tleWZyYW1lcy5jb250YWluc1Byb3BlcnR5KHByb3BlcnR5KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5o
CmluZGV4IDZlNjRjYzJkNDFjOTEwMDVmNTZiMWUwZDFkNzEwNTMyNWRlMGY4ZWUuLjhiNzEwMjE5
ZmRiOGZiZGJhMTU0OWE5MTg0OWY5M2M2NzJhZjA1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaApAQCAtNTMsNyArNTMsNyBAQCBw
dWJsaWM6CiAgICAgaW50IGluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQogICAgIHZv
aWQgc2V0SW5kZXgoaW50IGkpIHsgbV9pbmRleCA9IGk7IH0KIAotICAgIGJvb2wgaGFzQW5pbWF0
aW9uRm9yUHJvcGVydHkoaW50IHByb3BlcnR5KSBjb25zdDsKKyAgICBib29sIGhhc0FuaW1hdGlv
bkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIAogICAgIHZvaWQgc2V0VW5h
bmltYXRlZFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fdW5hbmltYXRl
ZFN0eWxlID0gc3R5bGU7IH0KICAgICBSZW5kZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKCkgY29u
c3QgeyByZXR1cm4gbV91bmFuaW1hdGVkU3R5bGUuZ2V0KCk7IH0KQEAgLTc0LDcgKzc0LDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIoRG9jdW1lbnQ6
Okxpc3RlbmVyVHlwZSBpbkxpc3RlbmVyVHlwZSkgY29uc3Q7CiAgICAgYm9vbCBzZW5kQW5pbWF0
aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgZG91YmxlIGVsYXBzZWRUaW1lKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBhZmZlY3RzUHJvcGVydHkoaW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgYWZmZWN0c1Byb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAgdm9pZCB2YWxp
ZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAg
LTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5LZXlmcmFtZUFuaW1hdGlvbigp
OwogICAgIAogICAgIC8vIEdldCB0aGUgc3R5bGVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgc3Vy
cm91bmRpbmcgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHRpbWUgYW5kIHRoZSBwcm9ncmVzcyBiZXR3
ZWVuIHRoZW0uCi0gICAgdm9pZCBmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoaW50
IHByb3BlcnR5LCBjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5
bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2dyZXNzKSBjb25zdDsKKyAgICB2b2lkIGZldGNoSW50
ZXJ2YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBjb25zdCBSZW5kZXJTdHls
ZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2dy
ZXNzKSBjb25zdDsKIAogICAgIC8vIFRoZSBrZXlmcmFtZXMgdGhhdCB3ZSBhcmUgYmxlbmRpbmcu
CiAgICAgS2V5ZnJhbWVMaXN0IG1fa2V5ZnJhbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBlNWFjMDM2NmRmY2I5MzRiMmU2ODdl
MTc3YzI3ZDhmZjI3MmIxMjExLi5mODA1MjAzYTYwZjU3YzNkZjA0OTI1OTgwY2UxMmM4ZDFlYTBh
OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMTM4NCwxNCArMTM4NCwxNCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3Rh
cnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogI2Vu
ZGlmCiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uUGF1c2VkKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBpbnQgcHJvcGVydHkpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dHJh
bnNpdGlvblBhdXNlZChkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkK
IHsKICAgICBBbmltYXRlZFByb3BlcnR5SUQgYW5pbWF0ZWRQcm9wZXJ0eSA9IGNzc1RvR3JhcGhp
Y3NMYXllclByb3BlcnR5KHByb3BlcnR5KTsKICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eSAhPSBB
bmltYXRlZFByb3BlcnR5SW52YWxpZCkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5wYXVzZUFu
aW1hdGlvbihHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihhbmltYXRl
ZFByb3BlcnR5KSwgdGltZU9mZnNldCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0
cmFuc2l0aW9uRmluaXNoZWQoaW50IHByb3BlcnR5KQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnRyYW5zaXRpb25GaW5pc2hlZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KQogewogICAgIEFuaW1h
dGVkUHJvcGVydHlJRCBhbmltYXRlZFByb3BlcnR5ID0gY3NzVG9HcmFwaGljc0xheWVyUHJvcGVy
dHkocHJvcGVydHkpOwogICAgIGlmIChhbmltYXRlZFByb3BlcnR5ICE9IEFuaW1hdGVkUHJvcGVy
dHlJbnZhbGlkKQpAQCAtMTQzMCw5ICsxNDMwLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnNldENvbXBvc2l0ZWRCb3VuZHMoY29uc3QgSW50UmVjdCYgYm91bmRzKQogICAgIG1fY29tcG9z
aXRlZEJvdW5kcyA9IGJvdW5kczsKIAogfQotaW50IFJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhp
Y3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQorQ1NTUHJv
cGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFu
aW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKLSAgICBpbnQgY3NzUHJvcGVydHkgPSBDU1NQ
cm9wZXJ0eUludmFsaWQ7CisgICAgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eSA9IENTU1Byb3Bl
cnR5SW52YWxpZDsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CiAgICAgICAgIGNhc2UgQW5pbWF0
ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKICAgICAgICAgICAgIGNzc1Byb3BlcnR5ID0gQ1NT
UHJvcGVydHlXZWJraXRUcmFuc2Zvcm07CkBAIC0xNDU2LDcgKzE0NTYsNyBAQCBpbnQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpncmFwaGljc0xheWVyVG9DU1NQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5
SUQgcHJvcGVydHkpCiAgICAgcmV0dXJuIGNzc1Byb3BlcnR5OwogfQogCi1BbmltYXRlZFByb3Bl
cnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShpbnQg
Y3NzUHJvcGVydHkpCitBbmltYXRlZFByb3BlcnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NU
b0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5KQogewogICAg
IHN3aXRjaCAoY3NzUHJvcGVydHkpIHsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zZm9ybToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aAppbmRleCA4OWIzZjEyYzU0MmFlYzIxMTYwYzEyYTM5OGRhY2M2YmQ0MjdhNjYwLi45M2QzYjUy
MWRjY2JjYmUyMGI4NjA4MjIyNjNlOTk2YTgzN2NlZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xMDYsOCArMTA2LDggQEAgcHVibGlj
OgogCiAgICAgLy8gSW50ZXJmYWNlIHRvIHN0YXJ0LCBmaW5pc2gsIHN1c3BlbmQgYW5kIHJlc3Vt
ZSBhbmltYXRpb25zIGFuZCB0cmFuc2l0aW9ucwogICAgIGJvb2wgc3RhcnRUcmFuc2l0aW9uKGRv
dWJsZSwgQ1NTUHJvcGVydHlJRCwgY29uc3QgUmVuZGVyU3R5bGUqIGZyb21TdHlsZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIHRvU3R5bGUpOwotICAgIHZvaWQgdHJhbnNpdGlvblBhdXNlZChkb3VibGUg
dGltZU9mZnNldCwgaW50IHByb3BlcnR5KTsKLSAgICB2b2lkIHRyYW5zaXRpb25GaW5pc2hlZChp
bnQgcHJvcGVydHkpOworICAgIHZvaWQgdHJhbnNpdGlvblBhdXNlZChkb3VibGUgdGltZU9mZnNl
dCwgQ1NTUHJvcGVydHlJRCk7CisgICAgdm9pZCB0cmFuc2l0aW9uRmluaXNoZWQoQ1NTUHJvcGVy
dHlJRCk7CiAKICAgICBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25z
dCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IEtleWZyYW1lTGlzdCYga2V5ZnJhbWVzKTsKICAgICB2
b2lkIGFuaW1hdGlvblBhdXNlZChkb3VibGUgdGltZU9mZnNldCwgY29uc3QgU3RyaW5nJiBuYW1l
KTsKQEAgLTIxMSw4ICsyMTEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludEludG9MYXll
cihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2UsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290KTsKIAotICAgIHN0YXRpYyBpbnQgZ3JhcGhp
Y3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKLSAgICBzdGF0aWMgQW5p
bWF0ZWRQcm9wZXJ0eUlEIGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KGludCk7CisgICAgc3Rh
dGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9w
ZXJ0eUlEKTsKKyAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlEIGNzc1RvR3JhcGhpY3NMYXll
clByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFN0cmluZyBu
YW1lRm9yTGF5ZXIoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135726</attachid>
            <date>2012-04-04 17:16:00 -0700</date>
            <delta_ts>2012-04-04 17:21:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-83224-20120404171558.patch</filename>
            <type>text/plain</type>
            <size>16558</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA0LTA0ICBBbGV4aXMg
TWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtQYXJ0IDRd
IFdlIHNob3VsZCB1c2UgQ1NTUHJvcGVydHlJRCByYXRoZXIgdGhhbiBpbnRlZ2VycyB3aGVuIG1h
bmlwdWxhdGluZyBDU1MgcHJvcGVydHkgaWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENo
YW5nLgorCisgICAgICAgIENTU1Byb3BlcnR5SUQgZW51bSBob2xkcyBhbGwgdGhlIENTUyBwcm9w
ZXJ0eSBpZHMgYnV0IG1hbnkgcGFydHMgb2YgV2ViS2l0IHRyZWF0IHRoZSBpZHMKKyAgICAgICAg
YXMgaW50ZWdlcnMuIFdoaWxlIGl0J3Mgbm90IGluY29ycmVjdCBpdCBpcyBuaWNlciB0byB1c2Ug
dGhlIGVudW0gYXMgYSBwYXJhbWV0ZXIgb2YKKyAgICAgICAgZnVuY3Rpb25zIG1hbmlwdWxhdGlu
ZyBwcm9wZXJ0eSBpZHMsIGFzIHdlIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBwYXNzZWQgd2lsbCBi
ZSBhbgorICAgICAgICBleGlzdGluZyB2YWx1ZS4gVGhpcyBwYXRjaCBjbGVhbiB1cCBzb21lIHJl
bWFpbmluZyBwYXJ0IG9mIGNvZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIDogVGhlcmUgc2hv
dWxkIGJlIG5vIGJlaGF2aW9yIGNoYW5nZSBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjphZmZl
Y3RzUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6aXNBbmltYXRp
bmdQcm9wZXJ0eSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9u
Rm9yUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjpvdmVy
cmlkZUltcGxpY2l0QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmlt
YXRpb246OnJlc3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjppc0FuaW1hdGluZ1Byb3BlcnR5KToKKyAgICAgICAg
KiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaDoKKyAgICAgICAgKENvbXBvc2l0
ZUFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0
eSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0cmFuc2l0aW9uUHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGluZ1Byb3BlcnR5KToKKyAg
ICAgICAgKEltcGxpY2l0QW5pbWF0aW9uKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6
ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Oktl
eWZyYW1lQW5pbWF0aW9uOjpoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eSk6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6YWZmZWN0c1Byb3BlcnR5KToKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOgorICAgICAgICAoS2V5
ZnJhbWVBbmltYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uUGF1
c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dHJhbnNpdGlvbkZp
bmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhpY3NM
YXllclRvQ1NTUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKwogMjAxMi0w
NC0wNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEZWxheSBw
b3N0LWluc2VydGlvbiBub3RpZmljYXRpb25zIHVudGlsIG5ldyBET00gdHJlZSBpcyBjb21wbGV0
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24g
MTEzMjY3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjc4LDcgKzE2NzgsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBD
U1NTdHlsZVNlbGVjdG9yCiAgICAgaWYgKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlRGVjbGFyYXRp
b24gPSBrZXlmcmFtZS0+cHJvcGVydGllcygpKSB7CiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5
Q291bnQgPSBzdHlsZURlY2xhcmF0aW9uLT5wcm9wZXJ0eUNvdW50KCk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIGlu
dCBwcm9wZXJ0eSA9IHN0eWxlRGVjbGFyYXRpb24tPnByb3BlcnR5QXQoaSkuaWQoKTsKKyAgICAg
ICAgICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBzdHlsZURlY2xhcmF0aW9uLT5wcm9wZXJ0
eUF0KGkpLmlkKCk7CiAgICAgICAgICAgICAvLyBUaW1pbmctZnVuY3Rpb24gd2l0aGluIGtleWZy
YW1lcyBpcyBzcGVjaWFsLCBiZWNhdXNlIGl0IGlzIG5vdCBhbmltYXRlZDsgaXQganVzdAogICAg
ICAgICAgICAgLy8gZGVzY3JpYmVzIHRoZSB0aW1pbmcgZnVuY3Rpb24gYmV0d2VlbiB0aGlzIGtl
eWZyYW1lIGFuZCB0aGUgbmV4dC4KICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSAhPSBDU1NQcm9w
ZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAkocmV2aXNpb24gMTEzMjY3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTMsOSArMTUzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBvdmVycmlk
ZGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIERvZXMgdGhpcyBhbmltYXRp
b24vdHJhbnNpdGlvbiBpbnZvbHZlIHRoZSBnaXZlbiBwcm9wZXJ0eT8KLSAgICB2aXJ0dWFsIGJv
b2wgYWZmZWN0c1Byb3BlcnR5KGludCAvKnByb3BlcnR5Ki8pIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIC8qcHJv
cGVydHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgaXNBbmltYXRpbmdQ
cm9wZXJ0eShpbnQgcHJvcGVydHksIGJvb2wgYWNjZWxlcmF0ZWRPbmx5LCBib29sIGlzUnVubmlu
Z05vdykgY29uc3QKKyAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkT25seSAmJiAhbV9pc0FjY2VsZXJhdGVkKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCShyZXZpc2lvbiAxMTMyNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzksNyArMzc5LDcgQEAgZG91YmxlIENvbXBvc2l0ZUFuaW1h
dGlvbjo6dGltZVRvTmV4dFNlcgogICAgIHJldHVybiBtaW5UOwogfQogCi1QYXNzUmVmUHRyPEtl
eWZyYW1lQW5pbWF0aW9uPiBDb21wb3NpdGVBbmltYXRpb246OmdldEFuaW1hdGlvbkZvclByb3Bl
cnR5KGludCBwcm9wZXJ0eSkgY29uc3QKK1Bhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IENv
bXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSkgY29uc3QKIHsKICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsK
ICAgICAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6cmVzdW1l
QW5pbWF0aW9uCiAgICAgfQogfQogCi12b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6b3ZlcnJpZGVJ
bXBsaWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVBbmltYXRpb246
Om92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiB7CiAg
ICAgQ1NTUHJvcGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90cmFu
c2l0aW9ucy5lbmQoKTsKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CkBAIC00
NjIsNyArNDYyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246Om92ZXJyaWRlSW1wbGljaQog
ICAgIH0KIH0KIAotdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJlc3VtZU92ZXJyaWRkZW5JbXBs
aWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJl
c3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkK
IHsKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENTU1Byb3Bl
cnR5VHJhbnNpdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fdHJhbnNpdGlvbnMuZW5k
KCk7CkBAIC00NzQsNyArNDc0LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJlc3VtZU92
ZXJyaWRkZQogICAgIH0KIH0KIAotYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmlzQW5pbWF0aW5n
UHJvcGVydHkoaW50IHByb3BlcnR5LCBib29sIGFjY2VsZXJhdGVkT25seSwgYm9vbCBpc1J1bm5p
bmdOb3cpIGNvbnN0Citib29sIENvbXBvc2l0ZUFuaW1hdGlvbjo6aXNBbmltYXRpbmdQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGFjY2VsZXJhdGVkT25seSwgYm9vbCBpc1J1
bm5pbmdOb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5pc0VtcHR5
KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5jeSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmgJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMiArNzAsMTIg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzQW5pbWF0aW9ucygpIGNvbnN0ICB7IHJldHVybiAhbV90
cmFuc2l0aW9ucy5pc0VtcHR5KCkgfHwgIW1fa2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKTsg
fQogCiAgICAgdm9pZCBzZXRBbmltYXRpbmcoYm9vbCk7Ci0gICAgYm9vbCBpc0FuaW1hdGluZ1By
b3BlcnR5KGludCBwcm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5n
Tm93KSBjb25zdDsKKyAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwg
Ym9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdDsKIAotICAgIFBh
c3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KGludCBw
cm9wZXJ0eSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gZ2V0QW5p
bWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKLSAgICB2b2lkIG92ZXJy
aWRlSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSk7Ci0gICAgdm9pZCByZXN1bWVPdmVy
cmlkZGVuSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSk7CisgICAgdm9pZCBvdmVycmlk
ZUltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKKyAgICB2b2lkIHJlc3VtZU92ZXJy
aWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CiAKICAgICBib29sIHBhdXNl
QW5pbWF0aW9uQXRUaW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgZG91YmxlIHQpOwogICAg
IGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lKENTU1Byb3BlcnR5SUQsIGRvdWJsZSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw3ICsyMjIsNyBA
QCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpzZXRPdmVycmlkZGVuKGJvCiAgICAgdXBkYXRlU3Rh
dGVNYWNoaW5lKG1fb3ZlcnJpZGRlbiA/IEFuaW1hdGlvblN0YXRlSW5wdXRQYXVzZU92ZXJyaWRl
IDogQW5pbWF0aW9uU3RhdGVJbnB1dFJlc3VtZU92ZXJyaWRlLCAtMSk7CiB9CiAKLWJvb2wgSW1w
bGljaXRBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0eShpbnQgcHJvcGVydHkpIGNvbnN0Citib29s
IEltcGxpY2l0QW5pbWF0aW9uOjphZmZlY3RzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSkgY29uc3QKIHsKICAgICByZXR1cm4gKG1fYW5pbWF0aW5nUHJvcGVydHkgPT0gcHJvcGVydHkp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5oCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbXBsaWNpdEFuaW1hdGlv
bihhbmltYXRpb24sIGFuaW1hdGluZ1Byb3BlcnR5LCByZW5kZXJlciwgY29tcG9zaXRlQW5pbWF0
aW9uLCBmcm9tU3R5bGUpKTsKICAgICB9OwogICAgIAotICAgIGludCB0cmFuc2l0aW9uUHJvcGVy
dHkoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaXRpb25Qcm9wZXJ0eTsgfQotICAgIGludCBhbmlt
YXRpbmdQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KKyAg
ICBDU1NQcm9wZXJ0eUlEIHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNpdGlvblByb3BlcnR5OyB9CisgICAgQ1NTUHJvcGVydHlJRCBhbmltYXRpbmdQcm9wZXJ0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpOwogICAgIHZpcnR1YWwgYm9vbCBz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE92ZXJyaWRkZW4oYm9vbCk7CiAgICAgdmlydHVhbCBib29sIG92ZXJy
aWRkZW4oKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW47IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhZmZlY3RzUHJvcGVydHkoaW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0c1By
b3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJvbVN0eWxlICYmIG1fdG9TdHlsZTsgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCShyZXZp
c2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIGNvbnN0
IEFuaW1hdGlvbiogZ2V0QW5pbWF0aW9uRnJvbQogICAgIHJldHVybiAwOwogfQogCi12b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoaW50IHBy
b3BlcnR5LCBjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUq
JiB0b1N0eWxlLCBkb3VibGUmIHByb2cpIGNvbnN0Cit2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpm
ZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Y29uc3QgUmVuZGVyU3R5bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiYgdG9TdHls
ZSwgZG91YmxlJiBwcm9nKSBjb25zdAogewogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGtleQogICAg
IGRvdWJsZSBlbGFwc2VkVGltZSA9IGdldEVsYXBzZWRUaW1lKCk7CkBAIC0yMjksNyArMjI5LDcg
QEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZQogICAgIH0KIH0KIAot
Ym9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoaW50IHByb3Bl
cnR5KSBjb25zdAorYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9rZXlmcmFt
ZXMuY29udGFpbnNQcm9wZXJ0eShwcm9wZXJ0eSk7CiB9CkBAIC0zNTEsNyArMzUxLDcgQEAgdm9p
ZCBLZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpbwogICAgIC8vIFRoaXMgd2lsbCBv
dmVycmlkZSBpbXBsaWNpdCBhbmltYXRpb25zIHRoYXQgbWF0Y2ggdGhlIHByb3BlcnRpZXMgaW4g
dGhlIGtleWZyYW1lIGFuaW1hdGlvbgogICAgIEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gbV9rZXlmcmFtZXMuZW5kUHJvcGVydGllcygpOwogICAgIGZvciAoSGFzaFNldDxpbnQ+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVzLmJlZ2luUHJvcGVydGllcygpOyBpdCAh
PSBlbmQ7ICsraXQpCi0gICAgICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5vdmVycmlkZUltcGxp
Y2l0QW5pbWF0aW9ucygqaXQpOworICAgICAgICBjb21wb3NpdGVBbmltYXRpb24oKS0+b3ZlcnJp
ZGVJbXBsaWNpdEFuaW1hdGlvbnMoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oKml0KSk7CiB9
CiAKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OnJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCkK
QEAgLTM1OSwxMCArMzU5LDEwIEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OnJlc3VtZU92ZXJy
aWRkZW4KICAgICAvLyBUaGlzIHdpbGwgcmVzdW1lIG92ZXJyaWRkZW4gaW1wbGljaXQgYW5pbWF0
aW9ucwogICAgIEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9rZXlmcmFtZXMu
ZW5kUHJvcGVydGllcygpOwogICAgIGZvciAoSGFzaFNldDxpbnQ+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fa2V5ZnJhbWVzLmJlZ2luUHJvcGVydGllcygpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAg
ICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5yZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRp
b25zKCppdCk7CisgICAgICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5yZXN1bWVPdmVycmlkZGVu
SW1wbGljaXRBbmltYXRpb25zKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KCppdCkpOwogfQog
Ci1ib29sIEtleWZyYW1lQW5pbWF0aW9uOjphZmZlY3RzUHJvcGVydHkoaW50IHByb3BlcnR5KSBj
b25zdAorYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6YWZmZWN0c1Byb3BlcnR5KENTU1Byb3BlcnR5
SUQgcHJvcGVydHkpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fa2V5ZnJhbWVzLmNvbnRhaW5zUHJv
cGVydHkocHJvcGVydHkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBpbnQgaW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX2luZGV4OyB9CiAgICAgdm9pZCBzZXRJbmRleChpbnQgaSkgeyBtX2luZGV4ID0gaTsgfQog
Ci0gICAgYm9vbCBoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShpbnQgcHJvcGVydHkpIGNvbnN0Owor
ICAgIGJvb2wgaGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAg
ICAgCiAgICAgdm9pZCBzZXRVbmFuaW1hdGVkU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
c3R5bGUpIHsgbV91bmFuaW1hdGVkU3R5bGUgPSBzdHlsZTsgfQogICAgIFJlbmRlclN0eWxlKiB1
bmFuaW1hdGVkU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3VuYW5pbWF0ZWRTdHlsZS5nZXQoKTsg
fQpAQCAtNzQsNyArNzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzaG91bGRTZW5kRXZlbnRG
b3JMaXN0ZW5lcihEb2N1bWVudDo6TGlzdGVuZXJUeXBlIGluTGlzdGVuZXJUeXBlKSBjb25zdDsK
ICAgICBib29sIHNlbmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBkb3VibGUg
ZWxhcHNlZFRpbWUpOwogCi0gICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShpbnQpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29u
c3Q7CiAKICAgICB2b2lkIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KCk7CiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
fktleWZyYW1lQW5pbWF0aW9uKCk7CiAgICAgCiAgICAgLy8gR2V0IHRoZSBzdHlsZXMgZm9yIHRo
ZSBnaXZlbiBwcm9wZXJ0eSBzdXJyb3VuZGluZyB0aGUgY3VycmVudCBhbmltYXRpb24gdGltZSBh
bmQgdGhlIHByb2dyZXNzIGJldHdlZW4gdGhlbS4KLSAgICB2b2lkIGZldGNoSW50ZXJ2YWxFbmRw
b2ludHNGb3JQcm9wZXJ0eShpbnQgcHJvcGVydHksIGNvbnN0IFJlbmRlclN0eWxlKiYgZnJvbVN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSomIHRvU3R5bGUsIGRvdWJsZSYgcHJvZ3Jlc3MpIGNvbnN0
OworICAgIHZvaWQgZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KENTU1Byb3BlcnR5
SUQsIGNvbnN0IFJlbmRlclN0eWxlKiYgZnJvbVN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSomIHRv
U3R5bGUsIGRvdWJsZSYgcHJvZ3Jlc3MpIGNvbnN0OwogCiAgICAgLy8gVGhlIGtleWZyYW1lcyB0
aGF0IHdlIGFyZSBibGVuZGluZy4KICAgICBLZXlmcmFtZUxpc3QgbV9rZXlmcmFtZXM7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMTEzMjY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODQsMTQgKzEzODQsMTQgQEAgYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbgogI2VuZGlmCiB9CiAKLXZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uUGF1c2VkKGRvdWJsZSB0aW1lT2Zmc2V0LCBpbnQg
cHJvcGVydHkpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dHJhbnNpdGlvblBhdXNlZChkb3Vi
bGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKICAgICBBbmltYXRlZFBy
b3BlcnR5SUQgYW5pbWF0ZWRQcm9wZXJ0eSA9IGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KHBy
b3BlcnR5KTsKICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eSAhPSBBbmltYXRlZFByb3BlcnR5SW52
YWxpZCkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5wYXVzZUFuaW1hdGlvbihHcmFwaGljc0xh
eWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihhbmltYXRlZFByb3BlcnR5KSwgdGltZU9m
ZnNldCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uRmluaXNoZWQo
aW50IHByb3BlcnR5KQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnRyYW5zaXRpb25GaW5pc2hl
ZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KQogewogICAgIEFuaW1hdGVkUHJvcGVydHlJRCBhbmlt
YXRlZFByb3BlcnR5ID0gY3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkocHJvcGVydHkpOwogICAg
IGlmIChhbmltYXRlZFByb3BlcnR5ICE9IEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkKQpAQCAtMTQz
MCw5ICsxNDMwLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbXBvc2l0ZWRCbwog
ICAgIG1fY29tcG9zaXRlZEJvdW5kcyA9IGJvdW5kczsKIAogfQotaW50IFJlbmRlckxheWVyQmFj
a2luZzo6Z3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3Bl
cnR5KQorQ1NTUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NT
U1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKLSAgICBpbnQgY3NzUHJv
cGVydHkgPSBDU1NQcm9wZXJ0eUludmFsaWQ7CisgICAgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0
eSA9IENTU1Byb3BlcnR5SW52YWxpZDsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CiAgICAgICAg
IGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKICAgICAgICAgICAgIGNzc1By
b3BlcnR5ID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm07CkBAIC0xNDU2LDcgKzE0NTYsNyBA
QCBpbnQgUmVuZGVyTGF5ZXJCYWNraW5nOjpncmFwaGljc0xheWVyVG9DCiAgICAgcmV0dXJuIGNz
c1Byb3BlcnR5OwogfQogCi1BbmltYXRlZFByb3BlcnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpj
c3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShpbnQgY3NzUHJvcGVydHkpCitBbmltYXRlZFByb3Bl
cnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGNzc1Byb3BlcnR5KQogewogICAgIHN3aXRjaCAoY3NzUHJvcGVydHkpIHsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKQEAgLTE0NjksNyArMTQ2OSw5
IEBAIEFuaW1hdGVkUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmMKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFBy
b3BlcnR5V2Via2l0RmlsdGVyOwogI2VuZGlmCi0gICAgICAgIC8vIEl0J3MgZmluZSBpZiB3ZSBz
ZWUgb3RoZXIgY3NzIHByb3BlcnRpZXMgaGVyZTsgdGhleSBhcmUganVzdCBub3QgYWNjZWxlcmF0
ZWQuCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8v
IEl0J3MgZmluZSBpZiB3ZSBzZWUgb3RoZXIgY3NzIHByb3BlcnRpZXMgaGVyZTsgdGhleSBhcmUg
anVzdCBub3QgYWNjZWxlcmF0ZWQuCiAgICAgfQogICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5
SW52YWxpZDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmgJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDggKzEwNiw4IEBA
IHB1YmxpYzoKIAogICAgIC8vIEludGVyZmFjZSB0byBzdGFydCwgZmluaXNoLCBzdXNwZW5kIGFu
ZCByZXN1bWUgYW5pbWF0aW9ucyBhbmQgdHJhbnNpdGlvbnMKICAgICBib29sIHN0YXJ0VHJhbnNp
dGlvbihkb3VibGUsIENTU1Byb3BlcnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tU3R5bGUs
IGNvbnN0IFJlbmRlclN0eWxlKiB0b1N0eWxlKTsKLSAgICB2b2lkIHRyYW5zaXRpb25QYXVzZWQo
ZG91YmxlIHRpbWVPZmZzZXQsIGludCBwcm9wZXJ0eSk7Ci0gICAgdm9pZCB0cmFuc2l0aW9uRmlu
aXNoZWQoaW50IHByb3BlcnR5KTsKKyAgICB2b2lkIHRyYW5zaXRpb25QYXVzZWQoZG91YmxlIHRp
bWVPZmZzZXQsIENTU1Byb3BlcnR5SUQpOworICAgIHZvaWQgdHJhbnNpdGlvbkZpbmlzaGVkKENT
U1Byb3BlcnR5SUQpOwogCiAgICAgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNl
dCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcyk7
CiAgICAgdm9pZCBhbmltYXRpb25QYXVzZWQoZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CkBAIC0yMTEsOCArMjExLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnRJ
bnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
SW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdCk7CiAKLSAgICBzdGF0aWMgaW50
IGdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCk7Ci0gICAgc3Rh
dGljIEFuaW1hdGVkUHJvcGVydHlJRCBjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShpbnQpOwor
ICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1h
dGVkUHJvcGVydHlJRCk7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlJRCBjc3NUb0dyYXBo
aWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBT
dHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135727</attachid>
            <date>2012-04-04 17:21:22 -0700</date>
            <delta_ts>2012-04-04 17:33:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-83224-20120404172121.patch</filename>
            <type>text/plain</type>
            <size>25147</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MmE2OGU1ZjkyZDIzNTFiOGQ4MDk1NDhhMjYwYzFmMDc1YjA2MDFkLi5hNWE5YjdkZjExZWZmYTA2
ZWU2N2EzZDVkZDY1MzMwY2NmZTQyY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxMi0wNC0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBNYWtlIHNvbWV0aGluZyBmYXN0ZXIgdGhhbiBKU1N0cmluZ0J1aWxk
ZXIgZm9yIGpvaW5pbmcgYW4gYXJyYXkgb2YgSlNWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMxODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZCB0aGUgY2xhc3MgSlNTdHJp
bmdKb2luZXIgb3B0aW1pemVkIGZvciBqb2luKCkgb3BlcmF0aW9ucy4KKworICAgICAgICBUaGlz
IGNsYXNzIG1ha2VzIHN0cmljdGVyIGNvbnN0cmFpbnRzIHRoYW4gSlNTdHJpbmdCdWlsZGVyIGlu
IG9yZGVyIGF2b2lkCisgICAgICAgIG1lbW9yeSBhbGxvY2F0aW9ucy4KKworICAgICAgICBJbiB0
aGUgYmVzdCBjYXNlLCB0aGUgY2xhc3MgYWxsb2NhdGUgbWVtb3J5IG9ubHkgdHdpY2U6CisgICAg
ICAgIC1BbGxvY2F0ZSBhbiBhcnJheSB0byBrZWVwIGEgbGlzdCBvZiBVU3RyaW5nIHRvIGpvaW4u
CisgICAgICAgIC1BbGxvY2F0ZSB0aGUgZmluYWwgc3RyaW5nLgorCisgICAgICAgIFdlIGFsc28g
YXZvaWQgdGhlIGNvbnZlcnNpb24gZnJvbSA4Yml0cyBzdHJpbmdzIHRvIDE2Yml0cyBzdHJpbmdz
IHNpbmNlCisgICAgICAgIHRoZXkgYXJlIGNvc3RseSBhbmQgdW5saWtseSB0byBoZWxwIGZvciBz
dWJzZXF1ZW50IGNhbGxzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToK
KyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNKb2luKToKKyAgICAgICAgKiBydW50aW1lL0pT
U3RyaW5nSm9pbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjph
cHBlbmRTdHJpbmdUb0RhdGEpOgorICAgICAgICAoSlNDOjpqb2luU3RyaW5ncyk6CisgICAgICAg
IChKU0M6OkpTU3RyaW5nSm9pbmVyOjpidWlsZCk6CisgICAgICAgICogcnVudGltZS9KU1N0cmlu
Z0pvaW5lci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU1N0cmluZ0pvaW5l
cik6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSm9pbmVyOjpKU1N0cmluZ0pvaW5lcik6CisgICAg
ICAgIChKU0M6OkpTU3RyaW5nSm9pbmVyOjphcHBlbmQpOgorCiAyMDEyLTA0LTAzICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgT2ZmbGluZWFzbSBBUk0gYmFja2Vu
ZCB1c2VzIHRoZSB3cm9uZyBtbmVtb25pYyBmb3IgbXVsdGlwbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBmNmJjYzAyY2VjZDFhYTMwNzRmMjNjNGZkYjJmZTdmYmU3OGFj
NWUzLi43Y2JlOGJiMmM3NzI1NzU3NWVmYWNhOTU4NGQ4NzA1NTBhMDU1Y2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzksNiArMTc5LDcgQEAgU0VUKEphdmFTY3Jp
cHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCiAg
ICAgcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNTdHJpbmcu
Y3BwCisgICAgcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHAKICAgICBydW50aW1lL0pTVmFsdWUu
Y3BwCiAgICAgcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAwMTJhODNjNzM4Njk4ODBiMDFkYmUxOTZiYjFhNThmMzIyZDNmODU4Li4zZTMxZGE5MWZi
YTY3NWEzODA0ZWNiNWEwODNiZDk3ZWIzMmYwNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDc0LDYgKzQ3NCw4IEBAIGphdmFzY3JpcHRjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRl
ci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHAg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aQppbmRleCBjMDdiMzkxN2JmNjM5MThjZjhmOWM4NTAwMzA0MDZmYjg5MWMwZDU3Li4zODY1MTI1
ODEzNTYwNDFlMTgwYzYyNzA1Nzc0OWViM2U3ZjJiMDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtMzg1LDYgKzM4NSw4IEBACiAgICAgICAgICAgICAn
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNT
dHJpbmcuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oJywKKyAg
ICAgICAgICAgICdydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcCcsCisgICAgICAgICAgICAncnVu
dGltZS9KU1N0cmluZ0pvaW5lci5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVmFsdWUuY3Bw
JywKICAgICAgICAgICAgICdydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwJywKICAgICAgICAg
ICAgICdydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagppbmRleCA2YjM1OWY0N2Vi
ZjBmNzE5MTViMTUxYzJiNGRkMjYzMTQ4NDEwNGMzLi5iZjg5OWJkZjA0OTQ0ZjA4MWZlZTI4NWVk
YWRlZmNjZmEyMTQ3MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagpAQCAtODk3LDYgKzg5NywxNCBAQAogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU1N0cmluZy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU1N0cmluZ0pvaW5lci5jcHAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwv
RmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU1N0cmluZ0pvaW5lci5o
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAg
ICAgICA8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxK
U1R5cGUuaCIKIAkJCQk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNlZDE0OTUy
OTE5N2JmNWI1NjAzMjcyOTczODkxOTkyZjAyMzQ5YTguLmZmOTU3M2ZhNjU2MTNiYjhmZjhjMThj
NmJjMzk2ZGVhZGIwYzk3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTQs
NiArMzE0LDggQEAKIAkJMTREMkYzREIxMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQyRjNEOTEz
OUY0QkUyMDA0OTEwMzEgLyogTWFya2VkU3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEU5RDE3QjEwN0VDNDY5MDA0RERBMjEgLyogSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3NTZGQzYwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBS
b290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MDBCNUE2MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuY3BwICovOyB9OworCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQk0
MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5MEFENDMxMEMwMEVENzlC
NiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9OwogCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQg
LyogWWFyci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDUxNTM5QjgxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDUzNzI2RjBFMUM1NDg4MDAyMUU1NDkgLyog
VHJhY2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUQ1MzcyNkUwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCAqLzsgfTsKQEAgLTkzMyw2ICs5
MzUsOCBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2Ny
aXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29y
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVF
NUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
NjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTE1MzlCODEyREM5OTQ1MDBF
RjdBQzQgLyogWWFyci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBZYXJyLmg7
IHBhdGggPSB5YXJyL1lhcnIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVFMTJE
ODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBqc2MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDQ7IH07CkBAIC0xODQwLDYgKzE4NDQsOCBAQAogCQkJCUJDMDJFOUI2
MEUxODQyRkEwMDBGOTI5NyAvKiBKU1N0cmluZy5jcHAgKi8sCiAJCQkJRjY5MkE4NjIwMjU1NTk3
RDAxRkY2MEY3IC8qIEpTU3RyaW5nLmggKi8sCiAJCQkJODZFODU1MzgxMTFCOTk2ODAwMUFGNTFF
IC8qIEpTU3RyaW5nQnVpbGRlci5oICovLAorCQkJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAv
KiBKU1N0cmluZ0pvaW5lci5jcHAgKi8sCisJCQkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8q
IEpTU3RyaW5nSm9pbmVyLmggKi8sCiAJCQkJMTRBQkI0NTQwOTlDMkEwRjAwRTJBMjRGIC8qIEpT
VHlwZS5oICovLAogCQkJCTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmgg
Ki8sCiAJCQkJRjY5MkE4ODcwMjU1NTk3RDAxRkY2MEY3IC8qIEpTVmFsdWUuY3BwICovLApAQCAt
MjMyNCw2ICsyMzMwLDcgQEAKIAkJCQlCQzE4QzQyNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNSZXRh
aW5QdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFODU1MzkxMTFCOTk2ODAwMUFGNTFFIC8q
IEpTU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjYwMEI1QTcxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyODBF
MTZGNUNEMDBCMzQ0NjAgLyogSlNTdHJpbmdSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThD
NDI5MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZ1JlZkNGLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQyQTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNUeXBlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5NzEsNiArMjk3OCw3IEBACiAJCQkJQTcyN0ZGNkIwREEzMDkyMjAwRTU0OEQ3IC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2RDExMDdFQzI2
NzAwNURCQzhEIC8qIEpTU3RhdGljU2NvcGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ3RjM5RDUxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDgyQjc0RTBBNDMwMzI4MDA1MTdDRkMgLyogSlNTdHJpbmdSZWYuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2QUFCMzgwQjY2QTk0NDAwRTU1RjE2IC8qIEpTU3RyaW5n
UmVmQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDYxMDdFQzM3NjAwNDI3QTQ4IC8q
IEpTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCmluZGV4
IDJiYzgwODk0YzcxZTdiNmU4NGJlOTA4MTEyN2M3MTE3ZmY3MTliZWQuLjhhYzQ2MDRhYTMxZjY1
NDg2YzlmYWZmYjhjZDNlNzMwZWNmNTVhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCkBA
IC0xODcsNiArMTg3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmNwcCBcCiAgICAgcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBcCiAg
ICAgcnVudGltZS9KU1N0cmluZy5jcHAgXAorICAgIHJ1bnRpbWUvSlNTdHJpbmdKb2luZXIuY3Bw
IFwKICAgICBydW50aW1lL0pTVmFsdWUuY3BwIFwKICAgICBydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuY3BwIFwKICAgICBydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGFlNWI5YzYy
MzVjMjM3MGY1YWE2MzgxYTFmZmY0MDI3MDFiY2IwNTkuLjRiMTI3OGFiZjJkZmM2NDM3OWE2MWY5
OWVmN2I4YjQyNmNjN2YwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgotI2luY2x1
ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgiCiAjaW5j
bHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgpAQCAtMzQzLDExICszNDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAg
IGlmIChKU1ZhbHVlIGVhcmx5UmV0dXJuVmFsdWUgPSBjaGVja2VyLmVhcmx5UmV0dXJuVmFsdWUo
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlYXJseVJldHVyblZhbHVlKTsKIAot
ICAgIEpTU3RyaW5nQnVpbGRlciBzdHJCdWZmZXI7CisgICAgVVN0cmluZyBzZXBhcmF0b3IoIiwi
KTsKKyAgICBKU1N0cmluZ0pvaW5lciBzdHJpbmdKb2luZXIoc2VwYXJhdG9yLCBsZW5ndGgpOwog
ICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBsZW5ndGg7IGsrKykgewotICAgICAgICBpZiAo
ayA+PSAxKQotICAgICAgICAgICAgc3RyQnVmZmVyLmFwcGVuZCgnLCcpOwotCiAgICAgICAgIEpT
VmFsdWUgZWxlbWVudCA9IHRoaXNPYmotPmdldChleGVjLCBrKTsKICAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKQEAgLTM2NSwxMSArMzYzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
ICAgICAgICAgICAgc3RyID0gZWxlbWVudC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAg
ICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICAgICAgICAgIHN0ckJ1ZmZl
ci5hcHBlbmQoc3RyKTsKKyAgICAgICAgICAgIHN0cmluZ0pvaW5lci5hcHBlbmQoc3RyKTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3RyQnVmZmVyLmJ1
aWxkKGV4ZWMpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ0pvaW5lci5idWls
ZChleGVjKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNKb2luKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTM4Myw2MCArMzgxLDM5IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNKb2luKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoSlNWYWx1ZSBlYXJseVJldHVyblZhbHVlID0gY2hlY2tlci5lYXJseVJldHVyblZhbHVl
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZWFybHlSZXR1cm5WYWx1ZSk7CiAK
LSAgICBKU1N0cmluZ0J1aWxkZXIgc3RyQnVmZmVyOwotCiAgICAgVVN0cmluZyBzZXBhcmF0b3I7
CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpKQotICAgICAgICBzZXBh
cmF0b3IgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Cisg
ICAgICAgIHNlcGFyYXRvciA9IGZhc3RKU1ZhbHVldG9VU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDAp
LCBleGVjKTsKKyAgICBpZiAoc2VwYXJhdG9yLmlzTnVsbCgpKQorICAgICAgICBzZXBhcmF0b3Ig
PSBVU3RyaW5nKCIsIik7CisKKyAgICBKU1N0cmluZ0pvaW5lciBzdHJpbmdKb2luZXIoc2VwYXJh
dG9yLCBsZW5ndGgpOwogCiAgICAgdW5zaWduZWQgayA9IDA7CiAgICAgaWYgKGlzSlNBcnJheSh0
aGlzT2JqKSkgewogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodGhpc09iaik7CiAK
LSAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgaWYgKCFhcnJheS0+Y2FuR2V0SW5k
ZXgoaykpIAotICAgICAgICAgICAgICAgIGdvdG8gc2tpcEZpcnN0TG9vcDsKKyAgICAgICAgZm9y
ICg7IGsgPCBsZW5ndGg7IGsrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheS0+Y2FuR2V0SW5k
ZXgoaykpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgICAgIEpTVmFsdWUgZWxl
bWVudCA9IGFycmF5LT5nZXRJbmRleChrKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudC5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgICAgIHN0ckJ1ZmZlci5hcHBlbmQoZWxlbWVu
dC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwotICAgICAgICAgICAgaysrOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHNlcGFyYXRvci5pc051bGwoKSkgewotICAgICAgICAgICAgZm9y
ICg7IGsgPCBsZW5ndGg7IGsrKykgewotICAgICAgICAgICAgICAgIGlmICghYXJyYXktPmNhbkdl
dEluZGV4KGspKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBz
dHJCdWZmZXIuYXBwZW5kKCcsJyk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBlbGVtZW50ID0g
YXJyYXktPmdldEluZGV4KGspOwotICAgICAgICAgICAgICAgIGlmICghZWxlbWVudC5pc1VuZGVm
aW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICBzdHJCdWZmZXIuYXBwZW5kKGVsZW1l
bnQudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoOyBrIDwgbGVuZ3RoOyBrKyspIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIWFycmF5LT5jYW5HZXRJbmRleChrKSkKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgc3RyQnVmZmVyLmFwcGVuZChzZXBhcmF0b3IpOwotICAg
ICAgICAgICAgICAgIEpTVmFsdWUgZWxlbWVudCA9IGFycmF5LT5nZXRJbmRleChrKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIWVsZW1lbnQuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAg
ICAgICAgICAgc3RyQnVmZmVyLmFwcGVuZChlbGVtZW50LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gc2tpcEZpcnN0TG9vcDoK
LSAgICBmb3IgKDsgayA8IGxlbmd0aDsgaysrKSB7Ci0gICAgICAgIGlmIChrID49IDEpIHsKLSAg
ICAgICAgICAgIGlmIChzZXBhcmF0b3IuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgc3RyQnVm
ZmVyLmFwcGVuZCgnLCcpOworICAgICAgICAgICAgICAgIHN0cmluZ0pvaW5lci5hcHBlbmQoZmFz
dEpTVmFsdWV0b1VTdHJpbmcoZWxlbWVudCwgZXhlYykpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHN0ckJ1ZmZlci5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgICAg
ICBzdHJpbmdKb2luZXIuYXBwZW5kKFVTdHJpbmcoKSk7CiAgICAgICAgIH0KKyAgICB9CiAKKyAg
ICBmb3IgKDsgayA8IGxlbmd0aDsgaysrKSB7CiAgICAgICAgIEpTVmFsdWUgZWxlbWVudCA9IHRo
aXNPYmotPmdldChleGVjLCBrKTsKICAgICAgICAgaWYgKCFlbGVtZW50LmlzVW5kZWZpbmVkT3JO
dWxsKCkpCi0gICAgICAgICAgICBzdHJCdWZmZXIuYXBwZW5kKGVsZW1lbnQudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKKyAgICAgICAgICAgIHN0cmluZ0pvaW5lci5hcHBlbmQoZmFzdEpT
VmFsdWV0b1VTdHJpbmcoZWxlbWVudCwgZXhlYykpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzdHJpbmdKb2luZXIuYXBwZW5kKFVTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShzdHJCdWZmZXIuYnVpbGQoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoc3RyaW5nSm9pbmVyLmJ1aWxkKGV4ZWMpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0NvbmNhdChFeGVjU3RhdGUqIGV4ZWMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAzMmEzMjc4OGFkOWJmMDhm
ZDdkYWE4MmJiM2EyNWM3NjZkYjllZmYzLi43YzIxMzk3ODc1MWNkN2YyN2UxOTc4YTUxYmRhNzMz
YmU4Yjc3MjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAg
LTQ2Miw2ICs0NjIsMzUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiB0b1N0cmlu
Z1Nsb3dDYXNlKGV4ZWMpOwogICAgIH0KIAorICAgIGlubGluZSBVU3RyaW5nIEpTVmFsdWU6OnRv
VVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXNTdHJp
bmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGFzQ2VsbCgp
KS0+dmFsdWUoZXhlYyk7CisgICAgICAgIHJldHVybiB0b1VTdHJpbmdTbG93Q2FzZShleGVjKTsK
KyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIFVTdHJpbmcgZmFzdEpTVmFsdWVOb3RTdHJpbmd0
b1VTdHJpbmcoY29uc3QgSlNWYWx1ZSYgdmFsdWUsIEV4ZWNTdGF0ZSogZXhlYykKKyAgICB7Cisg
ICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsKKyAg
ICAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRh
Lm51bWVyaWNTdHJpbmdzLmFkZCh2YWx1ZS5hc0ludDMyKCkpOworICAgICAgICBpZiAodmFsdWUu
aXNEb3VibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLm51bWVyaWNTdHJpbmdz
LmFkZCh2YWx1ZS5hc0RvdWJsZSgpKTsKKyAgICAgICAgaWYgKHZhbHVlLmlzVHJ1ZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+dHJ1ZUtleXdvcmQudXN0
cmluZygpOworICAgICAgICBpZiAodmFsdWUuaXNGYWxzZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+ZmFsc2VLZXl3b3JkLnVzdHJpbmcoKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICB9CisKKyAg
ICBBTFdBWVNfSU5MSU5FIFVTdHJpbmcgZmFzdEpTVmFsdWV0b1VTdHJpbmcoY29uc3QgSlNWYWx1
ZSYgdmFsdWUsIEV4ZWNTdGF0ZSogZXhlYykKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZS5pc1N0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTU3RyaW5nKj4odmFsdWUu
YXNDZWxsKCkpLT52YWx1ZShleGVjKTsKKworICAgICAgICByZXR1cm4gZmFzdEpTVmFsdWVOb3RT
dHJpbmd0b1VTdHJpbmcodmFsdWUsIGV4ZWMpOworICAgIH0KKwogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBKU1N0cmluZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZ0pvaW5lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZ0pvaW5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEyNjAyNDNiN2M0NDM3ZjExZjk5
NDJlOGE4NjE0MWY2MDBjYTYxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nSm9pbmVyLmNwcApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJKU1N0cmluZ0pvaW5lci5oIgorCisjaW5jbHVkZSAiRXhjZXB0aW9uSGVs
cGVycy5oIgorI2luY2x1ZGUgIkpTU3RyaW5nLmgiCisjaW5jbHVkZSAiU2NvcGVDaGFpbi5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KKworCituYW1lc3BhY2UgSlNDIHsKKwor
Ly8gVGhlIGRlc3RpbmF0aW9uIGlzIDE2Yml0cywgYXQgbGVhc3Qgb25lIHN0cmluZyBpcyAxNiBi
aXRzLgorc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZFN0cmluZ1RvRGF0YShVQ2hhciomIGRhdGEs
IGNvbnN0IFVTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAoc3RyaW5nLmlzTnVsbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Cisg
ICAgY29uc3QgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0cmluZy5pbXBsKCk7CisKKyAgICBp
ZiAoc3RyaW5nSW1wbC0+aXM4Qml0KCkpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAqZGF0YSA9IHN0cmluZ0ltcGwtPmNoYXJh
Y3RlcnM4KClbaV07CisgICAgICAgICAgICArK2RhdGE7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgICpkYXRhID0gc3RyaW5nSW1wbC0+Y2hhcmFjdGVyczE2KClbaV07CisgICAgICAgICAg
ICArK2RhdGE7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIElmIHRoZSBkZXN0aW5hdGlvbiBp
cyA4Yml0cywgd2Uga25vdyBldmVyeSBzdHJpbmcgaGFzIHRvIGJlIDhiaXQuCitzdGF0aWMgaW5s
aW5lIHZvaWQgYXBwZW5kU3RyaW5nVG9EYXRhKExDaGFyKiYgZGF0YSwgY29uc3QgVVN0cmluZyYg
c3RyaW5nKQoreworICAgIGlmIChzdHJpbmcuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBBU1NFUlQoc3RyaW5nLmlzOEJpdCgpKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmlu
Zy5sZW5ndGgoKTsKKyAgICBjb25zdCBTdHJpbmdJbXBsKiBzdHJpbmdJbXBsID0gc3RyaW5nLmlt
cGwoKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAg
ICAgICAqZGF0YSA9IHN0cmluZ0ltcGwtPmNoYXJhY3RlcnM4KClbaV07CisgICAgICAgICsrZGF0
YTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CitzdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gam9pblN0cmluZ3MoY29uc3QgVmVjdG9yPFVT
dHJpbmc+JiBzdHJpbmdzLCBjb25zdCBVU3RyaW5nJiBzZXBhcmF0b3IsIHVuc2lnbmVkIG91dHB1
dExlbmd0aCkKK3sKKyAgICBBU1NFUlQob3V0cHV0TGVuZ3RoKTsKKworICAgIENoYXJhY3RlclR5
cGUqIGRhdGE7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG91dHB1dFN0cmluZ0ltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKG91dHB1dExlbmd0aCwgZGF0YSk7CisgICAg
aWYgKCFvdXRwdXRTdHJpbmdJbXBsKQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPigpOworCisgICAgY29uc3QgVVN0cmluZyBmaXJzdFN0cmluZyA9IHN0cmluZ3MuZmlyc3Qo
KTsKKyAgICBhcHBlbmRTdHJpbmdUb0RhdGEoZGF0YSwgZmlyc3RTdHJpbmcpOworCisgICAgZm9y
IChzaXplX3QgaSA9IDE7IGkgPCBzdHJpbmdzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGFwcGVu
ZFN0cmluZ1RvRGF0YShkYXRhLCBzZXBhcmF0b3IpOworICAgICAgICBhcHBlbmRTdHJpbmdUb0Rh
dGEoZGF0YSwgc3RyaW5nc1tpXSk7CisgICAgfQorCisgICAgQVNTRVJUKGRhdGEgPT0gKG91dHB1
dFN0cmluZ0ltcGwtPmdldENoYXJhY3RlcnM8Q2hhcmFjdGVyVHlwZT4oKSArIG91dHB1dFN0cmlu
Z0ltcGwtPmxlbmd0aCgpKSk7CisgICAgcmV0dXJuIG91dHB1dFN0cmluZ0ltcGwucmVsZWFzZSgp
OworfQorCitKU1ZhbHVlIEpTU3RyaW5nSm9pbmVyOjpidWlsZChFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgaWYgKCFtX2lzVmFsaWQpCisgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJy
b3IoZXhlYyk7CisKKyAgICBpZiAoIW1fc3RyaW5ncy5zaXplKCkpCisgICAgICAgIHJldHVybiBq
c0VtcHR5U3RyaW5nKGV4ZWMpOworCisgICAgc2l6ZV90IHNlcGFyYXRvckxlbmd0aCA9IG1fc2Vw
YXJhdG9yLmxlbmd0aCgpOworICAgIC8vIEZJWE1FOiBhZGQgc3BlY2lhbCBjYXNlcyBvZiBqb2lu
U3RyaW5ncygpIGZvciAoc2VwYXJhdG9yTGVuZ3RoID09IDApIGFuZCAoc2VwYXJhdG9yTGVuZ3Ro
ID09IDEpLgorICAgIEFTU0VSVChtX3N0cmluZ3Muc2l6ZSgpID4gMCk7CisgICAgc2l6ZV90IHRv
dGFsU2VwYXJhY3RvcnNMZW5ndGggPSBzZXBhcmF0b3JMZW5ndGggKiAobV9zdHJpbmdzLnNpemUo
KSAtIDEpOworICAgIHNpemVfdCBvdXRwdXRTdHJpbmdTaXplID0gdG90YWxTZXBhcmFjdG9yc0xl
bmd0aCArIG1fY3VtdWxhdGVkU3RyaW5nc0xlbmd0aDsKKworICAgIGlmICghb3V0cHV0U3RyaW5n
U2l6ZSkKKyAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CisKKyAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gb3V0cHV0U3RyaW5nSW1wbDsKKyAgICBpZiAobV9pczhCaXRzKQorICAgICAg
ICBvdXRwdXRTdHJpbmdJbXBsID0gam9pblN0cmluZ3M8TENoYXI+KG1fc3RyaW5ncywgbV9zZXBh
cmF0b3IsIG91dHB1dFN0cmluZ1NpemUpOworICAgIGVsc2UKKyAgICAgICAgb3V0cHV0U3RyaW5n
SW1wbCA9IGpvaW5TdHJpbmdzPFVDaGFyPihtX3N0cmluZ3MsIG1fc2VwYXJhdG9yLCBvdXRwdXRT
dHJpbmdTaXplKTsKKworICAgIGlmICghb3V0cHV0U3RyaW5nSW1wbCkKKyAgICAgICAgcmV0dXJu
IHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjKTsKKworICAgIHJldHVybiBKU1N0cmluZzo6Y3Jl
YXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgb3V0cHV0U3RyaW5nSW1wbC5yZWxlYXNlKCkpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0pv
aW5lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OWY4NDZjMWYwMjFiZjAzZmQ2OTBmZTNkYWJiNWU5ZDY0OGYyMDJhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdKb2lu
ZXIuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBKU1N0cmluZ0pvaW5lcl9oCisjZGVmaW5lIEpTU3RyaW5nSm9p
bmVyX2gKKworI2luY2x1ZGUgIkpTVmFsdWUuaCIKKyNpbmNsdWRlICJVU3RyaW5nLmgiCisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRXhlY1N0YXRl
OworCisKK2NsYXNzIEpTU3RyaW5nSm9pbmVyIHsKK3B1YmxpYzoKKyAgICBKU1N0cmluZ0pvaW5l
cihjb25zdCBVU3RyaW5nJiBzZXBhcmF0b3IsIHNpemVfdCBzdHJpbmdDb3VudCk7CisKKyAgICB2
b2lkIGFwcGVuZChjb25zdCBVU3RyaW5nJik7CisgICAgSlNWYWx1ZSBidWlsZChFeGVjU3RhdGUq
KTsKKworcHJpdmF0ZToKKyAgICBVU3RyaW5nIG1fc2VwYXJhdG9yOworICAgIFZlY3RvcjxVU3Ry
aW5nPiBtX3N0cmluZ3M7CisKKyAgICB1bnNpZ25lZCBtX2N1bXVsYXRlZFN0cmluZ3NMZW5ndGg7
CisgICAgYm9vbCBtX2lzVmFsaWQ7CisgICAgYm9vbCBtX2lzOEJpdHM7Cit9OworCitpbmxpbmUg
SlNTdHJpbmdKb2luZXI6OkpTU3RyaW5nSm9pbmVyKGNvbnN0IFVTdHJpbmcmIHNlcGFyYXRvciwg
c2l6ZV90IHN0cmluZ0NvdW50KQorICAgIDogbV9zZXBhcmF0b3Ioc2VwYXJhdG9yKQorICAgICwg
bV9jdW11bGF0ZWRTdHJpbmdzTGVuZ3RoKDApCisgICAgLCBtX2lzVmFsaWQodHJ1ZSkKKyAgICAs
IG1faXM4Qml0cyhtX3NlcGFyYXRvci5pczhCaXQoKSkKK3sKKyAgICBBU1NFUlQoIW1fc2VwYXJh
dG9yLmlzTnVsbCgpKTsKKyAgICBtX2lzVmFsaWQgPSBtX3N0cmluZ3MudHJ5UmVzZXJ2ZUNhcGFj
aXR5KHN0cmluZ0NvdW50KTsKK30KKworaW5saW5lIHZvaWQgSlNTdHJpbmdKb2luZXI6OmFwcGVu
ZChjb25zdCBVU3RyaW5nJiBzdHIpCit7CisgICAgaWYgKCFtX2lzVmFsaWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fc3RyaW5ncy51bmNoZWNrZWRBcHBlbmQoc3RyKTsKKyAgICBpZiAoIXN0
ci5pc051bGwoKSkgeworICAgICAgICBtX2N1bXVsYXRlZFN0cmluZ3NMZW5ndGggKz0gc3RyLmxl
bmd0aCgpOworICAgICAgICBtX2lzOEJpdHMgPSBtX2lzOEJpdHMgJiYgc3RyLmlzOEJpdCgpOwor
ICAgIH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YWx1ZS5jcHAKaW5kZXggN2JiODk1YWQ5MjUxYmNmODlhODgyZWY2NWVmNDM2ODQ0OTA0MGVkOC4u
ZmE4M2M2ZTQ0NWFhM2ZiZjVjMThkZGQ2MTliYmIyMzRhZmFjODg0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKQEAgLTI4Myw0ICsyODMsOSBAQCBKU1N0cmlu
ZyogSlNWYWx1ZTo6dG9TdHJpbmdTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAg
cmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4ZWMpOwogfQogCitVU3RyaW5nIEpTVmFsdWU6OnRvVVN0
cmluZ1Nsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gZmFzdEpT
VmFsdWVOb3RTdHJpbmd0b1VTdHJpbmcoKnRoaXMsIGV4ZWMpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAppbmRleCBiYTBhZTIz
ZjAyNWZmYmUyMWUyM2I4NDhiMDZiNjQwNWRlZDJmMzA5Li4wMDZlODk0NzI4MDZmMTM4NGRiMzA4
MzY1NjIyYTExOTAzMGM2MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1
ZS5oCkBAIC0yMDMsNiArMjAzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIGJlZW4g
c2V0IGluIHRoZSBFeGVjU3RhdGUgYWxyZWFkeS4KICAgICAgICAgZG91YmxlIHRvTnVtYmVyKEV4
ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICBKU1N0cmluZyogdG9TdHJpbmcoRXhlY1N0YXRlKikg
Y29uc3Q7CisgICAgICAgIFVTdHJpbmcgdG9VU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAg
ICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIEpTT2Jq
ZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogCkBAIC0y
NTEsNiArMjUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGlubGluZSBjb25zdCBKU1Zh
bHVlIGFzVmFsdWUoKSBjb25zdCB7IHJldHVybiAqdGhpczsgfQogICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBkb3VibGUgdG9OdW1iZXJTbG93Q2FzZShFeGVjU3RhdGUqKSBjb25zdDsKICAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNTdHJpbmcqIHRvU3RyaW5nU2xvd0Nhc2UoRXhlY1N0YXRl
KikgY29uc3Q7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFVTdHJpbmcgdG9VU3RyaW5nU2xv
d0Nhc2UoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2Jq
ZWN0KiB0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiB0b1RoaXNPYmplY3RTbG93Q2Fz
ZShFeGVjU3RhdGUqKSBjb25zdDsKIApAQCAtMzg5LDYgKzM5MSw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIH07CiAjZW5kaWYKIAorICAgIC8vIElubGluZSBjb252ZXJzaW9uIHRvIFVTdHJpbmcg
Zm9yIHVzZSBvbmx5IGluIHRpZ2h0IGxvb3AuCisgICAgVVN0cmluZyBmYXN0SlNWYWx1ZXRvVVN0
cmluZyhjb25zdCBKU1ZhbHVlJiwgRXhlY1N0YXRlKik7CisKICAgICB0eXBlZGVmIEhhc2hNYXA8
RW5jb2RlZEpTVmFsdWUsIHVuc2lnbmVkLCBFbmNvZGVkSlNWYWx1ZUhhc2gsIEVuY29kZWRKU1Zh
bHVlSGFzaFRyYWl0cz4gSlNWYWx1ZU1hcDsKIAogICAgIC8vIFN0YW5kLWFsb25lIGhlbHBlciBm
dW5jdGlvbnMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135729</attachid>
            <date>2012-04-04 17:33:50 -0700</date>
            <delta_ts>2012-04-04 20:08:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-83224-20120404173348.patch</filename>
            <type>text/plain</type>
            <size>16558</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA0LTA0ICBBbGV4aXMg
TWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtQYXJ0IDRd
IFdlIHNob3VsZCB1c2UgQ1NTUHJvcGVydHlJRCByYXRoZXIgdGhhbiBpbnRlZ2VycyB3aGVuIG1h
bmlwdWxhdGluZyBDU1MgcHJvcGVydHkgaWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENo
YW5nLgorCisgICAgICAgIENTU1Byb3BlcnR5SUQgZW51bSBob2xkcyBhbGwgdGhlIENTUyBwcm9w
ZXJ0eSBpZHMgYnV0IG1hbnkgcGFydHMgb2YgV2ViS2l0IHRyZWF0IHRoZSBpZHMKKyAgICAgICAg
YXMgaW50ZWdlcnMuIFdoaWxlIGl0J3Mgbm90IGluY29ycmVjdCBpdCBpcyBuaWNlciB0byB1c2Ug
dGhlIGVudW0gYXMgYSBwYXJhbWV0ZXIgb2YKKyAgICAgICAgZnVuY3Rpb25zIG1hbmlwdWxhdGlu
ZyBwcm9wZXJ0eSBpZHMsIGFzIHdlIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBwYXNzZWQgd2lsbCBi
ZSBhbgorICAgICAgICBleGlzdGluZyB2YWx1ZS4gVGhpcyBwYXRjaCBjbGVhbiB1cCBzb21lIHJl
bWFpbmluZyBwYXJ0IG9mIGNvZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIDogVGhlcmUgc2hv
dWxkIGJlIG5vIGJlaGF2aW9yIGNoYW5nZSBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjphZmZl
Y3RzUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6aXNBbmltYXRp
bmdQcm9wZXJ0eSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9u
Rm9yUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjpvdmVy
cmlkZUltcGxpY2l0QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmlt
YXRpb246OnJlc3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjppc0FuaW1hdGluZ1Byb3BlcnR5KToKKyAgICAgICAg
KiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaDoKKyAgICAgICAgKENvbXBvc2l0
ZUFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0
eSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0cmFuc2l0aW9uUHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGluZ1Byb3BlcnR5KToKKyAg
ICAgICAgKEltcGxpY2l0QW5pbWF0aW9uKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6
ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Oktl
eWZyYW1lQW5pbWF0aW9uOjpoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eSk6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpyZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6YWZmZWN0c1Byb3BlcnR5KToKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOgorICAgICAgICAoS2V5
ZnJhbWVBbmltYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uUGF1
c2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dHJhbnNpdGlvbkZp
bmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhpY3NM
YXllclRvQ1NTUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKwogMjAxMi0w
NC0wNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEZWxheSBw
b3N0LWluc2VydGlvbiBub3RpZmljYXRpb25zIHVudGlsIG5ldyBET00gdHJlZSBpcyBjb21wbGV0
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24g
MTEzMjY3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjc4LDcgKzE2NzgsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBD
U1NTdHlsZVNlbGVjdG9yCiAgICAgaWYgKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlRGVjbGFyYXRp
b24gPSBrZXlmcmFtZS0+cHJvcGVydGllcygpKSB7CiAgICAgICAgIHVuc2lnbmVkIHByb3BlcnR5
Q291bnQgPSBzdHlsZURlY2xhcmF0aW9uLT5wcm9wZXJ0eUNvdW50KCk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIGlu
dCBwcm9wZXJ0eSA9IHN0eWxlRGVjbGFyYXRpb24tPnByb3BlcnR5QXQoaSkuaWQoKTsKKyAgICAg
ICAgICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBzdHlsZURlY2xhcmF0aW9uLT5wcm9wZXJ0
eUF0KGkpLmlkKCk7CiAgICAgICAgICAgICAvLyBUaW1pbmctZnVuY3Rpb24gd2l0aGluIGtleWZy
YW1lcyBpcyBzcGVjaWFsLCBiZWNhdXNlIGl0IGlzIG5vdCBhbmltYXRlZDsgaXQganVzdAogICAg
ICAgICAgICAgLy8gZGVzY3JpYmVzIHRoZSB0aW1pbmcgZnVuY3Rpb24gYmV0d2VlbiB0aGlzIGtl
eWZyYW1lIGFuZCB0aGUgbmV4dC4KICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSAhPSBDU1NQcm9w
ZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAkocmV2aXNpb24gMTEzMjY3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTMsOSArMTUzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBvdmVycmlk
ZGVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIERvZXMgdGhpcyBhbmltYXRp
b24vdHJhbnNpdGlvbiBpbnZvbHZlIHRoZSBnaXZlbiBwcm9wZXJ0eT8KLSAgICB2aXJ0dWFsIGJv
b2wgYWZmZWN0c1Byb3BlcnR5KGludCAvKnByb3BlcnR5Ki8pIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIC8qcHJv
cGVydHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgaXNBbmltYXRpbmdQ
cm9wZXJ0eShpbnQgcHJvcGVydHksIGJvb2wgYWNjZWxlcmF0ZWRPbmx5LCBib29sIGlzUnVubmlu
Z05vdykgY29uc3QKKyAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdAog
ICAgIHsKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkT25seSAmJiAhbV9pc0FjY2VsZXJhdGVkKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCShyZXZpc2lvbiAxMTMyNjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzksNyArMzc5LDcgQEAgZG91YmxlIENvbXBvc2l0ZUFuaW1h
dGlvbjo6dGltZVRvTmV4dFNlcgogICAgIHJldHVybiBtaW5UOwogfQogCi1QYXNzUmVmUHRyPEtl
eWZyYW1lQW5pbWF0aW9uPiBDb21wb3NpdGVBbmltYXRpb246OmdldEFuaW1hdGlvbkZvclByb3Bl
cnR5KGludCBwcm9wZXJ0eSkgY29uc3QKK1Bhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IENv
bXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSkgY29uc3QKIHsKICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsK
ICAgICAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6cmVzdW1l
QW5pbWF0aW9uCiAgICAgfQogfQogCi12b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6b3ZlcnJpZGVJ
bXBsaWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVBbmltYXRpb246
Om92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiB7CiAg
ICAgQ1NTUHJvcGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90cmFu
c2l0aW9ucy5lbmQoKTsKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CkBAIC00
NjIsNyArNDYyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246Om92ZXJyaWRlSW1wbGljaQog
ICAgIH0KIH0KIAotdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJlc3VtZU92ZXJyaWRkZW5JbXBs
aWNpdEFuaW1hdGlvbnMoaW50IHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJl
c3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkK
IHsKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENTU1Byb3Bl
cnR5VHJhbnNpdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fdHJhbnNpdGlvbnMuZW5k
KCk7CkBAIC00NzQsNyArNDc0LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnJlc3VtZU92
ZXJyaWRkZQogICAgIH0KIH0KIAotYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmlzQW5pbWF0aW5n
UHJvcGVydHkoaW50IHByb3BlcnR5LCBib29sIGFjY2VsZXJhdGVkT25seSwgYm9vbCBpc1J1bm5p
bmdOb3cpIGNvbnN0Citib29sIENvbXBvc2l0ZUFuaW1hdGlvbjo6aXNBbmltYXRpbmdQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGFjY2VsZXJhdGVkT25seSwgYm9vbCBpc1J1
bm5pbmdOb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5pc0VtcHR5
KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5jeSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmgJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMiArNzAsMTIg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzQW5pbWF0aW9ucygpIGNvbnN0ICB7IHJldHVybiAhbV90
cmFuc2l0aW9ucy5pc0VtcHR5KCkgfHwgIW1fa2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKTsg
fQogCiAgICAgdm9pZCBzZXRBbmltYXRpbmcoYm9vbCk7Ci0gICAgYm9vbCBpc0FuaW1hdGluZ1By
b3BlcnR5KGludCBwcm9wZXJ0eSwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5n
Tm93KSBjb25zdDsKKyAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwg
Ym9vbCBhY2NlbGVyYXRlZE9ubHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdDsKIAotICAgIFBh
c3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KGludCBw
cm9wZXJ0eSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gZ2V0QW5p
bWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKLSAgICB2b2lkIG92ZXJy
aWRlSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSk7Ci0gICAgdm9pZCByZXN1bWVPdmVy
cmlkZGVuSW1wbGljaXRBbmltYXRpb25zKGludCBwcm9wZXJ0eSk7CisgICAgdm9pZCBvdmVycmlk
ZUltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKKyAgICB2b2lkIHJlc3VtZU92ZXJy
aWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CiAKICAgICBib29sIHBhdXNl
QW5pbWF0aW9uQXRUaW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgZG91YmxlIHQpOwogICAg
IGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lKENTU1Byb3BlcnR5SUQsIGRvdWJsZSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw3ICsyMjIsNyBA
QCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpzZXRPdmVycmlkZGVuKGJvCiAgICAgdXBkYXRlU3Rh
dGVNYWNoaW5lKG1fb3ZlcnJpZGRlbiA/IEFuaW1hdGlvblN0YXRlSW5wdXRQYXVzZU92ZXJyaWRl
IDogQW5pbWF0aW9uU3RhdGVJbnB1dFJlc3VtZU92ZXJyaWRlLCAtMSk7CiB9CiAKLWJvb2wgSW1w
bGljaXRBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0eShpbnQgcHJvcGVydHkpIGNvbnN0Citib29s
IEltcGxpY2l0QW5pbWF0aW9uOjphZmZlY3RzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSkgY29uc3QKIHsKICAgICByZXR1cm4gKG1fYW5pbWF0aW5nUHJvcGVydHkgPT0gcHJvcGVydHkp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5oCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbXBsaWNpdEFuaW1hdGlv
bihhbmltYXRpb24sIGFuaW1hdGluZ1Byb3BlcnR5LCByZW5kZXJlciwgY29tcG9zaXRlQW5pbWF0
aW9uLCBmcm9tU3R5bGUpKTsKICAgICB9OwogICAgIAotICAgIGludCB0cmFuc2l0aW9uUHJvcGVy
dHkoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaXRpb25Qcm9wZXJ0eTsgfQotICAgIGludCBhbmlt
YXRpbmdQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KKyAg
ICBDU1NQcm9wZXJ0eUlEIHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNpdGlvblByb3BlcnR5OyB9CisgICAgQ1NTUHJvcGVydHlJRCBhbmltYXRpbmdQcm9wZXJ0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpOwogICAgIHZpcnR1YWwgYm9vbCBz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCk7CkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE92ZXJyaWRkZW4oYm9vbCk7CiAgICAgdmlydHVhbCBib29sIG92ZXJy
aWRkZW4oKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW47IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhZmZlY3RzUHJvcGVydHkoaW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0c1By
b3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJvbVN0eWxlICYmIG1fdG9TdHlsZTsgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCShyZXZp
c2lvbiAxMTMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIGNvbnN0
IEFuaW1hdGlvbiogZ2V0QW5pbWF0aW9uRnJvbQogICAgIHJldHVybiAwOwogfQogCi12b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoaW50IHBy
b3BlcnR5LCBjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUq
JiB0b1N0eWxlLCBkb3VibGUmIHByb2cpIGNvbnN0Cit2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpm
ZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Y29uc3QgUmVuZGVyU3R5bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiYgdG9TdHls
ZSwgZG91YmxlJiBwcm9nKSBjb25zdAogewogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGtleQogICAg
IGRvdWJsZSBlbGFwc2VkVGltZSA9IGdldEVsYXBzZWRUaW1lKCk7CkBAIC0yMjksNyArMjI5LDcg
QEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZQogICAgIH0KIH0KIAot
Ym9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoaW50IHByb3Bl
cnR5KSBjb25zdAorYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9rZXlmcmFt
ZXMuY29udGFpbnNQcm9wZXJ0eShwcm9wZXJ0eSk7CiB9CkBAIC0zNTEsNyArMzUxLDcgQEAgdm9p
ZCBLZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpbwogICAgIC8vIFRoaXMgd2lsbCBv
dmVycmlkZSBpbXBsaWNpdCBhbmltYXRpb25zIHRoYXQgbWF0Y2ggdGhlIHByb3BlcnRpZXMgaW4g
dGhlIGtleWZyYW1lIGFuaW1hdGlvbgogICAgIEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gbV9rZXlmcmFtZXMuZW5kUHJvcGVydGllcygpOwogICAgIGZvciAoSGFzaFNldDxpbnQ+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVzLmJlZ2luUHJvcGVydGllcygpOyBpdCAh
PSBlbmQ7ICsraXQpCi0gICAgICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5vdmVycmlkZUltcGxp
Y2l0QW5pbWF0aW9ucygqaXQpOworICAgICAgICBjb21wb3NpdGVBbmltYXRpb24oKS0+b3ZlcnJp
ZGVJbXBsaWNpdEFuaW1hdGlvbnMoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oKml0KSk7CiB9
CiAKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OnJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCkK
QEAgLTM1OSwxMCArMzU5LDEwIEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OnJlc3VtZU92ZXJy
aWRkZW4KICAgICAvLyBUaGlzIHdpbGwgcmVzdW1lIG92ZXJyaWRkZW4gaW1wbGljaXQgYW5pbWF0
aW9ucwogICAgIEhhc2hTZXQ8aW50Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9rZXlmcmFtZXMu
ZW5kUHJvcGVydGllcygpOwogICAgIGZvciAoSGFzaFNldDxpbnQ+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fa2V5ZnJhbWVzLmJlZ2luUHJvcGVydGllcygpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAg
ICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5yZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRp
b25zKCppdCk7CisgICAgICAgIGNvbXBvc2l0ZUFuaW1hdGlvbigpLT5yZXN1bWVPdmVycmlkZGVu
SW1wbGljaXRBbmltYXRpb25zKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KCppdCkpOwogfQog
Ci1ib29sIEtleWZyYW1lQW5pbWF0aW9uOjphZmZlY3RzUHJvcGVydHkoaW50IHByb3BlcnR5KSBj
b25zdAorYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6YWZmZWN0c1Byb3BlcnR5KENTU1Byb3BlcnR5
SUQgcHJvcGVydHkpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fa2V5ZnJhbWVzLmNvbnRhaW5zUHJv
cGVydHkocHJvcGVydHkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCShyZXZpc2lvbiAxMTMyNjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBpbnQgaW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX2luZGV4OyB9CiAgICAgdm9pZCBzZXRJbmRleChpbnQgaSkgeyBtX2luZGV4ID0gaTsgfQog
Ci0gICAgYm9vbCBoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShpbnQgcHJvcGVydHkpIGNvbnN0Owor
ICAgIGJvb2wgaGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAg
ICAgCiAgICAgdm9pZCBzZXRVbmFuaW1hdGVkU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
c3R5bGUpIHsgbV91bmFuaW1hdGVkU3R5bGUgPSBzdHlsZTsgfQogICAgIFJlbmRlclN0eWxlKiB1
bmFuaW1hdGVkU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3VuYW5pbWF0ZWRTdHlsZS5nZXQoKTsg
fQpAQCAtNzQsNyArNzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzaG91bGRTZW5kRXZlbnRG
b3JMaXN0ZW5lcihEb2N1bWVudDo6TGlzdGVuZXJUeXBlIGluTGlzdGVuZXJUeXBlKSBjb25zdDsK
ICAgICBib29sIHNlbmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBkb3VibGUg
ZWxhcHNlZFRpbWUpOwogCi0gICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0eShpbnQpIGNv
bnN0OworICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29u
c3Q7CiAKICAgICB2b2lkIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KCk7CiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
fktleWZyYW1lQW5pbWF0aW9uKCk7CiAgICAgCiAgICAgLy8gR2V0IHRoZSBzdHlsZXMgZm9yIHRo
ZSBnaXZlbiBwcm9wZXJ0eSBzdXJyb3VuZGluZyB0aGUgY3VycmVudCBhbmltYXRpb24gdGltZSBh
bmQgdGhlIHByb2dyZXNzIGJldHdlZW4gdGhlbS4KLSAgICB2b2lkIGZldGNoSW50ZXJ2YWxFbmRw
b2ludHNGb3JQcm9wZXJ0eShpbnQgcHJvcGVydHksIGNvbnN0IFJlbmRlclN0eWxlKiYgZnJvbVN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSomIHRvU3R5bGUsIGRvdWJsZSYgcHJvZ3Jlc3MpIGNvbnN0
OworICAgIHZvaWQgZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KENTU1Byb3BlcnR5
SUQsIGNvbnN0IFJlbmRlclN0eWxlKiYgZnJvbVN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSomIHRv
U3R5bGUsIGRvdWJsZSYgcHJvZ3Jlc3MpIGNvbnN0OwogCiAgICAgLy8gVGhlIGtleWZyYW1lcyB0
aGF0IHdlIGFyZSBibGVuZGluZy4KICAgICBLZXlmcmFtZUxpc3QgbV9rZXlmcmFtZXM7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMTEzMjY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODQsMTQgKzEzODQsMTQgQEAgYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbgogI2VuZGlmCiB9CiAKLXZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uUGF1c2VkKGRvdWJsZSB0aW1lT2Zmc2V0LCBpbnQg
cHJvcGVydHkpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dHJhbnNpdGlvblBhdXNlZChkb3Vi
bGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKICAgICBBbmltYXRlZFBy
b3BlcnR5SUQgYW5pbWF0ZWRQcm9wZXJ0eSA9IGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KHBy
b3BlcnR5KTsKICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eSAhPSBBbmltYXRlZFByb3BlcnR5SW52
YWxpZCkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5wYXVzZUFuaW1hdGlvbihHcmFwaGljc0xh
eWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihhbmltYXRlZFByb3BlcnR5KSwgdGltZU9m
ZnNldCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFuc2l0aW9uRmluaXNoZWQo
aW50IHByb3BlcnR5KQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnRyYW5zaXRpb25GaW5pc2hl
ZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KQogewogICAgIEFuaW1hdGVkUHJvcGVydHlJRCBhbmlt
YXRlZFByb3BlcnR5ID0gY3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkocHJvcGVydHkpOwogICAg
IGlmIChhbmltYXRlZFByb3BlcnR5ICE9IEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkKQpAQCAtMTQz
MCw5ICsxNDMwLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbXBvc2l0ZWRCbwog
ICAgIG1fY29tcG9zaXRlZEJvdW5kcyA9IGJvdW5kczsKIAogfQotaW50IFJlbmRlckxheWVyQmFj
a2luZzo6Z3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3Bl
cnR5KQorQ1NTUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NT
U1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKLSAgICBpbnQgY3NzUHJv
cGVydHkgPSBDU1NQcm9wZXJ0eUludmFsaWQ7CisgICAgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0
eSA9IENTU1Byb3BlcnR5SW52YWxpZDsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CiAgICAgICAg
IGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKICAgICAgICAgICAgIGNzc1By
b3BlcnR5ID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm07CkBAIC0xNDU2LDcgKzE0NTYsNyBA
QCBpbnQgUmVuZGVyTGF5ZXJCYWNraW5nOjpncmFwaGljc0xheWVyVG9DCiAgICAgcmV0dXJuIGNz
c1Byb3BlcnR5OwogfQogCi1BbmltYXRlZFByb3BlcnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpj
c3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShpbnQgY3NzUHJvcGVydHkpCitBbmltYXRlZFByb3Bl
cnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGNzc1Byb3BlcnR5KQogewogICAgIHN3aXRjaCAoY3NzUHJvcGVydHkpIHsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybToKQEAgLTE0NjksNyArMTQ2OSw5
IEBAIEFuaW1hdGVkUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmMKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFBy
b3BlcnR5V2Via2l0RmlsdGVyOwogI2VuZGlmCi0gICAgICAgIC8vIEl0J3MgZmluZSBpZiB3ZSBz
ZWUgb3RoZXIgY3NzIHByb3BlcnRpZXMgaGVyZTsgdGhleSBhcmUganVzdCBub3QgYWNjZWxlcmF0
ZWQuCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBJdCdzIGZpbmUgaWYgd2Ugc2Vl
IG90aGVyIGNzcyBwcm9wZXJ0aWVzIGhlcmU7IHRoZXkgYXJlIGp1c3Qgbm90IGFjY2VsZXJhdGVk
LgorICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5
SW52YWxpZDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmgJKHJldmlzaW9uIDExMzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDggKzEwNiw4IEBA
IHB1YmxpYzoKIAogICAgIC8vIEludGVyZmFjZSB0byBzdGFydCwgZmluaXNoLCBzdXNwZW5kIGFu
ZCByZXN1bWUgYW5pbWF0aW9ucyBhbmQgdHJhbnNpdGlvbnMKICAgICBib29sIHN0YXJ0VHJhbnNp
dGlvbihkb3VibGUsIENTU1Byb3BlcnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBmcm9tU3R5bGUs
IGNvbnN0IFJlbmRlclN0eWxlKiB0b1N0eWxlKTsKLSAgICB2b2lkIHRyYW5zaXRpb25QYXVzZWQo
ZG91YmxlIHRpbWVPZmZzZXQsIGludCBwcm9wZXJ0eSk7Ci0gICAgdm9pZCB0cmFuc2l0aW9uRmlu
aXNoZWQoaW50IHByb3BlcnR5KTsKKyAgICB2b2lkIHRyYW5zaXRpb25QYXVzZWQoZG91YmxlIHRp
bWVPZmZzZXQsIENTU1Byb3BlcnR5SUQpOworICAgIHZvaWQgdHJhbnNpdGlvbkZpbmlzaGVkKENT
U1Byb3BlcnR5SUQpOwogCiAgICAgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNl
dCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcyk7
CiAgICAgdm9pZCBhbmltYXRpb25QYXVzZWQoZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CkBAIC0yMTEsOCArMjExLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnRJ
bnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
SW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdCk7CiAKLSAgICBzdGF0aWMgaW50
IGdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCk7Ci0gICAgc3Rh
dGljIEFuaW1hdGVkUHJvcGVydHlJRCBjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShpbnQpOwor
ICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1h
dGVkUHJvcGVydHlJRCk7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlJRCBjc3NUb0dyYXBo
aWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBT
dHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>