<?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>76470</bug_id>
          
          <creation_ts>2012-01-17 12:07:32 -0800</creation_ts>
          <short_desc>HRTFPanner could have high-quality mode for smoother transitions</short_desc>
          <delta_ts>2012-01-27 18:16:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537266</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-17 12:07:32 -0800</bug_when>
    <thetext>The HRTFPanner works reasonably well, but can have &quot;zipper&quot; artifacts when panning some source material.
Interpolation between different panning positions can help this somewhat, with some added performance cost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544471</commentid>
    <comment_count>1</comment_count>
      <attachid>124389</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 15:59:38 -0800</bug_when>
    <thetext>Created attachment 124389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544488</commentid>
    <comment_count>2</comment_count>
      <attachid>124389</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-27 16:08:12 -0800</bug_when>
    <thetext>Comment on attachment 124389
Patch

Could you fix the Mac build failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544497</commentid>
    <comment_count>3</comment_count>
      <attachid>124389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 16:23:10 -0800</bug_when>
    <thetext>Comment on attachment 124389
Patch

Attachment 124389 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11349896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544542</commentid>
    <comment_count>4</comment_count>
      <attachid>124409</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 17:43:59 -0800</bug_when>
    <thetext>Created attachment 124409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544543</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 17:44:41 -0800</bug_when>
    <thetext>removed wrapDistance() to try to fix build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544550</commentid>
    <comment_count>6</comment_count>
      <attachid>124409</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-27 17:50:47 -0800</bug_when>
    <thetext>Comment on attachment 124409
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124409&amp;action=review

Looks fine overall; a few minor nits which you can fix upon landing. r=me

&gt; Source/WebCore/platform/audio/HRTFPanner.cpp:47
&gt; +const int UnitializedAzimuth = -1;

Typo: should be Uninitialized.

&gt; Source/WebCore/platform/audio/HRTFPanner.cpp:65
&gt; +    , m_tempL1(128)

Please define and use a constant instead of the value 128. Could use it below too.

&gt; Source/WebCore/platform/audio/HRTFPanner.cpp:287
&gt; +            if (m_crossfadeIncr &lt; 0 &amp;&amp; fabs(m_crossfadeX) &lt; -m_crossfadeIncr) {

Could use an else if here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544570</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 18:16:31 -0800</bug_when>
    <thetext>Committed r106173: &lt;http://trac.webkit.org/changeset/106173&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124389</attachid>
            <date>2012-01-27 15:59:38 -0800</date>
            <delta_ts>2012-01-27 17:43:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76470-20120127155937.patch</filename>
            <type>text/plain</type>
            <size>15907</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY1NWNhZmFkMzg1Mjdm
MWE1YmIwN2JlMDVjN2ZlZGQ4YzUwYjhmMy4uZDYyNDRmNzFkN2M2ZGU5YjE5NzljOWM2NTFkNTEy
OTc4NjE3NDk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTI3ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSFJURlBhbm5lciBjb3Vs
ZCBoYXZlIGhpZ2gtcXVhbGl0eSBtb2RlIGZvciBzbW9vdGhlciB0cmFuc2l0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L0hSVEZQYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
UlRGUGFubmVyOjpIUlRGUGFubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OnJl
c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OmNhbGN1bGF0ZURlc2lyZWRBemlt
dXRoSW5kZXhBbmRCbGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpIUlRGUGFubmVyOjpwYW4pOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuaDoKKyAgICAgICAgKEhSVEZQYW5u
ZXIpOgorICAgICAgICAoKToKKwogMjAxMi0wMS0yNSAgRXJpYyBVaHJoYW5lICA8ZXJpY3VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBmdWxsIHN1cHBvcnQgZm9yIGZpbGVzeXN0ZW0gVVJM
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKaW5kZXgg
ZjA5OTYxZmExZGVmZjc1YzA0NGFmYWYzZTk3YzlhYzBmYTEwODNhNy4uMDg1MGVlODY1ZTk1NmQ2
MmYwOWRmYzNiYmZjZmI3Yjk3MTZhM2U4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURlBhbm5lci5jcHAKQEAgLTM3LDIzICszNywzNiBAQAogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLSAKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBUaGUgdmFsdWUgb2YgMiBtaWxsaXNlY29uZHMgaXMgbGFyZ2VyIHRoYW4gdGhlIGxh
cmdlc3QgZGVsYXkgd2hpY2ggZXhpc3RzIGluIGFueSBIUlRGS2VybmVsIGZyb20gdGhlIGRlZmF1
bHQgSFJURkRhdGFiYXNlICgwLjAxMzYgc2Vjb25kcykuCiAvLyBXZSBBU1NFUlQgdGhlIGRlbGF5
IHZhbHVlcyB1c2VkIGluIHByb2Nlc3MoKSB3aXRoIHRoaXMgdmFsdWUuCiBjb25zdCBkb3VibGUg
TWF4RGVsYXlUaW1lU2Vjb25kcyA9IDAuMDAyOwogCitjb25zdCBpbnQgVW5pdGlhbGl6ZWRBemlt
dXRoID0gLTE7CisKIEhSVEZQYW5uZXI6OkhSVEZQYW5uZXIoZmxvYXQgc2FtcGxlUmF0ZSkKICAg
ICA6IFBhbm5lcihQYW5uaW5nTW9kZWxIUlRGKQogICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJh
dGUpCi0gICAgLCBtX2lzRmlyc3RSZW5kZXIodHJ1ZSkKLSAgICAsIG1fYXppbXV0aEluZGV4KDAp
Ci0gICAgLCBtX2NvbnZvbHZlckwoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCi0g
ICAgLCBtX2NvbnZvbHZlclIoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCisgICAg
LCBtX2Nyb3NzZmFkZVNlbGVjdGlvbihDcm9zc2ZhZGVTZWxlY3Rpb24xKQorICAgICwgbV9hemlt
dXRoSW5kZXgxKFVuaXRpYWxpemVkQXppbXV0aCkKKyAgICAsIG1fZWxldmF0aW9uMSgwKQorICAg
ICwgbV9hemltdXRoSW5kZXgyKFVuaXRpYWxpemVkQXppbXV0aCkKKyAgICAsIG1fZWxldmF0aW9u
MigwKQorICAgICwgbV9jcm9zc2ZhZGVYKDApCisgICAgLCBtX2Nyb3NzZmFkZUluY3IoMCkKKyAg
ICAsIG1fY29udm9sdmVyTDEoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCisgICAg
LCBtX2NvbnZvbHZlclIxKGZmdFNpemVGb3JTYW1wbGVSYXRlKHNhbXBsZVJhdGUpKQorICAgICwg
bV9jb252b2x2ZXJMMihmZnRTaXplRm9yU2FtcGxlUmF0ZShzYW1wbGVSYXRlKSkKKyAgICAsIG1f
Y29udm9sdmVyUjIoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCiAgICAgLCBtX2Rl
bGF5TGluZUwoTWF4RGVsYXlUaW1lU2Vjb25kcywgc2FtcGxlUmF0ZSkKICAgICAsIG1fZGVsYXlM
aW5lUihNYXhEZWxheVRpbWVTZWNvbmRzLCBzYW1wbGVSYXRlKQoteyAKKyAgICAsIG1fdGVtcEwx
KDEyOCkKKyAgICAsIG1fdGVtcFIxKDEyOCkKKyAgICAsIG1fdGVtcEwyKDEyOCkKKyAgICAsIG1f
dGVtcFIyKDEyOCkKK3sKIH0KIAogSFJURlBhbm5lcjo6fkhSVEZQYW5uZXIoKQpAQCAtNzEsOSAr
ODQsMTAgQEAgc2l6ZV90IEhSVEZQYW5uZXI6OmZmdFNpemVGb3JTYW1wbGVSYXRlKGZsb2F0IHNh
bXBsZVJhdGUpCiAKIHZvaWQgSFJURlBhbm5lcjo6cmVzZXQoKQogewotICAgIG1faXNGaXJzdFJl
bmRlciA9IHRydWU7Ci0gICAgbV9jb252b2x2ZXJMLnJlc2V0KCk7Ci0gICAgbV9jb252b2x2ZXJS
LnJlc2V0KCk7CisgICAgbV9jb252b2x2ZXJMMS5yZXNldCgpOworICAgIG1fY29udm9sdmVyUjEu
cmVzZXQoKTsKKyAgICBtX2NvbnZvbHZlckwyLnJlc2V0KCk7CisgICAgbV9jb252b2x2ZXJSMi5y
ZXNldCgpOwogICAgIG1fZGVsYXlMaW5lTC5yZXNldCgpOwogICAgIG1fZGVsYXlMaW5lUi5yZXNl
dCgpOwogfQpAQCAtOTIsMTAgKzEwNiwxMCBAQCBpbnQgSFJURlBhbm5lcjo6Y2FsY3VsYXRlRGVz
aXJlZEF6aW11dGhJbmRleEFuZEJsZW5kKGRvdWJsZSBhemltdXRoLCBkb3VibGUmIGF6aQogICAg
IC8vIFRoZSBhemltdXRoIGluZGV4IG1heSB0aGVuIGJlIGNhbGN1bGF0ZWQgZnJvbSB0aGlzIHBv
c2l0aXZlIHZhbHVlLgogICAgIGlmIChhemltdXRoIDwgMCkKICAgICAgICAgYXppbXV0aCArPSAz
NjAuMDsKLSAgICAKLSAgICBIUlRGRGF0YWJhc2UqIGRhdGFiYXNlID0gSFJURkRhdGFiYXNlTG9h
ZGVyOjpkZWZhdWx0SFJURkRhdGFiYXNlKCk7ICAgIAorCisgICAgSFJURkRhdGFiYXNlKiBkYXRh
YmFzZSA9IEhSVEZEYXRhYmFzZUxvYWRlcjo6ZGVmYXVsdEhSVEZEYXRhYmFzZSgpOwogICAgIEFT
U0VSVChkYXRhYmFzZSk7Ci0gICAgCisKICAgICBpbnQgbnVtYmVyT2ZBemltdXRocyA9IGRhdGFi
YXNlLT5udW1iZXJPZkF6aW11dGhzKCk7CiAgICAgY29uc3QgZG91YmxlIGFuZ2xlQmV0d2VlbkF6
aW11dGhzID0gMzYwLjAgLyBudW1iZXJPZkF6aW11dGhzOwogCkBAIC0xMDMsNyArMTE3LDcgQEAg
aW50IEhSVEZQYW5uZXI6OmNhbGN1bGF0ZURlc2lyZWRBemltdXRoSW5kZXhBbmRCbGVuZChkb3Vi
bGUgYXppbXV0aCwgZG91YmxlJiBhemkKICAgICBkb3VibGUgZGVzaXJlZEF6aW11dGhJbmRleEZs
b2F0ID0gYXppbXV0aCAvIGFuZ2xlQmV0d2VlbkF6aW11dGhzOwogICAgIGludCBkZXNpcmVkQXpp
bXV0aEluZGV4ID0gc3RhdGljX2Nhc3Q8aW50PihkZXNpcmVkQXppbXV0aEluZGV4RmxvYXQpOwog
ICAgIGF6aW11dGhCbGVuZCA9IGRlc2lyZWRBemltdXRoSW5kZXhGbG9hdCAtIHN0YXRpY19jYXN0
PGRvdWJsZT4oZGVzaXJlZEF6aW11dGhJbmRleCk7Ci0gICAgCisKICAgICAvLyBXZSBkb24ndCBp
bW1lZGlhdGVseSBzdGFydCB1c2luZyB0aGlzIGF6aW11dGggaW5kZXgsIGJ1dCBpbnN0ZWFkIGFw
cHJvYWNoIHRoaXMgaW5kZXggZnJvbSB0aGUgbGFzdCBpbmRleCB3ZSByZW5kZXJlZCBhdC4KICAg
ICAvLyBUaGlzIG1pbmltaXplcyB0aGUgY2xpY2tzIGFuZCBncmFpbmluZXNzIGZvciBtb3Zpbmcg
c291cmNlcyB3aGljaCBvY2N1ciBvdGhlcndpc2UuCiAgICAgZGVzaXJlZEF6aW11dGhJbmRleCA9
IG1heCgwLCBkZXNpcmVkQXppbXV0aEluZGV4KTsKQEAgLTEyOCw3ICsxNDIsNyBAQCB2b2lkIEhS
VEZQYW5uZXI6OnBhbihkb3VibGUgZGVzaXJlZEF6aW11dGgsIGRvdWJsZSBlbGV2YXRpb24sIGNv
bnN0IEF1ZGlvQnVzKiBpbgogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZSBvbmx5IHJ1bnMgYXMg
bG9uZyBhcyB0aGUgY29udGV4dCBpcyBhbGl2ZSBhbmQgYWZ0ZXIgZGF0YWJhc2UgaGFzIGJlZW4g
bG9hZGVkLgotICAgIEhSVEZEYXRhYmFzZSogZGF0YWJhc2UgPSBIUlRGRGF0YWJhc2VMb2FkZXI6
OmRlZmF1bHRIUlRGRGF0YWJhc2UoKTsgICAgCisgICAgSFJURkRhdGFiYXNlKiBkYXRhYmFzZSA9
IEhSVEZEYXRhYmFzZUxvYWRlcjo6ZGVmYXVsdEhSVEZEYXRhYmFzZSgpOwogICAgIEFTU0VSVChk
YXRhYmFzZSk7CiAgICAgaWYgKCFkYXRhYmFzZSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8o
KTsKQEAgLTE1OSw1MiArMTczLDczIEBAIHZvaWQgSFJURlBhbm5lcjo6cGFuKGRvdWJsZSBkZXNp
cmVkQXppbXV0aCwgZG91YmxlIGVsZXZhdGlvbiwgY29uc3QgQXVkaW9CdXMqIGluCiAgICAgZG91
YmxlIGF6aW11dGhCbGVuZDsKICAgICBpbnQgZGVzaXJlZEF6aW11dGhJbmRleCA9IGNhbGN1bGF0
ZURlc2lyZWRBemltdXRoSW5kZXhBbmRCbGVuZChhemltdXRoLCBhemltdXRoQmxlbmQpOwogCisg
ICAgLy8gSW5pdGlhbGx5IHNuYXAgYXppbXV0aCBhbmQgZWxldmF0aW9uIHZhbHVlcyB0byBmaXJz
dCB2YWx1ZXMgZW5jb3VudGVyZWQuCisgICAgaWYgKG1fYXppbXV0aEluZGV4MSA9PSBVbml0aWFs
aXplZEF6aW11dGgpIHsKKyAgICAgICAgbV9hemltdXRoSW5kZXgxID0gZGVzaXJlZEF6aW11dGhJ
bmRleDsKKyAgICAgICAgbV9lbGV2YXRpb24xID0gZWxldmF0aW9uOworICAgIH0KKyAgICBpZiAo
bV9hemltdXRoSW5kZXgyID09IFVuaXRpYWxpemVkQXppbXV0aCkgeworICAgICAgICBtX2F6aW11
dGhJbmRleDIgPSBkZXNpcmVkQXppbXV0aEluZGV4OworICAgICAgICBtX2VsZXZhdGlvbjIgPSBl
bGV2YXRpb247CisgICAgfQorCisgICAgLy8gQ3Jvc3MtZmFkZSAvIHRyYW5zaXRpb24gb3ZlciBh
IHBlcmlvZCBvZiBhcm91bmQgNDUgbWlsbGlzZWNvbmRzLgorICAgIC8vIFRoaXMgaXMgYW4gZW1w
aXJpY2FsIHZhbHVlIHR1bmVkIHRvIGJlIGEgcmVhc29uYWJsZSB0cmFkZS1vZmYgYmV0d2Vlbgor
ICAgIC8vIHNtb290aG5lc3MgYW5kIHNwZWVkLgorICAgIGNvbnN0IGRvdWJsZSBmYWRlRnJhbWVz
ID0gc2FtcGxlUmF0ZSgpIDw9IDQ4MDAwID8gMjA0OCA6IDQwOTY7CisKKyAgICAvLyBDaGVjayBm
b3IgYXppbXV0aCBhbmQgZWxldmF0aW9uIGNoYW5nZXMsIGluaXRpYXRpbmcgYSBjcm9zcy1mYWRl
IGlmIG5lZWRlZC4KKyAgICBpZiAoIW1fY3Jvc3NmYWRlWCAmJiBtX2Nyb3NzZmFkZVNlbGVjdGlv
biA9PSBDcm9zc2ZhZGVTZWxlY3Rpb24xKSB7CisgICAgICAgIGlmIChkZXNpcmVkQXppbXV0aElu
ZGV4ICE9IG1fYXppbXV0aEluZGV4MSB8fCBlbGV2YXRpb24gIT0gbV9lbGV2YXRpb24xKSB7Cisg
ICAgICAgICAgICAvLyBDcm9zcy1mYWRlIGZyb20gMSAtPiAyCisgICAgICAgICAgICBtX2Nyb3Nz
ZmFkZUluY3IgPSAxIC8gZmFkZUZyYW1lczsKKyAgICAgICAgICAgIG1fYXppbXV0aEluZGV4MiA9
IGRlc2lyZWRBemltdXRoSW5kZXg7CisgICAgICAgICAgICBtX2VsZXZhdGlvbjIgPSBlbGV2YXRp
b247CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1fY3Jvc3NmYWRlWCA9PSAxICYmIG1fY3Jv
c3NmYWRlU2VsZWN0aW9uID09IENyb3NzZmFkZVNlbGVjdGlvbjIpIHsKKyAgICAgICAgaWYgKGRl
c2lyZWRBemltdXRoSW5kZXggIT0gbV9hemltdXRoSW5kZXgyIHx8IGVsZXZhdGlvbiAhPSBtX2Vs
ZXZhdGlvbjIpIHsKKyAgICAgICAgICAgIC8vIENyb3NzLWZhZGUgZnJvbSAyIC0+IDEKKyAgICAg
ICAgICAgIG1fY3Jvc3NmYWRlSW5jciA9IC0xIC8gZmFkZUZyYW1lczsKKyAgICAgICAgICAgIG1f
YXppbXV0aEluZGV4MSA9IGRlc2lyZWRBemltdXRoSW5kZXg7CisgICAgICAgICAgICBtX2VsZXZh
dGlvbjEgPSBlbGV2YXRpb247CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBUaGlzIGFsZ29y
aXRobSBjdXJyZW50bHkgcmVxdWlyZXMgdGhhdCB3ZSBwcm9jZXNzIGluIHBvd2VyLW9mLXR3byBz
aXplIGNodW5rcyBhdCBsZWFzdCAxMjguCiAgICAgQVNTRVJUKDFVTCA8PCBzdGF0aWNfY2FzdDxp
bnQ+KGxvZzIoZnJhbWVzVG9Qcm9jZXNzKSkgPT0gZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBBU1NF
UlQoZnJhbWVzVG9Qcm9jZXNzID49IDEyOCk7Ci0gICAgCisKICAgICBjb25zdCB1bnNpZ25lZCBm
cmFtZXNQZXJTZWdtZW50ID0gMTI4OwogICAgIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mU2VnbWVu
dHMgPSBmcmFtZXNUb1Byb2Nlc3MgLyBmcmFtZXNQZXJTZWdtZW50OwogCiAgICAgZm9yICh1bnNp
Z25lZCBzZWdtZW50ID0gMDsgc2VnbWVudCA8IG51bWJlck9mU2VnbWVudHM7ICsrc2VnbWVudCkg
ewotICAgICAgICBpZiAobV9pc0ZpcnN0UmVuZGVyKSB7Ci0gICAgICAgICAgICAvLyBTbmFwIGV4
YWN0bHkgdG8gZGVzaXJlZCBwb3NpdGlvbiAoZmlyc3QgdGltZSBhbmQgYWZ0ZXIgcmVzZXQoKSku
Ci0gICAgICAgICAgICBtX2F6aW11dGhJbmRleCA9IGRlc2lyZWRBemltdXRoSW5kZXg7Ci0gICAg
ICAgICAgICBtX2lzRmlyc3RSZW5kZXIgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEVhY2ggc2VnbWVudCByZW5kZXJzIHdpdGggYW4gYXppbXV0aCBpbmRleCBjbG9z
ZXIgYnkgb25lIHRvIHRoZSBkZXNpcmVkIGF6aW11dGggaW5kZXguCi0gICAgICAgICAgICAvLyBC
ZWNhdXNlIGludGVyLWF1cmFsIHRpbWUgZGVsYXkgaXMgbW9zdGx5IGEgZmFjdG9yIG9mIGF6aW11
dGggYW5kIHRoZSBkZWxheSBpcyB3aGVyZSB0aGUgY2xpY2tzIGFuZCBncmFpbmluZXNzIGNvbWUg
ZnJvbSwKLSAgICAgICAgICAgIC8vIHdlIGRvbid0IGJvdGhlciBzbW9vdGhpbmcgdGhlIGVsZXZh
dGlvbnMuCi0gICAgICAgICAgICBpbnQgbnVtYmVyT2ZBemltdXRocyA9IGRhdGFiYXNlLT5udW1i
ZXJPZkF6aW11dGhzKCk7Ci0gICAgICAgICAgICBib29sIHdyYXAgPSB3cmFwRGlzdGFuY2UobV9h
emltdXRoSW5kZXgsIGRlc2lyZWRBemltdXRoSW5kZXgsIG51bWJlck9mQXppbXV0aHMpOwotICAg
ICAgICAgICAgaWYgKHdyYXApIHsKLSAgICAgICAgICAgICAgICBpZiAobV9hemltdXRoSW5kZXgg
PCBkZXNpcmVkQXppbXV0aEluZGV4KQotICAgICAgICAgICAgICAgICAgICBtX2F6aW11dGhJbmRl
eCA9IChtX2F6aW11dGhJbmRleCAtIDEgKyBudW1iZXJPZkF6aW11dGhzKSAlIG51bWJlck9mQXpp
bXV0aHM7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAobV9hemltdXRoSW5kZXggPiBkZXNpcmVk
QXppbXV0aEluZGV4KQotICAgICAgICAgICAgICAgICAgICBtX2F6aW11dGhJbmRleCA9IChtX2F6
aW11dGhJbmRleCArIDEpICUgbnVtYmVyT2ZBemltdXRoczsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXppbXV0aEluZGV4IDwgZGVzaXJlZEF6aW11dGhJbmRl
eCkKLSAgICAgICAgICAgICAgICAgICAgbV9hemltdXRoSW5kZXggPSAobV9hemltdXRoSW5kZXgg
KyAxKSAlIG51bWJlck9mQXppbXV0aHM7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAobV9hemlt
dXRoSW5kZXggPiBkZXNpcmVkQXppbXV0aEluZGV4KQotICAgICAgICAgICAgICAgICAgICBtX2F6
aW11dGhJbmRleCA9IChtX2F6aW11dGhJbmRleCAtIDEgKyBudW1iZXJPZkF6aW11dGhzKSAlIG51
bWJlck9mQXppbXV0aHM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIC8vIEdldCB0aGUgSFJURktlcm5lbHMgYW5kIGludGVycG9sYXRlZCBkZWxheXMuICAgIAot
ICAgICAgICBIUlRGS2VybmVsKiBrZXJuZWxMOwotICAgICAgICBIUlRGS2VybmVsKiBrZXJuZWxS
OwotICAgICAgICBkb3VibGUgZnJhbWVEZWxheUw7Ci0gICAgICAgIGRvdWJsZSBmcmFtZURlbGF5
UjsKLSAgICAgICAgZGF0YWJhc2UtPmdldEtlcm5lbHNGcm9tQXppbXV0aEVsZXZhdGlvbihhemlt
dXRoQmxlbmQsIG1fYXppbXV0aEluZGV4LCBlbGV2YXRpb24sIGtlcm5lbEwsIGtlcm5lbFIsIGZy
YW1lRGVsYXlMLCBmcmFtZURlbGF5Uik7Ci0KLSAgICAgICAgQVNTRVJUKGtlcm5lbEwgJiYga2Vy
bmVsUik7Ci0gICAgICAgIGlmICgha2VybmVsTCB8fCAha2VybmVsUikgeworICAgICAgICAvLyBH
ZXQgdGhlIEhSVEZLZXJuZWxzIGFuZCBpbnRlcnBvbGF0ZWQgZGVsYXlzLgorICAgICAgICBIUlRG
S2VybmVsKiBrZXJuZWxMMTsKKyAgICAgICAgSFJURktlcm5lbCoga2VybmVsUjE7CisgICAgICAg
IEhSVEZLZXJuZWwqIGtlcm5lbEwyOworICAgICAgICBIUlRGS2VybmVsKiBrZXJuZWxSMjsKKyAg
ICAgICAgZG91YmxlIGZyYW1lRGVsYXlMMTsKKyAgICAgICAgZG91YmxlIGZyYW1lRGVsYXlSMTsK
KyAgICAgICAgZG91YmxlIGZyYW1lRGVsYXlMMjsKKyAgICAgICAgZG91YmxlIGZyYW1lRGVsYXlS
MjsKKyAgICAgICAgZGF0YWJhc2UtPmdldEtlcm5lbHNGcm9tQXppbXV0aEVsZXZhdGlvbihhemlt
dXRoQmxlbmQsIG1fYXppbXV0aEluZGV4MSwgbV9lbGV2YXRpb24xLCBrZXJuZWxMMSwga2VybmVs
UjEsIGZyYW1lRGVsYXlMMSwgZnJhbWVEZWxheVIxKTsKKyAgICAgICAgZGF0YWJhc2UtPmdldEtl
cm5lbHNGcm9tQXppbXV0aEVsZXZhdGlvbihhemltdXRoQmxlbmQsIG1fYXppbXV0aEluZGV4Miwg
bV9lbGV2YXRpb24yLCBrZXJuZWxMMiwga2VybmVsUjIsIGZyYW1lRGVsYXlMMiwgZnJhbWVEZWxh
eVIyKTsKKworICAgICAgICBib29sIGFyZUtlcm5lbHNHb29kID0ga2VybmVsTDEgJiYga2VybmVs
UjEgJiYga2VybmVsTDIgJiYga2VybmVsUjI7CisgICAgICAgIEFTU0VSVChhcmVLZXJuZWxzR29v
ZCk7CisgICAgICAgIGlmICghYXJlS2VybmVsc0dvb2QpIHsKICAgICAgICAgICAgIG91dHB1dEJ1
cy0+emVybygpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBBU1NFUlQoZnJhbWVEZWxheUwgLyBzYW1wbGVSYXRlKCkgPCBNYXhEZWxheVRpbWVTZWNv
bmRzICYmIGZyYW1lRGVsYXlSIC8gc2FtcGxlUmF0ZSgpIDwgTWF4RGVsYXlUaW1lU2Vjb25kcyk7
Ci0gICAgICAgICAgICAKKworICAgICAgICBBU1NFUlQoZnJhbWVEZWxheUwxIC8gc2FtcGxlUmF0
ZSgpIDwgTWF4RGVsYXlUaW1lU2Vjb25kcyAmJiBmcmFtZURlbGF5UjEgLyBzYW1wbGVSYXRlKCkg
PCBNYXhEZWxheVRpbWVTZWNvbmRzKTsKKyAgICAgICAgQVNTRVJUKGZyYW1lRGVsYXlMMiAvIHNh
bXBsZVJhdGUoKSA8IE1heERlbGF5VGltZVNlY29uZHMgJiYgZnJhbWVEZWxheVIyIC8gc2FtcGxl
UmF0ZSgpIDwgTWF4RGVsYXlUaW1lU2Vjb25kcyk7CisKKyAgICAgICAgLy8gQ3Jvc3NmYWRlIGlu
dGVyLWF1cmFsIGRlbGF5cyBiYXNlZCBvbiB0cmFuc2l0aW9ucy4KKyAgICAgICAgZG91YmxlIGZy
YW1lRGVsYXlMID0gKDEgLSBtX2Nyb3NzZmFkZVgpICogZnJhbWVEZWxheUwxICsgbV9jcm9zc2Zh
ZGVYICogZnJhbWVEZWxheUwyOworICAgICAgICBkb3VibGUgZnJhbWVEZWxheVIgPSAoMSAtIG1f
Y3Jvc3NmYWRlWCkgKiBmcmFtZURlbGF5UjEgKyBtX2Nyb3NzZmFkZVggKiBmcmFtZURlbGF5UjI7
CisKICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHBvaW50
ZXJzIGZvciB0aGUgY3VycmVudCBzZWdtZW50LgogICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBz
ZWdtZW50ICogZnJhbWVzUGVyU2VnbWVudDsKICAgICAgICAgY29uc3QgZmxvYXQqIHNlZ21lbnRT
b3VyY2VMID0gc291cmNlTCArIG9mZnNldDsKQEAgLTIxOCw5ICsyNTMsNTIgQEAgdm9pZCBIUlRG
UGFubmVyOjpwYW4oZG91YmxlIGRlc2lyZWRBemltdXRoLCBkb3VibGUgZWxldmF0aW9uLCBjb25z
dCBBdWRpb0J1cyogaW4KICAgICAgICAgbV9kZWxheUxpbmVMLnByb2Nlc3Moc2VnbWVudFNvdXJj
ZUwsIHNlZ21lbnREZXN0aW5hdGlvbkwsIGZyYW1lc1BlclNlZ21lbnQpOwogICAgICAgICBtX2Rl
bGF5TGluZVIucHJvY2VzcyhzZWdtZW50U291cmNlUiwgc2VnbWVudERlc3RpbmF0aW9uUiwgZnJh
bWVzUGVyU2VnbWVudCk7CiAKLSAgICAgICAgLy8gTm93IGRvIHRoZSBjb252b2x1dGlvbnMgaW4t
cGxhY2UuCi0gICAgICAgIG1fY29udm9sdmVyTC5wcm9jZXNzKGtlcm5lbEwtPmZmdEZyYW1lKCks
IHNlZ21lbnREZXN0aW5hdGlvbkwsIHNlZ21lbnREZXN0aW5hdGlvbkwsIGZyYW1lc1BlclNlZ21l
bnQpOwotICAgICAgICBtX2NvbnZvbHZlclIucHJvY2VzcyhrZXJuZWxSLT5mZnRGcmFtZSgpLCBz
ZWdtZW50RGVzdGluYXRpb25SLCBzZWdtZW50RGVzdGluYXRpb25SLCBmcmFtZXNQZXJTZWdtZW50
KTsKKyAgICAgICAgYm9vbCBuZWVkc0Nyb3NzZmFkaW5nID0gbV9jcm9zc2ZhZGVJbmNyOworICAg
ICAgICAKKyAgICAgICAgLy8gSGF2ZSB0aGUgY29udm9sdmVycyByZW5kZXIgZGlyZWN0bHkgdG8g
dGhlIGZpbmFsIGRlc3RpbmF0aW9uIGlmIHdlJ3JlIG5vdCBjcm9zcy1mYWRpbmcuCisgICAgICAg
IGZsb2F0KiBjb252b2x1dGlvbkRlc3RpbmF0aW9uTDEgPSBuZWVkc0Nyb3NzZmFkaW5nID8gbV90
ZW1wTDEuZGF0YSgpIDogc2VnbWVudERlc3RpbmF0aW9uTDsKKyAgICAgICAgZmxvYXQqIGNvbnZv
bHV0aW9uRGVzdGluYXRpb25SMSA9IG5lZWRzQ3Jvc3NmYWRpbmcgPyBtX3RlbXBSMS5kYXRhKCkg
OiBzZWdtZW50RGVzdGluYXRpb25SOworICAgICAgICBmbG9hdCogY29udm9sdXRpb25EZXN0aW5h
dGlvbkwyID0gbmVlZHNDcm9zc2ZhZGluZyA/IG1fdGVtcEwyLmRhdGEoKSA6IHNlZ21lbnREZXN0
aW5hdGlvbkw7CisgICAgICAgIGZsb2F0KiBjb252b2x1dGlvbkRlc3RpbmF0aW9uUjIgPSBuZWVk
c0Nyb3NzZmFkaW5nID8gbV90ZW1wUjIuZGF0YSgpIDogc2VnbWVudERlc3RpbmF0aW9uUjsKKwor
ICAgICAgICAvLyBOb3cgZG8gdGhlIGNvbnZvbHV0aW9ucy4KKyAgICAgICAgLy8gTm90ZSB0aGF0
IHdlIGF2b2lkIGRvaW5nIGNvbnZvbHV0aW9ucyBvbiBib3RoIHNldHMgb2YgY29udm9sdmVycyBp
ZiB3ZSdyZSBub3QgY3VycmVudGx5IGNyb3NzLWZhZGluZy4KKyAgICAgICAgCisgICAgICAgIGlm
IChtX2Nyb3NzZmFkZVNlbGVjdGlvbiA9PSBDcm9zc2ZhZGVTZWxlY3Rpb24xIHx8IG5lZWRzQ3Jv
c3NmYWRpbmcpIHsKKyAgICAgICAgICAgIG1fY29udm9sdmVyTDEucHJvY2VzcyhrZXJuZWxMMS0+
ZmZ0RnJhbWUoKSwgc2VnbWVudERlc3RpbmF0aW9uTCwgY29udm9sdXRpb25EZXN0aW5hdGlvbkwx
LCBmcmFtZXNQZXJTZWdtZW50KTsKKyAgICAgICAgICAgIG1fY29udm9sdmVyUjEucHJvY2Vzcyhr
ZXJuZWxSMS0+ZmZ0RnJhbWUoKSwgc2VnbWVudERlc3RpbmF0aW9uUiwgY29udm9sdXRpb25EZXN0
aW5hdGlvblIxLCBmcmFtZXNQZXJTZWdtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICht
X2Nyb3NzZmFkZVNlbGVjdGlvbiA9PSBDcm9zc2ZhZGVTZWxlY3Rpb24yIHx8IG5lZWRzQ3Jvc3Nm
YWRpbmcpIHsKKyAgICAgICAgICAgIG1fY29udm9sdmVyTDIucHJvY2VzcyhrZXJuZWxMMi0+ZmZ0
RnJhbWUoKSwgc2VnbWVudERlc3RpbmF0aW9uTCwgY29udm9sdXRpb25EZXN0aW5hdGlvbkwyLCBm
cmFtZXNQZXJTZWdtZW50KTsKKyAgICAgICAgICAgIG1fY29udm9sdmVyUjIucHJvY2VzcyhrZXJu
ZWxSMi0+ZmZ0RnJhbWUoKSwgc2VnbWVudERlc3RpbmF0aW9uUiwgY29udm9sdXRpb25EZXN0aW5h
dGlvblIyLCBmcmFtZXNQZXJTZWdtZW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
aWYgKG5lZWRzQ3Jvc3NmYWRpbmcpIHsKKyAgICAgICAgICAgIC8vIEFwcGx5IGxpbmVhciBjcm9z
cy1mYWRlLgorICAgICAgICAgICAgZmxvYXQgeCA9IG1fY3Jvc3NmYWRlWDsKKyAgICAgICAgICAg
IGZsb2F0IGluY3IgPSBtX2Nyb3NzZmFkZUluY3I7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZnJhbWVzUGVyU2VnbWVudDsgKytpKSB7CisgICAgICAgICAgICAgICAgc2Vn
bWVudERlc3RpbmF0aW9uTFtpXSA9ICgxIC0geCkgKiBjb252b2x1dGlvbkRlc3RpbmF0aW9uTDFb
aV0gKyB4ICogY29udm9sdXRpb25EZXN0aW5hdGlvbkwyW2ldOworICAgICAgICAgICAgICAgIHNl
Z21lbnREZXN0aW5hdGlvblJbaV0gPSAoMSAtIHgpICogY29udm9sdXRpb25EZXN0aW5hdGlvblIx
W2ldICsgeCAqIGNvbnZvbHV0aW9uRGVzdGluYXRpb25SMltpXTsKKyAgICAgICAgICAgICAgICB4
ICs9IGluY3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBVcGRhdGUgY3Jvc3MtZmFk
ZSB2YWx1ZSBmcm9tIGxvY2FsLgorICAgICAgICAgICAgbV9jcm9zc2ZhZGVYID0geDsKKworICAg
ICAgICAgICAgaWYgKG1fY3Jvc3NmYWRlSW5jciA+IDAgJiYgZmFicyhtX2Nyb3NzZmFkZVggLSAx
KSA8IG1fY3Jvc3NmYWRlSW5jcikgeworICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGZ1bGx5IG1h
ZGUgdGhlIGNyb3NzZmFkZSB0cmFuc2l0aW9uIGZyb20gMSAtPiAyLgorICAgICAgICAgICAgICAg
IG1fY3Jvc3NmYWRlU2VsZWN0aW9uID0gQ3Jvc3NmYWRlU2VsZWN0aW9uMjsKKyAgICAgICAgICAg
ICAgICBtX2Nyb3NzZmFkZVggPSAxOworICAgICAgICAgICAgICAgIG1fY3Jvc3NmYWRlSW5jciA9
IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9jcm9zc2ZhZGVJbmNyIDwgMCAm
JiBmYWJzKG1fY3Jvc3NmYWRlWCkgPCAtbV9jcm9zc2ZhZGVJbmNyKSB7CisgICAgICAgICAgICAg
ICAgLy8gV2UndmUgZnVsbHkgbWFkZSB0aGUgY3Jvc3NmYWRlIHRyYW5zaXRpb24gZnJvbSAyIC0+
IDEuCisgICAgICAgICAgICAgICAgbV9jcm9zc2ZhZGVTZWxlY3Rpb24gPSBDcm9zc2ZhZGVTZWxl
Y3Rpb24xOworICAgICAgICAgICAgICAgIG1fY3Jvc3NmYWRlWCA9IDA7CisgICAgICAgICAgICAg
ICAgbV9jcm9zc2ZhZGVJbmNyID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5oCmluZGV4IGFk
NmY3OWEwODQ1NTY4OGE3YjNkNDJhMDY5NDAwNmI3N2NkYTMzMTIuLmY1YWYxZDE1MjliZDQ4ZjIz
MDdlN2ZlYmNjYjczYTAxNmE5NDUyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZQYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGUGFubmVyLmgKQEAgLTQ0LDIzICs0NCw1OCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHNp
emVfdCBmZnRTaXplRm9yU2FtcGxlUmF0ZShmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIGZsb2F0
IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KLSAgICAKKwogcHJp
dmF0ZToKICAgICAvLyBHaXZlbiBhbiBhemltdXRoIGFuZ2xlIGluIHRoZSByYW5nZSAtMTgwIC0+
ICsxODAsIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgYXppbXV0aCBpbmRleCBmb3IgdGhlIGRh
dGFiYXNlLAogICAgIC8vIGFuZCBhemltdXRoQmxlbmQgd2hpY2ggaXMgYW4gaW50ZXJwb2xhdGlv
biB2YWx1ZSBmcm9tIDAgLT4gMS4KICAgICBpbnQgY2FsY3VsYXRlRGVzaXJlZEF6aW11dGhJbmRl
eEFuZEJsZW5kKGRvdWJsZSBhemltdXRoLCBkb3VibGUmIGF6aW11dGhCbGVuZCk7CiAKICAgICBm
bG9hdCBtX3NhbXBsZVJhdGU7Ci0gICAgCi0gICAgLy8gbV9pc0ZpcnN0UmVuZGVyIGFuZCBtX2F6
aW11dGhJbmRleCBhcmUgdXNlZCB0byBhdm9pZCBoYXJzaGx5IGNoYW5naW5nIGZyb20gcmVuZGVy
aW5nIGF0IG9uZSBhemltdXRoIGFuZ2xlIHRvIGFub3RoZXIgYW5nbGUgdmVyeSBmYXIgYXdheS4K
LSAgICAvLyBDaGFuZ2luZyB0aGUgYXppbXV0aCBncmFkdWFsbHkgcHJvZHVjZXMgYSBzbW9vdGhl
ciBzb3VuZC4KLSAgICBib29sIG1faXNGaXJzdFJlbmRlcjsKLSAgICBpbnQgbV9hemltdXRoSW5k
ZXg7Ci0KLSAgICBGRlRDb252b2x2ZXIgbV9jb252b2x2ZXJMOwotICAgIEZGVENvbnZvbHZlciBt
X2NvbnZvbHZlclI7CisKKyAgICAvLyBXZSBtYWludGFpbiB0d28gc2V0cyBvZiBjb252b2x2ZXJz
IGZvciBzbW9vdGggY3Jvc3MtZmFkZWQgaW50ZXJwb2xhdGlvbnMgd2hlbgorICAgIC8vIHRoZW4g
YXppbXV0aCBhbmQgZWxldmF0aW9uIGFyZSBkeW5hbWljYWxseSBjaGFuZ2luZy4KKyAgICAvLyBX
aGVuIHRoZSBhemltdXRoIGFuZCBlbGV2YXRpb24gYXJlIG5vdCBjaGFuZ2luZywgd2Ugc2ltcGx5
IHByb2Nlc3Mgd2l0aCBvbmUgb2YgdGhlIHR3byBzZXRzLgorICAgIC8vIEluaXRpYWxseSB3ZSB1
c2UgQ3Jvc3NmYWRlU2VsZWN0aW9uMSBjb3JyZXNwb25kaW5nIHRvIG1fY29udm9sdmVyTDEgYW5k
IG1fY29udm9sdmVyUjEuCisgICAgLy8gV2hlbmV2ZXIgdGhlIGF6aW11dGggb3IgZWxldmF0aW9u
IGNoYW5nZXMsIGEgY3Jvc3NmYWRlIGlzIGluaXRpYXRlZCB0byB0cmFuc2l0aW9uCisgICAgLy8g
dG8gdGhlIG5ldyBwb3NpdGlvbi4gU28gaWYgd2UncmUgY3VycmVudGx5IHByb2Nlc3Npbmcgd2l0
aCBDcm9zc2ZhZGVTZWxlY3Rpb24xLCB0aGVuCisgICAgLy8gd2UgdHJhbnNpdGlvbiB0byBDcm9z
c2ZhZGVTZWxlY3Rpb24yIChhbmQgdmljZSB2ZXJzYSkuCisgICAgLy8gSWYgd2UncmUgaW4gdGhl
IG1pZGRsZSBvZiBhIHRyYW5zaXRpb24sIHRoZW4gd2Ugd2FpdCB1bnRpbCBpdCBpcyBjb21wbGV0
ZSBiZWZvcmUKKyAgICAvLyBpbml0aWF0aW5nIGEgbmV3IHRyYW5zaXRpb24uCisKKyAgICAvLyBT
ZWxlY3RzIGVpdGhlciB0aGUgY29udm9sdmVyIHNldCAobV9jb252b2x2ZXJMMSwgbV9jb252b2x2
ZXJSMSkgb3IgKG1fY29udm9sdmVyTDIsIG1fY29udm9sdmVyUjIpLgorICAgIGVudW0gQ3Jvc3Nm
YWRlU2VsZWN0aW9uIHsKKyAgICAgICAgQ3Jvc3NmYWRlU2VsZWN0aW9uMSwKKyAgICAgICAgQ3Jv
c3NmYWRlU2VsZWN0aW9uMgorICAgIH07CisKKyAgICBDcm9zc2ZhZGVTZWxlY3Rpb24gbV9jcm9z
c2ZhZGVTZWxlY3Rpb247CisKKyAgICAvLyBhemltdXRoL2VsZXZhdGlvbiBmb3IgQ3Jvc3NmYWRl
U2VsZWN0aW9uMS4KKyAgICBpbnQgbV9hemltdXRoSW5kZXgxOworICAgIGRvdWJsZSBtX2VsZXZh
dGlvbjE7CisKKyAgICAvLyBhemltdXRoL2VsZXZhdGlvbiBmb3IgQ3Jvc3NmYWRlU2VsZWN0aW9u
Mi4KKyAgICBpbnQgbV9hemltdXRoSW5kZXgyOworICAgIGRvdWJsZSBtX2VsZXZhdGlvbjI7CisK
KyAgICAvLyBBIGNyb3NzZmFkZSB2YWx1ZSAwIDw9IG1fY3Jvc3NmYWRlWCA8PSAxLgorICAgIGZs
b2F0IG1fY3Jvc3NmYWRlWDsKKworICAgIC8vIFBlci1zYW1wbGUtZnJhbWUgY3Jvc3NmYWRlIHZh
bHVlIGluY3JlbWVudC4KKyAgICBmbG9hdCBtX2Nyb3NzZmFkZUluY3I7CisKKyAgICBGRlRDb252
b2x2ZXIgbV9jb252b2x2ZXJMMTsKKyAgICBGRlRDb252b2x2ZXIgbV9jb252b2x2ZXJSMTsKKyAg
ICBGRlRDb252b2x2ZXIgbV9jb252b2x2ZXJMMjsKKyAgICBGRlRDb252b2x2ZXIgbV9jb252b2x2
ZXJSMjsKKwogICAgIERlbGF5RFNQS2VybmVsIG1fZGVsYXlMaW5lTDsKICAgICBEZWxheURTUEtl
cm5lbCBtX2RlbGF5TGluZVI7CisKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV90ZW1wTDE7CisgICAg
QXVkaW9GbG9hdEFycmF5IG1fdGVtcFIxOworICAgIEF1ZGlvRmxvYXRBcnJheSBtX3RlbXBMMjsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgbV90ZW1wUjI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124409</attachid>
            <date>2012-01-27 17:43:59 -0800</date>
            <delta_ts>2012-01-27 17:50:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76470-20120127174358.patch</filename>
            <type>text/plain</type>
            <size>16190</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY1NWNhZmFkMzg1Mjdm
MWE1YmIwN2JlMDVjN2ZlZGQ4YzUwYjhmMy4uZDYyNDRmNzFkN2M2ZGU5YjE5NzljOWM2NTFkNTEy
OTc4NjE3NDk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTI3ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSFJURlBhbm5lciBjb3Vs
ZCBoYXZlIGhpZ2gtcXVhbGl0eSBtb2RlIGZvciBzbW9vdGhlciB0cmFuc2l0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L0hSVEZQYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
UlRGUGFubmVyOjpIUlRGUGFubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OnJl
c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OmNhbGN1bGF0ZURlc2lyZWRBemlt
dXRoSW5kZXhBbmRCbGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpIUlRGUGFubmVyOjpwYW4pOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuaDoKKyAgICAgICAgKEhSVEZQYW5u
ZXIpOgorICAgICAgICAoKToKKwogMjAxMi0wMS0yNSAgRXJpYyBVaHJoYW5lICA8ZXJpY3VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBmdWxsIHN1cHBvcnQgZm9yIGZpbGVzeXN0ZW0gVVJM
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKaW5kZXgg
ZjA5OTYxZmExZGVmZjc1YzA0NGFmYWYzZTk3YzlhYzBmYTEwODNhNy4uN2E3YTRiMmZiYmQwZWY1
MDIyOGVkYjNhNWE0YjE4ZTY0MmVmNjU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURlBhbm5lci5jcHAKQEAgLTM3LDIzICszNywzNiBAQAogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLSAKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBUaGUgdmFsdWUgb2YgMiBtaWxsaXNlY29uZHMgaXMgbGFyZ2VyIHRoYW4gdGhlIGxh
cmdlc3QgZGVsYXkgd2hpY2ggZXhpc3RzIGluIGFueSBIUlRGS2VybmVsIGZyb20gdGhlIGRlZmF1
bHQgSFJURkRhdGFiYXNlICgwLjAxMzYgc2Vjb25kcykuCiAvLyBXZSBBU1NFUlQgdGhlIGRlbGF5
IHZhbHVlcyB1c2VkIGluIHByb2Nlc3MoKSB3aXRoIHRoaXMgdmFsdWUuCiBjb25zdCBkb3VibGUg
TWF4RGVsYXlUaW1lU2Vjb25kcyA9IDAuMDAyOwogCitjb25zdCBpbnQgVW5pdGlhbGl6ZWRBemlt
dXRoID0gLTE7CisKIEhSVEZQYW5uZXI6OkhSVEZQYW5uZXIoZmxvYXQgc2FtcGxlUmF0ZSkKICAg
ICA6IFBhbm5lcihQYW5uaW5nTW9kZWxIUlRGKQogICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJh
dGUpCi0gICAgLCBtX2lzRmlyc3RSZW5kZXIodHJ1ZSkKLSAgICAsIG1fYXppbXV0aEluZGV4KDAp
Ci0gICAgLCBtX2NvbnZvbHZlckwoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCi0g
ICAgLCBtX2NvbnZvbHZlclIoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCisgICAg
LCBtX2Nyb3NzZmFkZVNlbGVjdGlvbihDcm9zc2ZhZGVTZWxlY3Rpb24xKQorICAgICwgbV9hemlt
dXRoSW5kZXgxKFVuaXRpYWxpemVkQXppbXV0aCkKKyAgICAsIG1fZWxldmF0aW9uMSgwKQorICAg
ICwgbV9hemltdXRoSW5kZXgyKFVuaXRpYWxpemVkQXppbXV0aCkKKyAgICAsIG1fZWxldmF0aW9u
MigwKQorICAgICwgbV9jcm9zc2ZhZGVYKDApCisgICAgLCBtX2Nyb3NzZmFkZUluY3IoMCkKKyAg
ICAsIG1fY29udm9sdmVyTDEoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCisgICAg
LCBtX2NvbnZvbHZlclIxKGZmdFNpemVGb3JTYW1wbGVSYXRlKHNhbXBsZVJhdGUpKQorICAgICwg
bV9jb252b2x2ZXJMMihmZnRTaXplRm9yU2FtcGxlUmF0ZShzYW1wbGVSYXRlKSkKKyAgICAsIG1f
Y29udm9sdmVyUjIoZmZ0U2l6ZUZvclNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkpCiAgICAgLCBtX2Rl
bGF5TGluZUwoTWF4RGVsYXlUaW1lU2Vjb25kcywgc2FtcGxlUmF0ZSkKICAgICAsIG1fZGVsYXlM
aW5lUihNYXhEZWxheVRpbWVTZWNvbmRzLCBzYW1wbGVSYXRlKQoteyAKKyAgICAsIG1fdGVtcEwx
KDEyOCkKKyAgICAsIG1fdGVtcFIxKDEyOCkKKyAgICAsIG1fdGVtcEwyKDEyOCkKKyAgICAsIG1f
dGVtcFIyKDEyOCkKK3sKIH0KIAogSFJURlBhbm5lcjo6fkhSVEZQYW5uZXIoKQpAQCAtNzEsMzEg
Kzg0LDI0IEBAIHNpemVfdCBIUlRGUGFubmVyOjpmZnRTaXplRm9yU2FtcGxlUmF0ZShmbG9hdCBz
YW1wbGVSYXRlKQogCiB2b2lkIEhSVEZQYW5uZXI6OnJlc2V0KCkKIHsKLSAgICBtX2lzRmlyc3RS
ZW5kZXIgPSB0cnVlOwotICAgIG1fY29udm9sdmVyTC5yZXNldCgpOwotICAgIG1fY29udm9sdmVy
Ui5yZXNldCgpOworICAgIG1fY29udm9sdmVyTDEucmVzZXQoKTsKKyAgICBtX2NvbnZvbHZlclIx
LnJlc2V0KCk7CisgICAgbV9jb252b2x2ZXJMMi5yZXNldCgpOworICAgIG1fY29udm9sdmVyUjIu
cmVzZXQoKTsKICAgICBtX2RlbGF5TGluZUwucmVzZXQoKTsKICAgICBtX2RlbGF5TGluZVIucmVz
ZXQoKTsKIH0KIAotc3RhdGljIGJvb2wgd3JhcERpc3RhbmNlKGludCBpLCBpbnQgaiwgaW50IGxl
bmd0aCkKLXsKLSAgICBpbnQgZGlyZWN0RGlzdGFuY2UgPSBhYnMoaSAtIGopOwotICAgIGludCBp
bmRpcmVjdERpc3RhbmNlID0gbGVuZ3RoIC0gZGlyZWN0RGlzdGFuY2U7Ci0KLSAgICByZXR1cm4g
aW5kaXJlY3REaXN0YW5jZSA8IGRpcmVjdERpc3RhbmNlOwotfQotCiBpbnQgSFJURlBhbm5lcjo6
Y2FsY3VsYXRlRGVzaXJlZEF6aW11dGhJbmRleEFuZEJsZW5kKGRvdWJsZSBhemltdXRoLCBkb3Vi
bGUmIGF6aW11dGhCbGVuZCkKIHsKICAgICAvLyBDb252ZXJ0IHRoZSBhemltdXRoIGFuZ2xlIGZy
b20gdGhlIHJhbmdlIC0xODAgLT4gKzE4MCBpbnRvIHRoZSByYW5nZSAwIC0+IDM2MC4KICAgICAv
LyBUaGUgYXppbXV0aCBpbmRleCBtYXkgdGhlbiBiZSBjYWxjdWxhdGVkIGZyb20gdGhpcyBwb3Np
dGl2ZSB2YWx1ZS4KICAgICBpZiAoYXppbXV0aCA8IDApCiAgICAgICAgIGF6aW11dGggKz0gMzYw
LjA7Ci0gICAgCi0gICAgSFJURkRhdGFiYXNlKiBkYXRhYmFzZSA9IEhSVEZEYXRhYmFzZUxvYWRl
cjo6ZGVmYXVsdEhSVEZEYXRhYmFzZSgpOyAgICAKKworICAgIEhSVEZEYXRhYmFzZSogZGF0YWJh
c2UgPSBIUlRGRGF0YWJhc2VMb2FkZXI6OmRlZmF1bHRIUlRGRGF0YWJhc2UoKTsKICAgICBBU1NF
UlQoZGF0YWJhc2UpOwotICAgIAorCiAgICAgaW50IG51bWJlck9mQXppbXV0aHMgPSBkYXRhYmFz
ZS0+bnVtYmVyT2ZBemltdXRocygpOwogICAgIGNvbnN0IGRvdWJsZSBhbmdsZUJldHdlZW5Bemlt
dXRocyA9IDM2MC4wIC8gbnVtYmVyT2ZBemltdXRoczsKIApAQCAtMTAzLDcgKzEwOSw3IEBAIGlu
dCBIUlRGUGFubmVyOjpjYWxjdWxhdGVEZXNpcmVkQXppbXV0aEluZGV4QW5kQmxlbmQoZG91Ymxl
IGF6aW11dGgsIGRvdWJsZSYgYXppCiAgICAgZG91YmxlIGRlc2lyZWRBemltdXRoSW5kZXhGbG9h
dCA9IGF6aW11dGggLyBhbmdsZUJldHdlZW5BemltdXRoczsKICAgICBpbnQgZGVzaXJlZEF6aW11
dGhJbmRleCA9IHN0YXRpY19jYXN0PGludD4oZGVzaXJlZEF6aW11dGhJbmRleEZsb2F0KTsKICAg
ICBhemltdXRoQmxlbmQgPSBkZXNpcmVkQXppbXV0aEluZGV4RmxvYXQgLSBzdGF0aWNfY2FzdDxk
b3VibGU+KGRlc2lyZWRBemltdXRoSW5kZXgpOwotICAgIAorCiAgICAgLy8gV2UgZG9uJ3QgaW1t
ZWRpYXRlbHkgc3RhcnQgdXNpbmcgdGhpcyBhemltdXRoIGluZGV4LCBidXQgaW5zdGVhZCBhcHBy
b2FjaCB0aGlzIGluZGV4IGZyb20gdGhlIGxhc3QgaW5kZXggd2UgcmVuZGVyZWQgYXQuCiAgICAg
Ly8gVGhpcyBtaW5pbWl6ZXMgdGhlIGNsaWNrcyBhbmQgZ3JhaW5pbmVzcyBmb3IgbW92aW5nIHNv
dXJjZXMgd2hpY2ggb2NjdXIgb3RoZXJ3aXNlLgogICAgIGRlc2lyZWRBemltdXRoSW5kZXggPSBt
YXgoMCwgZGVzaXJlZEF6aW11dGhJbmRleCk7CkBAIC0xMjgsNyArMTM0LDcgQEAgdm9pZCBIUlRG
UGFubmVyOjpwYW4oZG91YmxlIGRlc2lyZWRBemltdXRoLCBkb3VibGUgZWxldmF0aW9uLCBjb25z
dCBBdWRpb0J1cyogaW4KICAgICB9CiAKICAgICAvLyBUaGlzIGNvZGUgb25seSBydW5zIGFzIGxv
bmcgYXMgdGhlIGNvbnRleHQgaXMgYWxpdmUgYW5kIGFmdGVyIGRhdGFiYXNlIGhhcyBiZWVuIGxv
YWRlZC4KLSAgICBIUlRGRGF0YWJhc2UqIGRhdGFiYXNlID0gSFJURkRhdGFiYXNlTG9hZGVyOjpk
ZWZhdWx0SFJURkRhdGFiYXNlKCk7ICAgIAorICAgIEhSVEZEYXRhYmFzZSogZGF0YWJhc2UgPSBI
UlRGRGF0YWJhc2VMb2FkZXI6OmRlZmF1bHRIUlRGRGF0YWJhc2UoKTsKICAgICBBU1NFUlQoZGF0
YWJhc2UpOwogICAgIGlmICghZGF0YWJhc2UpIHsKICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7
CkBAIC0xNTksNTIgKzE2NSw3MyBAQCB2b2lkIEhSVEZQYW5uZXI6OnBhbihkb3VibGUgZGVzaXJl
ZEF6aW11dGgsIGRvdWJsZSBlbGV2YXRpb24sIGNvbnN0IEF1ZGlvQnVzKiBpbgogICAgIGRvdWJs
ZSBhemltdXRoQmxlbmQ7CiAgICAgaW50IGRlc2lyZWRBemltdXRoSW5kZXggPSBjYWxjdWxhdGVE
ZXNpcmVkQXppbXV0aEluZGV4QW5kQmxlbmQoYXppbXV0aCwgYXppbXV0aEJsZW5kKTsKIAorICAg
IC8vIEluaXRpYWxseSBzbmFwIGF6aW11dGggYW5kIGVsZXZhdGlvbiB2YWx1ZXMgdG8gZmlyc3Qg
dmFsdWVzIGVuY291bnRlcmVkLgorICAgIGlmIChtX2F6aW11dGhJbmRleDEgPT0gVW5pdGlhbGl6
ZWRBemltdXRoKSB7CisgICAgICAgIG1fYXppbXV0aEluZGV4MSA9IGRlc2lyZWRBemltdXRoSW5k
ZXg7CisgICAgICAgIG1fZWxldmF0aW9uMSA9IGVsZXZhdGlvbjsKKyAgICB9CisgICAgaWYgKG1f
YXppbXV0aEluZGV4MiA9PSBVbml0aWFsaXplZEF6aW11dGgpIHsKKyAgICAgICAgbV9hemltdXRo
SW5kZXgyID0gZGVzaXJlZEF6aW11dGhJbmRleDsKKyAgICAgICAgbV9lbGV2YXRpb24yID0gZWxl
dmF0aW9uOworICAgIH0KKworICAgIC8vIENyb3NzLWZhZGUgLyB0cmFuc2l0aW9uIG92ZXIgYSBw
ZXJpb2Qgb2YgYXJvdW5kIDQ1IG1pbGxpc2Vjb25kcy4KKyAgICAvLyBUaGlzIGlzIGFuIGVtcGly
aWNhbCB2YWx1ZSB0dW5lZCB0byBiZSBhIHJlYXNvbmFibGUgdHJhZGUtb2ZmIGJldHdlZW4KKyAg
ICAvLyBzbW9vdGhuZXNzIGFuZCBzcGVlZC4KKyAgICBjb25zdCBkb3VibGUgZmFkZUZyYW1lcyA9
IHNhbXBsZVJhdGUoKSA8PSA0ODAwMCA/IDIwNDggOiA0MDk2OworCisgICAgLy8gQ2hlY2sgZm9y
IGF6aW11dGggYW5kIGVsZXZhdGlvbiBjaGFuZ2VzLCBpbml0aWF0aW5nIGEgY3Jvc3MtZmFkZSBp
ZiBuZWVkZWQuCisgICAgaWYgKCFtX2Nyb3NzZmFkZVggJiYgbV9jcm9zc2ZhZGVTZWxlY3Rpb24g
PT0gQ3Jvc3NmYWRlU2VsZWN0aW9uMSkgeworICAgICAgICBpZiAoZGVzaXJlZEF6aW11dGhJbmRl
eCAhPSBtX2F6aW11dGhJbmRleDEgfHwgZWxldmF0aW9uICE9IG1fZWxldmF0aW9uMSkgeworICAg
ICAgICAgICAgLy8gQ3Jvc3MtZmFkZSBmcm9tIDEgLT4gMgorICAgICAgICAgICAgbV9jcm9zc2Zh
ZGVJbmNyID0gMSAvIGZhZGVGcmFtZXM7CisgICAgICAgICAgICBtX2F6aW11dGhJbmRleDIgPSBk
ZXNpcmVkQXppbXV0aEluZGV4OworICAgICAgICAgICAgbV9lbGV2YXRpb24yID0gZWxldmF0aW9u
OworICAgICAgICB9CisgICAgfQorICAgIGlmIChtX2Nyb3NzZmFkZVggPT0gMSAmJiBtX2Nyb3Nz
ZmFkZVNlbGVjdGlvbiA9PSBDcm9zc2ZhZGVTZWxlY3Rpb24yKSB7CisgICAgICAgIGlmIChkZXNp
cmVkQXppbXV0aEluZGV4ICE9IG1fYXppbXV0aEluZGV4MiB8fCBlbGV2YXRpb24gIT0gbV9lbGV2
YXRpb24yKSB7CisgICAgICAgICAgICAvLyBDcm9zcy1mYWRlIGZyb20gMiAtPiAxCisgICAgICAg
ICAgICBtX2Nyb3NzZmFkZUluY3IgPSAtMSAvIGZhZGVGcmFtZXM7CisgICAgICAgICAgICBtX2F6
aW11dGhJbmRleDEgPSBkZXNpcmVkQXppbXV0aEluZGV4OworICAgICAgICAgICAgbV9lbGV2YXRp
b24xID0gZWxldmF0aW9uOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8gVGhpcyBhbGdvcml0
aG0gY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgd2UgcHJvY2VzcyBpbiBwb3dlci1vZi10d28gc2l6
ZSBjaHVua3MgYXQgbGVhc3QgMTI4LgogICAgIEFTU0VSVCgxVUwgPDwgc3RhdGljX2Nhc3Q8aW50
Pihsb2cyKGZyYW1lc1RvUHJvY2VzcykpID09IGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJU
KGZyYW1lc1RvUHJvY2VzcyA+PSAxMjgpOwotICAgIAorCiAgICAgY29uc3QgdW5zaWduZWQgZnJh
bWVzUGVyU2VnbWVudCA9IDEyODsKICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlNlZ21lbnRz
ID0gZnJhbWVzVG9Qcm9jZXNzIC8gZnJhbWVzUGVyU2VnbWVudDsKIAogICAgIGZvciAodW5zaWdu
ZWQgc2VnbWVudCA9IDA7IHNlZ21lbnQgPCBudW1iZXJPZlNlZ21lbnRzOyArK3NlZ21lbnQpIHsK
LSAgICAgICAgaWYgKG1faXNGaXJzdFJlbmRlcikgewotICAgICAgICAgICAgLy8gU25hcCBleGFj
dGx5IHRvIGRlc2lyZWQgcG9zaXRpb24gKGZpcnN0IHRpbWUgYW5kIGFmdGVyIHJlc2V0KCkpLgot
ICAgICAgICAgICAgbV9hemltdXRoSW5kZXggPSBkZXNpcmVkQXppbXV0aEluZGV4OwotICAgICAg
ICAgICAgbV9pc0ZpcnN0UmVuZGVyID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAvLyBFYWNoIHNlZ21lbnQgcmVuZGVycyB3aXRoIGFuIGF6aW11dGggaW5kZXggY2xvc2Vy
IGJ5IG9uZSB0byB0aGUgZGVzaXJlZCBhemltdXRoIGluZGV4LgotICAgICAgICAgICAgLy8gQmVj
YXVzZSBpbnRlci1hdXJhbCB0aW1lIGRlbGF5IGlzIG1vc3RseSBhIGZhY3RvciBvZiBhemltdXRo
IGFuZCB0aGUgZGVsYXkgaXMgd2hlcmUgdGhlIGNsaWNrcyBhbmQgZ3JhaW5pbmVzcyBjb21lIGZy
b20sCi0gICAgICAgICAgICAvLyB3ZSBkb24ndCBib3RoZXIgc21vb3RoaW5nIHRoZSBlbGV2YXRp
b25zLgotICAgICAgICAgICAgaW50IG51bWJlck9mQXppbXV0aHMgPSBkYXRhYmFzZS0+bnVtYmVy
T2ZBemltdXRocygpOwotICAgICAgICAgICAgYm9vbCB3cmFwID0gd3JhcERpc3RhbmNlKG1fYXpp
bXV0aEluZGV4LCBkZXNpcmVkQXppbXV0aEluZGV4LCBudW1iZXJPZkF6aW11dGhzKTsKLSAgICAg
ICAgICAgIGlmICh3cmFwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXppbXV0aEluZGV4IDwg
ZGVzaXJlZEF6aW11dGhJbmRleCkKLSAgICAgICAgICAgICAgICAgICAgbV9hemltdXRoSW5kZXgg
PSAobV9hemltdXRoSW5kZXggLSAxICsgbnVtYmVyT2ZBemltdXRocykgJSBudW1iZXJPZkF6aW11
dGhzOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fYXppbXV0aEluZGV4ID4gZGVzaXJlZEF6
aW11dGhJbmRleCkKLSAgICAgICAgICAgICAgICAgICAgbV9hemltdXRoSW5kZXggPSAobV9hemlt
dXRoSW5kZXggKyAxKSAlIG51bWJlck9mQXppbXV0aHM7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmIChtX2F6aW11dGhJbmRleCA8IGRlc2lyZWRBemltdXRoSW5kZXgp
Ci0gICAgICAgICAgICAgICAgICAgIG1fYXppbXV0aEluZGV4ID0gKG1fYXppbXV0aEluZGV4ICsg
MSkgJSBudW1iZXJPZkF6aW11dGhzOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fYXppbXV0
aEluZGV4ID4gZGVzaXJlZEF6aW11dGhJbmRleCkKLSAgICAgICAgICAgICAgICAgICAgbV9hemlt
dXRoSW5kZXggPSAobV9hemltdXRoSW5kZXggLSAxICsgbnVtYmVyT2ZBemltdXRocykgJSBudW1i
ZXJPZkF6aW11dGhzOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICAvLyBHZXQgdGhlIEhSVEZLZXJuZWxzIGFuZCBpbnRlcnBvbGF0ZWQgZGVsYXlzLiAgICAKLSAg
ICAgICAgSFJURktlcm5lbCoga2VybmVsTDsKLSAgICAgICAgSFJURktlcm5lbCoga2VybmVsUjsK
LSAgICAgICAgZG91YmxlIGZyYW1lRGVsYXlMOwotICAgICAgICBkb3VibGUgZnJhbWVEZWxheVI7
Ci0gICAgICAgIGRhdGFiYXNlLT5nZXRLZXJuZWxzRnJvbUF6aW11dGhFbGV2YXRpb24oYXppbXV0
aEJsZW5kLCBtX2F6aW11dGhJbmRleCwgZWxldmF0aW9uLCBrZXJuZWxMLCBrZXJuZWxSLCBmcmFt
ZURlbGF5TCwgZnJhbWVEZWxheVIpOwotCi0gICAgICAgIEFTU0VSVChrZXJuZWxMICYmIGtlcm5l
bFIpOwotICAgICAgICBpZiAoIWtlcm5lbEwgfHwgIWtlcm5lbFIpIHsKKyAgICAgICAgLy8gR2V0
IHRoZSBIUlRGS2VybmVscyBhbmQgaW50ZXJwb2xhdGVkIGRlbGF5cy4KKyAgICAgICAgSFJURktl
cm5lbCoga2VybmVsTDE7CisgICAgICAgIEhSVEZLZXJuZWwqIGtlcm5lbFIxOworICAgICAgICBI
UlRGS2VybmVsKiBrZXJuZWxMMjsKKyAgICAgICAgSFJURktlcm5lbCoga2VybmVsUjI7CisgICAg
ICAgIGRvdWJsZSBmcmFtZURlbGF5TDE7CisgICAgICAgIGRvdWJsZSBmcmFtZURlbGF5UjE7Cisg
ICAgICAgIGRvdWJsZSBmcmFtZURlbGF5TDI7CisgICAgICAgIGRvdWJsZSBmcmFtZURlbGF5UjI7
CisgICAgICAgIGRhdGFiYXNlLT5nZXRLZXJuZWxzRnJvbUF6aW11dGhFbGV2YXRpb24oYXppbXV0
aEJsZW5kLCBtX2F6aW11dGhJbmRleDEsIG1fZWxldmF0aW9uMSwga2VybmVsTDEsIGtlcm5lbFIx
LCBmcmFtZURlbGF5TDEsIGZyYW1lRGVsYXlSMSk7CisgICAgICAgIGRhdGFiYXNlLT5nZXRLZXJu
ZWxzRnJvbUF6aW11dGhFbGV2YXRpb24oYXppbXV0aEJsZW5kLCBtX2F6aW11dGhJbmRleDIsIG1f
ZWxldmF0aW9uMiwga2VybmVsTDIsIGtlcm5lbFIyLCBmcmFtZURlbGF5TDIsIGZyYW1lRGVsYXlS
Mik7CisKKyAgICAgICAgYm9vbCBhcmVLZXJuZWxzR29vZCA9IGtlcm5lbEwxICYmIGtlcm5lbFIx
ICYmIGtlcm5lbEwyICYmIGtlcm5lbFIyOworICAgICAgICBBU1NFUlQoYXJlS2VybmVsc0dvb2Qp
OworICAgICAgICBpZiAoIWFyZUtlcm5lbHNHb29kKSB7CiAgICAgICAgICAgICBvdXRwdXRCdXMt
Pnplcm8oKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgQVNTRVJUKGZyYW1lRGVsYXlMIC8gc2FtcGxlUmF0ZSgpIDwgTWF4RGVsYXlUaW1lU2Vjb25k
cyAmJiBmcmFtZURlbGF5UiAvIHNhbXBsZVJhdGUoKSA8IE1heERlbGF5VGltZVNlY29uZHMpOwot
ICAgICAgICAgICAgCisKKyAgICAgICAgQVNTRVJUKGZyYW1lRGVsYXlMMSAvIHNhbXBsZVJhdGUo
KSA8IE1heERlbGF5VGltZVNlY29uZHMgJiYgZnJhbWVEZWxheVIxIC8gc2FtcGxlUmF0ZSgpIDwg
TWF4RGVsYXlUaW1lU2Vjb25kcyk7CisgICAgICAgIEFTU0VSVChmcmFtZURlbGF5TDIgLyBzYW1w
bGVSYXRlKCkgPCBNYXhEZWxheVRpbWVTZWNvbmRzICYmIGZyYW1lRGVsYXlSMiAvIHNhbXBsZVJh
dGUoKSA8IE1heERlbGF5VGltZVNlY29uZHMpOworCisgICAgICAgIC8vIENyb3NzZmFkZSBpbnRl
ci1hdXJhbCBkZWxheXMgYmFzZWQgb24gdHJhbnNpdGlvbnMuCisgICAgICAgIGRvdWJsZSBmcmFt
ZURlbGF5TCA9ICgxIC0gbV9jcm9zc2ZhZGVYKSAqIGZyYW1lRGVsYXlMMSArIG1fY3Jvc3NmYWRl
WCAqIGZyYW1lRGVsYXlMMjsKKyAgICAgICAgZG91YmxlIGZyYW1lRGVsYXlSID0gKDEgLSBtX2Ny
b3NzZmFkZVgpICogZnJhbWVEZWxheVIxICsgbV9jcm9zc2ZhZGVYICogZnJhbWVEZWxheVIyOwor
CiAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBwb2ludGVy
cyBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudC4KICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0gc2Vn
bWVudCAqIGZyYW1lc1BlclNlZ21lbnQ7CiAgICAgICAgIGNvbnN0IGZsb2F0KiBzZWdtZW50U291
cmNlTCA9IHNvdXJjZUwgKyBvZmZzZXQ7CkBAIC0yMTgsOSArMjQ1LDUyIEBAIHZvaWQgSFJURlBh
bm5lcjo6cGFuKGRvdWJsZSBkZXNpcmVkQXppbXV0aCwgZG91YmxlIGVsZXZhdGlvbiwgY29uc3Qg
QXVkaW9CdXMqIGluCiAgICAgICAgIG1fZGVsYXlMaW5lTC5wcm9jZXNzKHNlZ21lbnRTb3VyY2VM
LCBzZWdtZW50RGVzdGluYXRpb25MLCBmcmFtZXNQZXJTZWdtZW50KTsKICAgICAgICAgbV9kZWxh
eUxpbmVSLnByb2Nlc3Moc2VnbWVudFNvdXJjZVIsIHNlZ21lbnREZXN0aW5hdGlvblIsIGZyYW1l
c1BlclNlZ21lbnQpOwogCi0gICAgICAgIC8vIE5vdyBkbyB0aGUgY29udm9sdXRpb25zIGluLXBs
YWNlLgotICAgICAgICBtX2NvbnZvbHZlckwucHJvY2VzcyhrZXJuZWxMLT5mZnRGcmFtZSgpLCBz
ZWdtZW50RGVzdGluYXRpb25MLCBzZWdtZW50RGVzdGluYXRpb25MLCBmcmFtZXNQZXJTZWdtZW50
KTsKLSAgICAgICAgbV9jb252b2x2ZXJSLnByb2Nlc3Moa2VybmVsUi0+ZmZ0RnJhbWUoKSwgc2Vn
bWVudERlc3RpbmF0aW9uUiwgc2VnbWVudERlc3RpbmF0aW9uUiwgZnJhbWVzUGVyU2VnbWVudCk7
CisgICAgICAgIGJvb2wgbmVlZHNDcm9zc2ZhZGluZyA9IG1fY3Jvc3NmYWRlSW5jcjsKKyAgICAg
ICAgCisgICAgICAgIC8vIEhhdmUgdGhlIGNvbnZvbHZlcnMgcmVuZGVyIGRpcmVjdGx5IHRvIHRo
ZSBmaW5hbCBkZXN0aW5hdGlvbiBpZiB3ZSdyZSBub3QgY3Jvc3MtZmFkaW5nLgorICAgICAgICBm
bG9hdCogY29udm9sdXRpb25EZXN0aW5hdGlvbkwxID0gbmVlZHNDcm9zc2ZhZGluZyA/IG1fdGVt
cEwxLmRhdGEoKSA6IHNlZ21lbnREZXN0aW5hdGlvbkw7CisgICAgICAgIGZsb2F0KiBjb252b2x1
dGlvbkRlc3RpbmF0aW9uUjEgPSBuZWVkc0Nyb3NzZmFkaW5nID8gbV90ZW1wUjEuZGF0YSgpIDog
c2VnbWVudERlc3RpbmF0aW9uUjsKKyAgICAgICAgZmxvYXQqIGNvbnZvbHV0aW9uRGVzdGluYXRp
b25MMiA9IG5lZWRzQ3Jvc3NmYWRpbmcgPyBtX3RlbXBMMi5kYXRhKCkgOiBzZWdtZW50RGVzdGlu
YXRpb25MOworICAgICAgICBmbG9hdCogY29udm9sdXRpb25EZXN0aW5hdGlvblIyID0gbmVlZHND
cm9zc2ZhZGluZyA/IG1fdGVtcFIyLmRhdGEoKSA6IHNlZ21lbnREZXN0aW5hdGlvblI7CisKKyAg
ICAgICAgLy8gTm93IGRvIHRoZSBjb252b2x1dGlvbnMuCisgICAgICAgIC8vIE5vdGUgdGhhdCB3
ZSBhdm9pZCBkb2luZyBjb252b2x1dGlvbnMgb24gYm90aCBzZXRzIG9mIGNvbnZvbHZlcnMgaWYg
d2UncmUgbm90IGN1cnJlbnRseSBjcm9zcy1mYWRpbmcuCisgICAgICAgIAorICAgICAgICBpZiAo
bV9jcm9zc2ZhZGVTZWxlY3Rpb24gPT0gQ3Jvc3NmYWRlU2VsZWN0aW9uMSB8fCBuZWVkc0Nyb3Nz
ZmFkaW5nKSB7CisgICAgICAgICAgICBtX2NvbnZvbHZlckwxLnByb2Nlc3Moa2VybmVsTDEtPmZm
dEZyYW1lKCksIHNlZ21lbnREZXN0aW5hdGlvbkwsIGNvbnZvbHV0aW9uRGVzdGluYXRpb25MMSwg
ZnJhbWVzUGVyU2VnbWVudCk7CisgICAgICAgICAgICBtX2NvbnZvbHZlclIxLnByb2Nlc3Moa2Vy
bmVsUjEtPmZmdEZyYW1lKCksIHNlZ21lbnREZXN0aW5hdGlvblIsIGNvbnZvbHV0aW9uRGVzdGlu
YXRpb25SMSwgZnJhbWVzUGVyU2VnbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9j
cm9zc2ZhZGVTZWxlY3Rpb24gPT0gQ3Jvc3NmYWRlU2VsZWN0aW9uMiB8fCBuZWVkc0Nyb3NzZmFk
aW5nKSB7CisgICAgICAgICAgICBtX2NvbnZvbHZlckwyLnByb2Nlc3Moa2VybmVsTDItPmZmdEZy
YW1lKCksIHNlZ21lbnREZXN0aW5hdGlvbkwsIGNvbnZvbHV0aW9uRGVzdGluYXRpb25MMiwgZnJh
bWVzUGVyU2VnbWVudCk7CisgICAgICAgICAgICBtX2NvbnZvbHZlclIyLnByb2Nlc3Moa2VybmVs
UjItPmZmdEZyYW1lKCksIHNlZ21lbnREZXN0aW5hdGlvblIsIGNvbnZvbHV0aW9uRGVzdGluYXRp
b25SMiwgZnJhbWVzUGVyU2VnbWVudCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
IChuZWVkc0Nyb3NzZmFkaW5nKSB7CisgICAgICAgICAgICAvLyBBcHBseSBsaW5lYXIgY3Jvc3Mt
ZmFkZS4KKyAgICAgICAgICAgIGZsb2F0IHggPSBtX2Nyb3NzZmFkZVg7CisgICAgICAgICAgICBm
bG9hdCBpbmNyID0gbV9jcm9zc2ZhZGVJbmNyOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGZyYW1lc1BlclNlZ21lbnQ7ICsraSkgeworICAgICAgICAgICAgICAgIHNlZ21l
bnREZXN0aW5hdGlvbkxbaV0gPSAoMSAtIHgpICogY29udm9sdXRpb25EZXN0aW5hdGlvbkwxW2ld
ICsgeCAqIGNvbnZvbHV0aW9uRGVzdGluYXRpb25MMltpXTsKKyAgICAgICAgICAgICAgICBzZWdt
ZW50RGVzdGluYXRpb25SW2ldID0gKDEgLSB4KSAqIGNvbnZvbHV0aW9uRGVzdGluYXRpb25SMVtp
XSArIHggKiBjb252b2x1dGlvbkRlc3RpbmF0aW9uUjJbaV07CisgICAgICAgICAgICAgICAgeCAr
PSBpbmNyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVXBkYXRlIGNyb3NzLWZhZGUg
dmFsdWUgZnJvbSBsb2NhbC4KKyAgICAgICAgICAgIG1fY3Jvc3NmYWRlWCA9IHg7CisKKyAgICAg
ICAgICAgIGlmIChtX2Nyb3NzZmFkZUluY3IgPiAwICYmIGZhYnMobV9jcm9zc2ZhZGVYIC0gMSkg
PCBtX2Nyb3NzZmFkZUluY3IpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBmdWxseSBtYWRl
IHRoZSBjcm9zc2ZhZGUgdHJhbnNpdGlvbiBmcm9tIDEgLT4gMi4KKyAgICAgICAgICAgICAgICBt
X2Nyb3NzZmFkZVNlbGVjdGlvbiA9IENyb3NzZmFkZVNlbGVjdGlvbjI7CisgICAgICAgICAgICAg
ICAgbV9jcm9zc2ZhZGVYID0gMTsKKyAgICAgICAgICAgICAgICBtX2Nyb3NzZmFkZUluY3IgPSAw
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fY3Jvc3NmYWRlSW5jciA8IDAgJiYg
ZmFicyhtX2Nyb3NzZmFkZVgpIDwgLW1fY3Jvc3NmYWRlSW5jcikgeworICAgICAgICAgICAgICAg
IC8vIFdlJ3ZlIGZ1bGx5IG1hZGUgdGhlIGNyb3NzZmFkZSB0cmFuc2l0aW9uIGZyb20gMiAtPiAx
LgorICAgICAgICAgICAgICAgIG1fY3Jvc3NmYWRlU2VsZWN0aW9uID0gQ3Jvc3NmYWRlU2VsZWN0
aW9uMTsKKyAgICAgICAgICAgICAgICBtX2Nyb3NzZmFkZVggPSAwOworICAgICAgICAgICAgICAg
IG1fY3Jvc3NmYWRlSW5jciA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuaAppbmRleCBhZDZm
NzlhMDg0NTU2ODhhN2IzZDQyYTA2OTQwMDZiNzdjZGEzMzEyLi5mNWFmMWQxNTI5YmQ0OGYyMzA3
ZTdmZWJjY2I3M2EwMTZhOTQ1MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGUGFubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURlBhbm5lci5oCkBAIC00NCwyMyArNDQsNTggQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXpl
X3QgZmZ0U2l6ZUZvclNhbXBsZVJhdGUoZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICBmbG9hdCBz
YW1wbGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9Ci0gICAgCisKIHByaXZh
dGU6CiAgICAgLy8gR2l2ZW4gYW4gYXppbXV0aCBhbmdsZSBpbiB0aGUgcmFuZ2UgLTE4MCAtPiAr
MTgwLCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGF6aW11dGggaW5kZXggZm9yIHRoZSBkYXRh
YmFzZSwKICAgICAvLyBhbmQgYXppbXV0aEJsZW5kIHdoaWNoIGlzIGFuIGludGVycG9sYXRpb24g
dmFsdWUgZnJvbSAwIC0+IDEuCiAgICAgaW50IGNhbGN1bGF0ZURlc2lyZWRBemltdXRoSW5kZXhB
bmRCbGVuZChkb3VibGUgYXppbXV0aCwgZG91YmxlJiBhemltdXRoQmxlbmQpOwogCiAgICAgZmxv
YXQgbV9zYW1wbGVSYXRlOwotICAgIAotICAgIC8vIG1faXNGaXJzdFJlbmRlciBhbmQgbV9hemlt
dXRoSW5kZXggYXJlIHVzZWQgdG8gYXZvaWQgaGFyc2hseSBjaGFuZ2luZyBmcm9tIHJlbmRlcmlu
ZyBhdCBvbmUgYXppbXV0aCBhbmdsZSB0byBhbm90aGVyIGFuZ2xlIHZlcnkgZmFyIGF3YXkuCi0g
ICAgLy8gQ2hhbmdpbmcgdGhlIGF6aW11dGggZ3JhZHVhbGx5IHByb2R1Y2VzIGEgc21vb3RoZXIg
c291bmQuCi0gICAgYm9vbCBtX2lzRmlyc3RSZW5kZXI7Ci0gICAgaW50IG1fYXppbXV0aEluZGV4
OwotCi0gICAgRkZUQ29udm9sdmVyIG1fY29udm9sdmVyTDsKLSAgICBGRlRDb252b2x2ZXIgbV9j
b252b2x2ZXJSOworCisgICAgLy8gV2UgbWFpbnRhaW4gdHdvIHNldHMgb2YgY29udm9sdmVycyBm
b3Igc21vb3RoIGNyb3NzLWZhZGVkIGludGVycG9sYXRpb25zIHdoZW4KKyAgICAvLyB0aGVuIGF6
aW11dGggYW5kIGVsZXZhdGlvbiBhcmUgZHluYW1pY2FsbHkgY2hhbmdpbmcuCisgICAgLy8gV2hl
biB0aGUgYXppbXV0aCBhbmQgZWxldmF0aW9uIGFyZSBub3QgY2hhbmdpbmcsIHdlIHNpbXBseSBw
cm9jZXNzIHdpdGggb25lIG9mIHRoZSB0d28gc2V0cy4KKyAgICAvLyBJbml0aWFsbHkgd2UgdXNl
IENyb3NzZmFkZVNlbGVjdGlvbjEgY29ycmVzcG9uZGluZyB0byBtX2NvbnZvbHZlckwxIGFuZCBt
X2NvbnZvbHZlclIxLgorICAgIC8vIFdoZW5ldmVyIHRoZSBhemltdXRoIG9yIGVsZXZhdGlvbiBj
aGFuZ2VzLCBhIGNyb3NzZmFkZSBpcyBpbml0aWF0ZWQgdG8gdHJhbnNpdGlvbgorICAgIC8vIHRv
IHRoZSBuZXcgcG9zaXRpb24uIFNvIGlmIHdlJ3JlIGN1cnJlbnRseSBwcm9jZXNzaW5nIHdpdGgg
Q3Jvc3NmYWRlU2VsZWN0aW9uMSwgdGhlbgorICAgIC8vIHdlIHRyYW5zaXRpb24gdG8gQ3Jvc3Nm
YWRlU2VsZWN0aW9uMiAoYW5kIHZpY2UgdmVyc2EpLgorICAgIC8vIElmIHdlJ3JlIGluIHRoZSBt
aWRkbGUgb2YgYSB0cmFuc2l0aW9uLCB0aGVuIHdlIHdhaXQgdW50aWwgaXQgaXMgY29tcGxldGUg
YmVmb3JlCisgICAgLy8gaW5pdGlhdGluZyBhIG5ldyB0cmFuc2l0aW9uLgorCisgICAgLy8gU2Vs
ZWN0cyBlaXRoZXIgdGhlIGNvbnZvbHZlciBzZXQgKG1fY29udm9sdmVyTDEsIG1fY29udm9sdmVy
UjEpIG9yIChtX2NvbnZvbHZlckwyLCBtX2NvbnZvbHZlclIyKS4KKyAgICBlbnVtIENyb3NzZmFk
ZVNlbGVjdGlvbiB7CisgICAgICAgIENyb3NzZmFkZVNlbGVjdGlvbjEsCisgICAgICAgIENyb3Nz
ZmFkZVNlbGVjdGlvbjIKKyAgICB9OworCisgICAgQ3Jvc3NmYWRlU2VsZWN0aW9uIG1fY3Jvc3Nm
YWRlU2VsZWN0aW9uOworCisgICAgLy8gYXppbXV0aC9lbGV2YXRpb24gZm9yIENyb3NzZmFkZVNl
bGVjdGlvbjEuCisgICAgaW50IG1fYXppbXV0aEluZGV4MTsKKyAgICBkb3VibGUgbV9lbGV2YXRp
b24xOworCisgICAgLy8gYXppbXV0aC9lbGV2YXRpb24gZm9yIENyb3NzZmFkZVNlbGVjdGlvbjIu
CisgICAgaW50IG1fYXppbXV0aEluZGV4MjsKKyAgICBkb3VibGUgbV9lbGV2YXRpb24yOworCisg
ICAgLy8gQSBjcm9zc2ZhZGUgdmFsdWUgMCA8PSBtX2Nyb3NzZmFkZVggPD0gMS4KKyAgICBmbG9h
dCBtX2Nyb3NzZmFkZVg7CisKKyAgICAvLyBQZXItc2FtcGxlLWZyYW1lIGNyb3NzZmFkZSB2YWx1
ZSBpbmNyZW1lbnQuCisgICAgZmxvYXQgbV9jcm9zc2ZhZGVJbmNyOworCisgICAgRkZUQ29udm9s
dmVyIG1fY29udm9sdmVyTDE7CisgICAgRkZUQ29udm9sdmVyIG1fY29udm9sdmVyUjE7CisgICAg
RkZUQ29udm9sdmVyIG1fY29udm9sdmVyTDI7CisgICAgRkZUQ29udm9sdmVyIG1fY29udm9sdmVy
UjI7CisKICAgICBEZWxheURTUEtlcm5lbCBtX2RlbGF5TGluZUw7CiAgICAgRGVsYXlEU1BLZXJu
ZWwgbV9kZWxheUxpbmVSOworCisgICAgQXVkaW9GbG9hdEFycmF5IG1fdGVtcEwxOworICAgIEF1
ZGlvRmxvYXRBcnJheSBtX3RlbXBSMTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV90ZW1wTDI7Cisg
ICAgQXVkaW9GbG9hdEFycmF5IG1fdGVtcFIyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>
<flag name="review"
          id="125657"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>