<?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>133179</bug_id>
          
          <creation_ts>2014-05-22 08:07:55 -0700</creation_ts>
          <short_desc>REGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com</short_desc>
          <delta_ts>2014-05-23 13:33:18 -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>Animations</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.9</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.jtechcommunications.com</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>pmilvich</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010978</commentid>
    <comment_count>0</comment_count>
    <who name="">pmilvich</who>
    <bug_when>2014-05-22 08:07:55 -0700</bug_when>
    <thetext>In the nightly build for webkit the 3d portion of the animation on the home page of http://www.jtechcommunications.com suffers from bad performance. This animation is nice and smooth in Safari 7.0.3.

The animation is using the rekapi library (http://rekapi.com) to dynamically create the css animation code and inject it as a style. I suspect it&apos;s related to the latest work on the JIT css.

Disabling the dynamic css generation and simply setting the values speeds it up on the nightly build, though it is still slower than Safari 7.0.3 w/o the css. (w/o access to the code you can get the non-css generating version by setting the user agent to be chrome - we only had the css version enabled on webkit for safari)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011027</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-22 11:41:25 -0700</bug_when>
    <thetext>I see WebProcess use a lot of CPU time, and frequently pause (sometimes for a second or so).

Regressing this, it looks like &lt;http://trac.webkit.org/r155977&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011079</commentid>
    <comment_count>2</comment_count>
      <attachid>231920</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-22 16:54:49 -0700</bug_when>
    <thetext>Created attachment 231920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011080</commentid>
    <comment_count>3</comment_count>
      <attachid>231920</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-22 16:56:34 -0700</bug_when>
    <thetext>Comment on attachment 231920
Patch

Very sad :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011081</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-22 16:58:38 -0700</bug_when>
    <thetext>https://trac.webkit.org/r169229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011304</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-23 11:06:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; https://trac.webkit.org/r169229

This appears to have broken the following tests on the WK2 bots:

compositing/tiling/rotated-tiled-clamped.html
compositing/tiling/rotated-tiled-preserve3d-clamped.html

Here are the results: http://build.webkit.org/results/Apple%20Mavericks%20Release%20WK2%20(Tests)/r169229%20(5896)/results.html

Here is the build history that shows it regressed after this revision: http://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK2%20(Tests)?numbuilds=50</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011311</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-23 11:13:57 -0700</bug_when>
    <thetext>I&apos;ll rebaseline those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011339</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-23 13:33:18 -0700</bug_when>
    <thetext>https://trac.webkit.org/r169278</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231920</attachid>
            <date>2014-05-22 16:54:49 -0700</date>
            <delta_ts>2014-05-22 16:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133179-20140522165425.patch</filename>
            <type>text/plain</type>
            <size>36126</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc1ZDg4NmVmYTMzM2Nk
Y2RhZThjZTFiZDcwM2IxYjIxYThkYTBjNC4uMDYyMmM4ODBmM2ZhMzkwZTNhZThhYzFlOWQzZWE3
NGUxMmIwMTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA1LTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIxNTU5NzcpOiBWZXJ5IHN0dXR0ZXJ5IDNEIGNzcyBhbmltYXRpb24gb24ganRlY2hjb21tdW5p
Y2F0aW9ucy5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMzE3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY4NjQ2NjY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IGNvZGUgYWRkZWQg
aW4gcjE1NTk3NyB0byB0cnkgdG8gcGljayBhIGdvb2QgY29udGVudHNTY2FsZSBmb3IgbGF5ZXJz
CisgICAgICAgIGJhc2VkIG9uIGEgcm9vdC1yZWxhdGl2ZSB0cmFuc2Zvcm0uIFRoaXMgcmVzdWx0
ZWQgaW4gcGFnZXMgd2l0aCB0b28gbXVjaCAKKyAgICAgICAgYmFja2luZyBzdG9yZSwgYW5kIHRv
byBtYW55IGNhc2VzIHdoZXJlIGxheWVycyByZXBhaW50ZWQgZHVyaW5nIGFuaW1hdGlvbnMsCisg
ICAgICAgIGNhdXNpbmcgc3R1dHRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OkdyYXBoaWNzTGF5ZXJDQSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6
OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c09wYXF1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBv
aW50cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFu
aW1hdGlvbktleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVw
ZGF0ZUNvbnRlbnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2xhbXBlZENvbnRlbnRzU2Nh
bGVGb3JTY2FsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjptYXhTY2FsZUZyb21UcmFu
c2Zvcm0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVSb290UmVsYXRpdmVTY2FsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OmdldFRyYW5zZm9ybUZyb21BbmltYXRpb25zV2l0aE1heFNjYWxlSW1wYWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aDoKKwogMjAxNC0wNS0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEdhcmJhZ2Ugd2hlbiBydWJiZXItYmFuZGluZyBhdCB0aGUgcmlnaHQgZWRnZSBvZiBhIHBh
Z2Ugem9vbWVkIHRvIG5vbi1pbnRlZ3JhbCBzY2FsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg0ZjI5
ZTlmNzdkMDUxODE0OTFiYTc1OGM4OGRhYTk1MTliZWI1NGEuLmUxZjU3MTk5ODEyODRmNmE3Nzkz
MDRhZTA0MDVjMDY1NjE3ZTJhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtODcsMjIgKzg3LDYgQEAg
c3RhdGljIGlubGluZSBib29sIGlzSW50ZWdyYWwoZmxvYXQgdmFsdWUpCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4odmFsdWUpID09IHZhbHVlOwogfQogCi1zdGF0aWMgZmxvYXQgY2xhbXBl
ZENvbnRlbnRzU2NhbGVGb3JTY2FsZShmbG9hdCByb290UmVsYXRpdmVTY2FsZSwgZmxvYXQgZml4
ZWRTY2FsZSkKLXsKLSAgICAvLyBUbyBhdm9pZCB0b28gbWFueSByZXBhaW50cyB3aGVuIHRoZSBy
b290LXJlbGF0aXZlIHNjYWxlIG9mIGxheWVycyBjaGFuZ2VzLCByb3VuZAotICAgIC8vIHRoZSBz
Y2FsZSB0byB0aGUgbmVhcmVzdCAwLjI1LgotICAgIGNvbnN0IGZsb2F0IHJvdW5kaW5nRmFjdG9y
ID0gNDsKLSAgICBmbG9hdCBzY2FsZSA9IHJvdW5kZihyb290UmVsYXRpdmVTY2FsZSAqIHJvdW5k
aW5nRmFjdG9yKSAvIHJvdW5kaW5nRmFjdG9yOwotCi0gICAgc2NhbGUgKj0gZml4ZWRTY2FsZTsK
LSAgICAKLSAgICAvLyBEZWZpbmUgc29tZSByZWFzb25hYmxlIGxpbWl0cy4KLSAgICBjb25zdCBm
bG9hdCBtYXhTY2FsZSA9IDg7Ci0gICAgY29uc3QgZmxvYXQgbWluU2NhbGUgPSAwLjAxZjsKLQot
ICAgIHJldHVybiBzdGQ6Om1heChtaW5TY2FsZSwgc3RkOjptaW4oc2NhbGUsIG1heFNjYWxlKSk7
Ci19Ci0KIHN0YXRpYyBib29sIGlzVHJhbnNmb3JtVHlwZVRyYW5zZm9ybWF0aW9uTWF0cml4KFRy
YW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1UeXBlKQogewogICAgIHN3
aXRjaCAodHJhbnNmb3JtVHlwZSkgewpAQCAtMjg3LDE4ICsyNzEsNiBAQCBzdGF0aWMgYm9vbCBh
bmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2
YWx1ZUxpc3QsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgZmxvYXQgbWF4U2NhbGVG
cm9tVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQotewotICAgIGlmICh0
LmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgVHJh
bnNmb3JtYXRpb25NYXRyaXg6OkRlY29tcG9zZWQ0VHlwZSBkZWNvbXBvc2VEYXRhOwotICAgIGlm
ICghdC5kZWNvbXBvc2U0KGRlY29tcG9zZURhdGEpKQotICAgICAgICByZXR1cm4gMTsKLQotICAg
IHJldHVybiBzdGQ6Om1heChmYWJzZihuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRlY29tcG9zZURh
dGEuc2NhbGVYKSksIGZhYnNmKG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZGVjb21wb3NlRGF0YS5z
Y2FsZVkpKSk7Ci19Ci0KICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpIHx8ICFBU1NFUlRfRElTQUJM
RUQKIHN0YXRpYyBpbmxpbmUgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9u
cygpCiB7CkBAIC0zNjYsNyArMzM4LDYgQEAgR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVy
Q0EoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGll
bnQpCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKICAgICAs
IG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIoZmFsc2UpCi0gICAgLCBtX3Jvb3RSZWxhdGl2ZVNj
YWxlRmFjdG9yKDEpCiAgICAgLCBtX3VuY29tbWl0dGVkQ2hhbmdlcygwKQogICAgICwgbV9pc0Nv
bW1pdHRpbmdDaGFuZ2VzKGZhbHNlKQogewpAQCAtMTAyNCw4ICs5OTUsNyBAQCBGbG9hdFBvaW50
IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UoZmxvYXQmIHBh
Z2VTY2FsZSkgY29ucwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZShjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIFRyYW5zZm9ybVN0YXRlIHN0YXRl
KFRyYW5zZm9ybVN0YXRlOjpVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiwgRmxvYXRR
dWFkKGNsaXBSZWN0KSk7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcm9vdFJlbGF0aXZlVHJh
bnNmb3JtOwotICAgIHJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoQ29tbWl0U3RhdGUoKSwgc3RhdGUs
IHJvb3RSZWxhdGl2ZVRyYW5zZm9ybSk7CisgICAgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhDb21t
aXRTdGF0ZSgpLCBzdGF0ZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKQEAgLTExNjMsMzEgKzExMzMsOSBAQCBGbG9h
dFJlY3QgR3JhcGhpY3NMYXllckNBOjpjb21wdXRlVmlzaWJsZVJlY3QoVHJhbnNmb3JtU3RhdGUm
IHN0YXRlLCBDb21wdXRlVmlzaQogICAgIHJldHVybiBjbGlwUmVjdEZvclNlbGY7CiB9CiAKLXZv
aWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVSb290UmVsYXRpdmVTY2FsZShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCogdHJhbnNmb3JtRnJvbVJvb3QpCi17Ci0gICAgaWYgKCF0cmFuc2Zvcm1Gcm9tUm9v
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZmxvYXQgcm9vdFJlbGF0aXZlU2NhbGVGYWN0b3I7
Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF4U2NhbGVJbXBhY3RUcmFuc2Zvcm07Ci0gICAg
Ym9vbCBoYXZlVHJhbnNmb3JtQW5pbWF0aW9uID0gZ2V0VHJhbnNmb3JtRnJvbUFuaW1hdGlvbnNX
aXRoTWF4U2NhbGVJbXBhY3QoKnRyYW5zZm9ybUZyb21Sb290LCBtYXhTY2FsZUltcGFjdFRyYW5z
Zm9ybSwgcm9vdFJlbGF0aXZlU2NhbGVGYWN0b3IpOwotICAgIGlmIChoYXZlVHJhbnNmb3JtQW5p
bWF0aW9uKQotICAgICAgICB0cmFuc2Zvcm1Gcm9tUm9vdC0+bXVsdGlwbHkobWF4U2NhbGVJbXBh
Y3RUcmFuc2Zvcm0pOwotICAgIGVsc2UgaWYgKCFhcHBsaWVzUGFnZVNjYWxlKCkpIHsKLSAgICAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdW5hbmltYXRlZFRyYW5zZm9ybSA9IHRoaXMtPmxheWVy
VHJhbnNmb3JtKG1fcG9zaXRpb24pOwotICAgICAgICB0cmFuc2Zvcm1Gcm9tUm9vdC0+bXVsdGlw
bHkodW5hbmltYXRlZFRyYW5zZm9ybSk7Ci0gICAgICAgIHJvb3RSZWxhdGl2ZVNjYWxlRmFjdG9y
ID0gbWF4U2NhbGVGcm9tVHJhbnNmb3JtKCp0cmFuc2Zvcm1Gcm9tUm9vdCk7Ci0gICAgfQotCi0g
ICAgaWYgKHJvb3RSZWxhdGl2ZVNjYWxlRmFjdG9yICE9IG1fcm9vdFJlbGF0aXZlU2NhbGVGYWN0
b3IpIHsKLSAgICAgICAgbV9yb290UmVsYXRpdmVTY2FsZUZhY3RvciA9IHJvb3RSZWxhdGl2ZVNj
YWxlRmFjdG9yOwotICAgICAgICBtX3VuY29tbWl0dGVkQ2hhbmdlcyB8PSBDb250ZW50c1NjYWxl
Q2hhbmdlZCB8IENvbnRlbnRzT3BhcXVlQ2hhbmdlZDsKLSAgICB9Ci19Ci0KIC8vIHJvb3RSZWxh
dGl2ZVRyYW5zZm9ybUZvclNjYWxpbmcgaXMgYSB0cmFuc2Zvcm0gZnJvbSB0aGUgcm9vdCwgYnV0
IGZvciBsYXllcnMgd2l0aCB0cmFuc2Zvcm0gYW5pbWF0aW9ucywgaXQgY2hlcnJ5LXBpY2tlZCB0
aGUgc3RhdGUgb2YgdGhlCiAvLyBhbmltYXRpb24gdGhhdCBjb250cmlidXRlcyBtYXhpbWFsbHkg
dG8gdGhlIHNjYWxlIChvbiBldmVyeSBsYXllciB3aXRoIGFuaW1hdGlvbnMgZG93biB0aGUgaGll
cmFyY2h5KS4KLXZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNv
bnN0IENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJhbnNmb3JtU3RhdGUmIHN0YXRl
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcm9vdFJlbGF0aXZlVHJhbnNmb3JtRm9yU2Nh
bGluZywgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJl
bGF0aXZlVG9CYXNlLCBib29sIGFmZmVjdGVkQnlQYWdlU2NhbGUpCit2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhjb25zdCBDb21taXRTdGF0ZSYgY29tbWl0U3Rh
dGUsIGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBzdGF0ZSwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlLCBib29sIGFmZmVjdGVkQnlQ
YWdlU2NhbGUpCiB7CiAgICAgVHJhbnNmb3JtU3RhdGUgbG9jYWxTdGF0ZSA9IHN0YXRlOwogICAg
IENvbW1pdFN0YXRlIGNoaWxkQ29tbWl0U3RhdGUgPSBjb21taXRTdGF0ZTsKQEAgLTEyMzUsMTAg
KzExODMsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhj
b25zdCBDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUsIGNvbgogICAgIGlmIChhZmZlY3RlZEJ5UGFn
ZVNjYWxlKQogICAgICAgICBiYXNlUmVsYXRpdmVQb3NpdGlvbiArPSBtX3Bvc2l0aW9uOwogICAg
IAotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybUZyb21Sb290ID0gcm9vdFJlbGF0
aXZlVHJhbnNmb3JtRm9yU2NhbGluZzsKICAgICB7CiAgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxi
b29sPiBjb21taXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29tbWl0dGluZ0NoYW5nZXMsIHRydWUp
OwotICAgICAgICBjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMoY2hpbGRDb21taXRT
dGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVsYXRpdmVQb3NpdGlvbiwgb2xkVmlzaWJsZVJl
Y3QsICZ0cmFuc2Zvcm1Gcm9tUm9vdCk7CisgICAgICAgIGNvbW1pdExheWVyQ2hhbmdlc0JlZm9y
ZVN1YmxheWVycyhjaGlsZENvbW1pdFN0YXRlLCBwYWdlU2NhbGVGYWN0b3IsIGJhc2VSZWxhdGl2
ZVBvc2l0aW9uLCBvbGRWaXNpYmxlUmVjdCk7CiAgICAgfQogCiAgICAgaWYgKGlzUnVubmluZ1Ry
YW5zZm9ybUFuaW1hdGlvbigpKSB7CkBAIC0xMjU2LDExICsxMjAzLDExIEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNvbnN0IENvbW1pdFN0YXRlJiBjb21t
aXRTdGF0ZSwgY29uCiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1DaGlsZHJl
bjsgKytpKSB7CiAgICAgICAgIEdyYXBoaWNzTGF5ZXJDQSogY3VyQ2hpbGQgPSBzdGF0aWNfY2Fz
dDxHcmFwaGljc0xheWVyQ0EqPihjaGlsZExheWVyc1tpXSk7Ci0gICAgICAgIGN1ckNoaWxkLT5y
ZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNoaWxkQ29tbWl0U3RhdGUsIGxvY2FsU3RhdGUsIHRyYW5z
Zm9ybUZyb21Sb290LCBwYWdlU2NhbGVGYWN0b3IsIGJhc2VSZWxhdGl2ZVBvc2l0aW9uLCBhZmZl
Y3RlZEJ5UGFnZVNjYWxlKTsKKyAgICAgICAgY3VyQ2hpbGQtPnJlY3Vyc2l2ZUNvbW1pdENoYW5n
ZXMoY2hpbGRDb21taXRTdGF0ZSwgbG9jYWxTdGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVs
YXRpdmVQb3NpdGlvbiwgYWZmZWN0ZWRCeVBhZ2VTY2FsZSk7CiAgICAgfQogCiAgICAgaWYgKG1f
cmVwbGljYUxheWVyKQotICAgICAgICBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ0EqPihtX3Jl
cGxpY2FMYXllciktPnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoY2hpbGRDb21taXRTdGF0ZSwgbG9j
YWxTdGF0ZSwgdHJhbnNmb3JtRnJvbVJvb3QsIHBhZ2VTY2FsZUZhY3RvciwgYmFzZVJlbGF0aXZl
UG9zaXRpb24sIGFmZmVjdGVkQnlQYWdlU2NhbGUpOworICAgICAgICBzdGF0aWNfY2FzdDxHcmFw
aGljc0xheWVyQ0EqPihtX3JlcGxpY2FMYXllciktPnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoY2hp
bGRDb21taXRTdGF0ZSwgbG9jYWxTdGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVsYXRpdmVQ
b3NpdGlvbiwgYWZmZWN0ZWRCeVBhZ2VTY2FsZSk7CiAKICAgICBpZiAobV9tYXNrTGF5ZXIpCiAg
ICAgICAgIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KG1fbWFza0xheWVyKS0+Y29tbWl0
TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMoY2hpbGRDb21taXRTdGF0ZSk7CkBAIC0xMzE3LDcg
KzEyNjQsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyU2hvdWxkVGVt
cG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhQbGF0Zm9ybQogICAgIHJldHVybiBjbGllbnQoKS5z
aG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKHRoaXMpOwogfQogCi12b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRl
JiBjb21taXRTdGF0ZSwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBGbG9hdFBvaW50JiBw
b3NpdGlvblJlbGF0aXZlVG9CYXNlLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0LCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCogdHJhbnNmb3JtRnJvbVJvb3QpCit2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21t
aXRTdGF0ZSwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
blJlbGF0aXZlVG9CYXNlLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0KQogewogICAg
ICsrY29tbWl0U3RhdGUudHJlZURlcHRoOwogICAgIGlmIChtX3N0cnVjdHVyYWxMYXllcikKQEAg
LTEzMjcsOSArMTI3NCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNCZWZvcmVTdWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlCiAgICAgICAgIC8vIEVu
c3VyZSB0aGF0IHdlIGNhcCBsYXllciBkZXB0aCBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1
YmxheWVycygpLgogICAgICAgICBpZiAoY29tbWl0U3RhdGUudHJlZURlcHRoID4gY01heExheWVy
VHJlZURlcHRoKQogICAgICAgICAgICAgbV91bmNvbW1pdHRlZENoYW5nZXMgfD0gQ2hpbGRyZW5D
aGFuZ2VkOwotCi0gICAgICAgIHVwZGF0ZVJvb3RSZWxhdGl2ZVNjYWxlKHRyYW5zZm9ybUZyb21S
b290KTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJvb2wgbmVlZFRpbGVkTGF5ZXIg
PSByZXF1aXJlc1RpbGVkTGF5ZXIocGFnZVNjYWxlRmFjdG9yKTsKQEAgLTEzOTksOSArMTM0Myw2
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXll
cnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2Vz
ICYgQW5pbWF0aW9uQ2hhbmdlZCkKICAgICAgICAgdXBkYXRlQW5pbWF0aW9ucygpOwogCi0gICAg
Ly8gQWZ0ZXIgY29tbWl0dGluZyBhbmltYXRpb25zLCBzZWUgaWYgd2UgbmVlZCB0byBhZGp1c3Qg
Y29udGVudHNTY2FsZSBhY2NvcmRpbmdseS4KLSAgICB1cGRhdGVSb290UmVsYXRpdmVTY2FsZSh0
cmFuc2Zvcm1Gcm9tUm9vdCk7Ci0KICAgICAvLyBVcGRhdGluZyB0aGUgY29udGVudHMgc2NhbGUg
Y2FuIGNhdXNlIHBhcnRzIG9mIHRoZSBsYXllciB0byBiZSBpbnZhbGlkYXRlZCwKICAgICAvLyBz
byBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBjb250ZW50cyBzY2FsZSBiZWZvcmUgdXBkYXRpbmcg
dGhlIGRpcnR5IHJlY3RzLgogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRz
U2NhbGVDaGFuZ2VkKQpAQCAtMTY1OSw3ICsxNjAwLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzT3BhcXVlKGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKIHsKICAgICBib29s
IGNvbnRlbnRzT3BhcXVlID0gbV9jb250ZW50c09wYXF1ZTsKICAgICBpZiAoY29udGVudHNPcGFx
dWUpIHsKLSAgICAgICAgZmxvYXQgY29udGVudHNTY2FsZSA9IGNsYW1wZWRDb250ZW50c1NjYWxl
Rm9yU2NhbGUobV9yb290UmVsYXRpdmVTY2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yICogZGV2
aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUgPSBwYWdlU2Nh
bGVGYWN0b3IgKiBkZXZpY2VTY2FsZUZhY3RvcigpOwogICAgICAgICBpZiAoIWlzSW50ZWdyYWwo
Y29udGVudHNTY2FsZSkgJiYgIW1fY2xpZW50LnBhaW50c09wYXF1ZWx5QXROb25JbnRlZ3JhbFNj
YWxlcyh0aGlzKSkKICAgICAgICAgICAgIGNvbnRlbnRzT3BhcXVlID0gZmFsc2U7CiAgICAgfQpA
QCAtMjE2MCw4ICsyMTAxLDYgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNz
TGF5ZXJDQTo6cmVwbGljYXRlZExheWVyUm9vdChSZXBsaWNhU3RhdGUmIHIKIAogdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogewotICAgIEhhc2hTZXQ8U3RyaW5nPiBm
aW5pc2hlZEFuaW1hdGlvbnM7Ci0KICAgICBpZiAobV9hbmltYXRpb25zVG9Qcm9jZXNzLnNpemUo
KSkgewogICAgICAgICBBbmltYXRpb25zVG9Qcm9jZXNzTWFwOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBtX2FuaW1hdGlvbnNUb1Byb2Nlc3MuZW5kKCk7CiAgICAgICAgIGZvciAoQW5pbWF0aW9uc1Rv
UHJvY2Vzc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2FuaW1hdGlvbnNUb1Byb2Nlc3MuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC0yMTg0LDEwICsyMTIzLDggQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMoKQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHByb2Nlc3NpbmdJbmZvLmFjdGlvbiA9PSBSZW1v
dmUpIHsKKyAgICAgICAgICAgIGlmIChwcm9jZXNzaW5nSW5mby5hY3Rpb24gPT0gUmVtb3ZlKQog
ICAgICAgICAgICAgICAgIG1fcnVubmluZ0FuaW1hdGlvbnMucmVtb3ZlKGN1cnJBbmltYXRpb25O
YW1lKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hlZEFuaW1hdGlvbnMuYWRkKGN1cnJBbmltYXRp
b25OYW1lKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIAogICAgICAgICBtX2FuaW1h
dGlvbnNUb1Byb2Nlc3MuY2xlYXIoKTsKQEAgLTIyMDksMTUgKzIxNDYsOSBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAgICAgICAgICAgVmVjdG9yPExh
eWVyUHJvcGVydHlBbmltYXRpb24+JiBhbmltYXRpb25zID0gaXQtPnZhbHVlOwogICAgICAgICAg
ICAgICAgIGFuaW1hdGlvbnMuYXBwZW5kKHBlbmRpbmdBbmltYXRpb24pOwogICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmaW5pc2hlZEFuaW1hdGlvbnMucmVtb3ZlKHBlbmRpbmdBbmltYXRp
b24ubV9uYW1lKTsKICAgICAgICAgfQogICAgICAgICBtX3VuY29taXR0ZWRBbmltYXRpb25zLmNs
ZWFyKCk7CiAgICAgfQotICAgIAotICAgIEhhc2hTZXQ8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gZmluaXNoZWRBbmltYXRpb25zLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZpbmlzaGVkQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpCi0gICAgICAgIG1fYW5pbWF0aW9uVHJhbnNmb3Jtcy5yZW1vdmUoKml0KTsKIH0K
IAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OmlzUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbigpIGNv
bnN0CkBAIC0yMzgxLDY0ICsyMzEyLDIyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRU
b1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAg
Ym9vbCBpc0tleWZyYW1lID0gdmFsdWVMaXN0LnNpemUoKSA+IDI7CiAKICAgICBSZWZQdHI8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gY2FBbmltYXRpb247Ci0gICAgVmVjdG9yPFRyYW5zZm9ybWF0aW9u
TWF0cml4PiBtYXRyaWNlczsKICAgICBib29sIHZhbGlkTWF0cmljZXMgPSB0cnVlOwogICAgIGlm
IChpc0tleWZyYW1lKSB7CiAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlS2V5ZnJhbWVBbmlt
YXRpb24oYW5pbWF0aW9uLCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkp
LCBhZGRpdGl2ZSk7Ci0gICAgICAgIHZhbGlkTWF0cmljZXMgPSBzZXRUcmFuc2Zvcm1BbmltYXRp
b25LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltYXRpb24sIGNhQW5pbWF0aW9uLmdldCgpLCBhbmlt
YXRpb25JbmRleCwgdHJhbnNmb3JtT3AsIGlzTWF0cml4QW5pbWF0aW9uLCBib3hTaXplLCBtYXRy
aWNlcyk7CisgICAgICAgIHZhbGlkTWF0cmljZXMgPSBzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlm
cmFtZXModmFsdWVMaXN0LCBhbmltYXRpb24sIGNhQW5pbWF0aW9uLmdldCgpLCBhbmltYXRpb25J
bmRleCwgdHJhbnNmb3JtT3AsIGlzTWF0cml4QW5pbWF0aW9uLCBib3hTaXplKTsKICAgICB9IGVs
c2UgewogICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5pbWF0aW9uKGFuaW1hdGlv
biwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUpOwot
ICAgICAgICB2YWxpZE1hdHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKHZh
bHVlTGlzdCwgYW5pbWF0aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIHRy
YW5zZm9ybU9wLCBpc01hdHJpeEFuaW1hdGlvbiwgYm94U2l6ZSwgbWF0cmljZXMpOworICAgICAg
ICB2YWxpZE1hdHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKHZhbHVlTGlz
dCwgYW5pbWF0aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIHRyYW5zZm9y
bU9wLCBpc01hdHJpeEFuaW1hdGlvbiwgYm94U2l6ZSk7CiAgICAgfQogICAgIAogICAgIGlmICgh
dmFsaWRNYXRyaWNlcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9hbmltYXRpb25U
cmFuc2Zvcm1zLnNldChhbmltYXRpb25OYW1lLCBtYXRyaWNlcyk7Ci0KICAgICBtX3VuY29taXR0
ZWRBbmltYXRpb25zLmFwcGVuZChMYXllclByb3BlcnR5QW5pbWF0aW9uKGNhQW5pbWF0aW9uLCBh
bmltYXRpb25OYW1lLCB2YWx1ZUxpc3QucHJvcGVydHkoKSwgYW5pbWF0aW9uSW5kZXgsIDAsIHRp
bWVPZmZzZXQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBHcmFwaGljc0xheWVyQ0E6
OmdldFRyYW5zZm9ybUZyb21BbmltYXRpb25zV2l0aE1heFNjYWxlSW1wYWN0KGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBwYXJlbnRUcmFuc2Zvcm1Gcm9tUm9vdCwgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1heFNjYWxlVHJhbnNmb3JtLCBmbG9hdCYgbWF4U2NhbGUpIGNvbnN0Ci17Ci0gICAg
bWF4U2NhbGUgPSAxOwotICAgIAotICAgIGJvb2wgaGF2ZVRyYW5zZm9ybUFuaW1hdGlvbiA9IGZh
bHNlOwotICAgIEFuaW1hdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcnVubmluZ0Fu
aW1hdGlvbnMuZW5kKCk7Ci0gICAgZm9yIChBbmltYXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IG1fcnVubmluZ0FuaW1hdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAg
ICAgIGNvbnN0IFZlY3RvcjxMYXllclByb3BlcnR5QW5pbWF0aW9uPiYgcHJvcGVydHlBbmltYXRp
b25zID0gaXQtPnZhbHVlOwotICAgICAgICBzaXplX3QgbnVtQW5pbWF0aW9ucyA9IHByb3BlcnR5
QW5pbWF0aW9ucy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQW5p
bWF0aW9uczsgKytpKSB7Ci0gICAgICAgICAgICBjb25zdCBMYXllclByb3BlcnR5QW5pbWF0aW9u
JiBhbmltYXRpb24gPSBwcm9wZXJ0eUFuaW1hdGlvbnNbaV07Ci0gICAgICAgICAgICBpZiAoYW5p
bWF0aW9uLm1fcHJvcGVydHkgIT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgaGF2ZVRyYW5zZm9ybUFuaW1h
dGlvbiA9IHRydWU7Ci0KLSAgICAgICAgICAgIFRyYW5zZm9ybXNNYXA6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gbV9hbmltYXRpb25UcmFuc2Zvcm1zLmZpbmQoYW5pbWF0aW9uLm1fbmFtZSk7Ci0gICAg
ICAgICAgICBpZiAoaXQgIT0gbV9hbmltYXRpb25UcmFuc2Zvcm1zLmVuZCgpKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgVmVjdG9yPFRyYW5zZm9ybWF0aW9uTWF0cml4PiYgbWF0cmljZXMgPSBp
dC0+dmFsdWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtYXRyaWNlcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCByb290UmVsYXRpdmVUcmFuc2Zvcm1XaXRoQW5pbWF0aW9uID0g
cGFyZW50VHJhbnNmb3JtRnJvbVJvb3Q7Ci0gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtV2l0aEFuaW1hdGlvbiA9IGxheWVyVHJhbnNmb3JtKG1f
cG9zaXRpb24sICZtYXRyaWNlc1tpXSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcm9vdFJlbGF0
aXZlVHJhbnNmb3JtV2l0aEFuaW1hdGlvbi5tdWx0aXBseShsYXllclRyYW5zZm9ybVdpdGhBbmlt
YXRpb24pOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQg
cm9vdFJlbGF0aXZlU2NhbGUgPSBtYXhTY2FsZUZyb21UcmFuc2Zvcm0ocm9vdFJlbGF0aXZlVHJh
bnNmb3JtV2l0aEFuaW1hdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyb290UmVsYXRp
dmVTY2FsZSA+IG1heFNjYWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtYXhTY2FsZSA9
IHJvb3RSZWxhdGl2ZVNjYWxlOwotICAgICAgICAgICAgICAgICAgICAgICAgbWF4U2NhbGVUcmFu
c2Zvcm0gPSBtYXRyaWNlc1tpXTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICByZXR1cm4g
aGF2ZVRyYW5zZm9ybUFuaW1hdGlvbjsKLX0KLQogYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0
ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGFu
aW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUp
CiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVydHlX
ZWJraXRUcmFuc2Zvcm0pOwpAQCAtMjY3NSw3ICsyNTY0LDcgQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVM
aXN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJh
bnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxp
c3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNp
Y0FuaW0sIGludCBmdW5jdGlvbkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5
cGUgdHJhbnNmb3JtT3BUeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGJveFNpemUsIFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIG1hdHJpeGVzKQorYm9v
bCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwg
UGxhdGZvcm1DQUFuaW1hdGlvbiogYmFzaWNBbmltLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNm
b3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9wVHlwZSwgYm9vbCBpc01hdHJp
eEFuaW1hdGlvbiwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplKQogewogICAgIEFTU0VSVCh2YWx1
ZUxpc3Quc2l6ZSgpID09IDIpOwogCkBAIC0yNjg3LDkgKzI1NzYsOCBAQCBib29sIEdyYXBoaWNz
TGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiB2YQogICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlJiBzdGFydFZhbHVl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUmPih2YWx1ZUxpc3Qu
YXQoZnJvbUluZGV4KSk7CiAgICAgY29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUmIGVuZFZh
bHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUmPih2YWx1ZUxp
c3QuYXQodG9JbmRleCkpOwogCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZnJvbVRyYW5zZm9y
bSwgdG9UcmFuc2Zvcm07Ci0gICAgCiAgICAgaWYgKGlzTWF0cml4QW5pbWF0aW9uKSB7CisgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtOwogICAg
ICAgICBzdGFydFZhbHVlLnZhbHVlKCkuYXBwbHkoYm94U2l6ZSwgZnJvbVRyYW5zZm9ybSk7CiAg
ICAgICAgIGVuZFZhbHVlLnZhbHVlKCkuYXBwbHkoYm94U2l6ZSwgdG9UcmFuc2Zvcm0pOwogCkBA
IC0yNzI1LDEyICsyNjEzLDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFu
aW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmEKICAgICAgICAgICAg
IGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoZW5kVmFsdWUudmFsdWUoKS5hdChmdW5jdGlvbklu
ZGV4KSwgdHJhbnNmb3JtT3BUeXBlLCBib3hTaXplLCB0b1ZhbHVlKTsKICAgICAgICAgICAgIGJh
c2ljQW5pbS0+c2V0VG9WYWx1ZSh0b1ZhbHVlKTsKICAgICAgICAgfQotCi0gICAgICAgIHN0YXJ0
VmFsdWUudmFsdWUoKS5hcHBseShib3hTaXplLCBmcm9tVHJhbnNmb3JtKTsKLSAgICAgICAgZW5k
VmFsdWUudmFsdWUoKS5hcHBseShib3hTaXplLCB0b1RyYW5zZm9ybSk7CiAgICAgfQotICAgIG1h
dHJpeGVzLmFwcGVuZChmcm9tVHJhbnNmb3JtKTsKLSAgICBtYXRyaXhlcy5hcHBlbmQodG9UcmFu
c2Zvcm0pOwogCiAgICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1c2VkIGZvciAyLWtleWZyYW1lIGFu
aW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBpbiB0aGUgc3RhcnQKICAgICAvLyBm
b3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2Fz
ZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCkBAIC0y
NzQ0LDcgKzI2MjcsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0
aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJh
bWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiog
YW5pbWF0aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0sIGludCBmdW5jdGlv
bkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3BUeXBl
LCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIFZlY3Rv
cjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIG1hdHJpeGVzKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6
OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlv
bioga2V5ZnJhbWVBbmltLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpP
cGVyYXRpb25UeXBlIHRyYW5zZm9ybU9wVHlwZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBib3hTaXplKQogewogICAgIFZlY3RvcjxmbG9hdD4ga2V5VGltZXM7CiAg
ICAgVmVjdG9yPGZsb2F0PiBmbG9hdFZhbHVlczsKQEAgLTI3ODgsOCArMjY3MSw2IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmIHZhCiAgICAgICAgICAgICBjdXJWYWx1ZS52YWx1ZSgpLmFwcGx5KGJv
eFNpemUsIHRyYW5zZm9ybSk7CiAgICAgICAgIH0KIAotICAgICAgICBtYXRyaXhlcy5hcHBlbmQo
dHJhbnNmb3JtKTsKLQogICAgICAgICBpZiAoaSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCiAg
ICAgICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0
aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCAq
YW5pbWF0aW9uKSk7CiAgICAgfQpAQCAtMjk0MCw3ICsyODIxLDcgQEAgR3JhcGhpY3NMYXllckNB
OjpMYXllck1hcCogR3JhcGhpY3NMYXllckNBOjphbmltYXRlZExheWVyQ2xvbmVzKEFuaW1hdGVk
UHJvcGVydHkKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKQogewotICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUgPSBjbGFtcGVk
Q29udGVudHNTY2FsZUZvclNjYWxlKG1fcm9vdFJlbGF0aXZlU2NhbGVGYWN0b3IsIHBhZ2VTY2Fs
ZUZhY3RvciAqIGRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUg
PSBwYWdlU2NhbGVGYWN0b3IgKiBkZXZpY2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKG1faXNQ
YWdlVGlsZWRCYWNraW5nTGF5ZXIgJiYgdGlsZWRCYWNraW5nKCkpIHsKICAgICAgICAgZmxvYXQg
em9vbWVkT3V0U2NhbGUgPSBtX2NsaWVudC56b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IoKSAqIGRl
dmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yOTU5LDYgKzI4NDAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiAgICAgICAg
IC8vIFRpbGVkIGJhY2tpbmcgcmVwYWludHMgYXV0b21hdGljYWxseSBvbiBzY2FsZSBjaGFuZ2Uu
CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBpZiAoZHJhd3NDb250ZW50KCkpCiAgICAg
ICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBhZDNlMmY4
MDFmZDI0MDI2NWYzZTBmOTljYzM5MWE3YTEwNTZhMzE3Li44NjY5NGJkMDY3ODg2YTE0MjA1N2M2
ZjJjMDIxNDlkNzhhNDVjMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMTU2LDcgKzE1Niw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICwgdHJlZURlcHRoKDApCiAgICAgICAgIHsgfQogICAgIH07Ci0gICAg
dm9pZCByZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNvbnN0IENvbW1pdFN0YXRlJiwgY29uc3QgVHJh
bnNmb3JtU3RhdGUmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcm9vdFJlbGF0aXZlVHJh
bnNmb3JtRm9yU2NhbGluZywgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gMSwgY29uc3QgRmxvYXRQ
b2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSA9IEZsb2F0UG9pbnQoKSwgYm9vbCBhZmZlY3Rl
ZEJ5UGFnZVNjYWxlID0gZmFsc2UpOworICAgIHZvaWQgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhj
b25zdCBDb21taXRTdGF0ZSYsIGNvbnN0IFRyYW5zZm9ybVN0YXRlJiwgZmxvYXQgcGFnZVNjYWxl
RmFjdG9yID0gMSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSA9IEZs
b2F0UG9pbnQoKSwgYm9vbCBhZmZlY3RlZEJ5UGFnZVNjYWxlID0gZmFsc2UpOwogCiAgICAgdmly
dHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpIG92ZXJyaWRlOwpAQCAtMjQzLDggKzI0Myw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZXRB
bmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRp
b24qLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CiAgICAgYm9vbCBzZXRBbmltYXRpb25LZXlmcmFt
ZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKik7CiAKLSAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBvaW50cyhj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmlt
YXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25U
eXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUsIFZl
Y3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIG1hdHJpeGVzKTsKLSAgICBib29sIHNldFRyYW5z
Zm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFu
aW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNm
b3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25z
dCBGbG9hdFNpemUmIGJveFNpemUsIFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIG1hdHJp
eGVzKTsKKyAgICBib29sIHNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlm
cmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIFBsYXRmb3JtQ0FBbmltYXRpb24qLCBp
bnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlLCBib29s
IGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBGbG9hdFNpemUmIGJveFNpemUpOworICAgIGJvb2wg
c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
Y29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBmdW5jdGlvbkluZGV4
LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUsIGJvb2wgaXNNYXRyaXhBbmltYXRp
b24sIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSk7CiAgICAgCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogICAgIGJvb2wgc2V0RmlsdGVyQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiwgY29uc3QgQW5pbWF0aW9uKiwgUGxhdGZvcm1DQUFuaW1hdGlvbiosIGludCBm
dW5jdGlvbkluZGV4LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKQEAgLTI1OCw3
ICsyNTgsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbV9ydW5uaW5nQW5pbWF0aW9ucy5m
aW5kKGFuaW1hdGlvbk5hbWUpICE9IG1fcnVubmluZ0FuaW1hdGlvbnMuZW5kKCk7CiAgICAgfQog
Ci0gICAgdm9pZCBjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMoQ29tbWl0U3RhdGUm
LCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRp
dmVUb0Jhc2UsIGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QsIFRyYW5zZm9ybWF0aW9u
TWF0cml4KiB0cmFuc2Zvcm1Gcm9tUm9vdCA9IDApOworICAgIHZvaWQgY29tbWl0TGF5ZXJDaGFu
Z2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlLCBjb25zdCBGbG9hdFJlY3Qm
IG9sZFZpc2libGVSZWN0KTsKICAgICB2b2lkIGNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5
ZXJzKENvbW1pdFN0YXRlJik7CiAKICAgICBGbG9hdFBvaW50IGNvbXB1dGVQb3NpdGlvblJlbGF0
aXZlVG9CYXNlKGZsb2F0JiBwYWdlU2NhbGUpIGNvbnN0OwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXll
cik7CiAKICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gZGVmYXVsdENvbnRl
bnRzT3JpZW50YXRpb24oKSBjb25zdDsKLSAgICAKKwogICAgIHZvaWQgc2V0dXBDb250ZW50c0xh
eWVyKFBsYXRmb3JtQ0FMYXllciopOwogICAgIFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllci5nZXQoKTsgfQogCkBAIC0yODAsNyAr
MjgwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgRmxvYXRQb2ludCYgcG9zaXRpb24sIEZsb2F0U2l6
ZSYsIEZsb2F0UG9pbnQzRCYgYW5jaG9yUG9pbnQsIEZsb2F0U2l6ZSYgYWxpZ25tZW50T2Zmc2V0
KSBjb25zdDsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtKGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCogY3VzdG9t
VHJhbnNmb3JtID0gMCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVSb290UmVsYXRpdmVTY2FsZShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCogdHJhbnNmb3JtRnJvbVJvb3QpOwogCiAgICAgZW51bSBDb21w
dXRlVmlzaWJsZVJlY3RGbGFnIHsgUmVzcGVjdEFuaW1hdGluZ1RyYW5zZm9ybXMgPSAxIDw8IDAg
fTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIENvbXB1dGVWaXNpYmxlUmVjdEZsYWdzOwpAQCAtNDEx
LDkgKzQxMCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBhcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0
aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGNv
bnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgaW50IGFuaW1hdGlv
bkluZGV4LCBkb3VibGUgdGltZU9mZnNldCk7CiAjZW5kaWYKIAotICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiBhbnkgdHJhbnNmb3JtIGFuaW1hdGlvbnMgYXJlIHJ1bm5pbmcuCi0gICAgYm9vbCBnZXRU
cmFuc2Zvcm1Gcm9tQW5pbWF0aW9uc1dpdGhNYXhTY2FsZUltcGFjdChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgcGFyZW50VHJhbnNmb3JtRnJvbVJvb3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgZmxvYXQmIG1heFNjYWxlKSBjb25zdDsKLSAgICAKICAgICBlbnVtIExheWVyQ2hhbmdlIHsK
ICAgICAgICAgTm9DaGFuZ2UgPSAwLAogICAgICAgICBOYW1lQ2hhbmdlZCA9IDFMTFUgPDwgMSwK
QEAgLTQ4Niw4ICs0ODIsNiBAQCBwcml2YXRlOgogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1f
Y29udGVudHNMYXllclB1cnBvc2U7CiAgICAgYm9vbCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVy
IDogMTsKICAgICAKLSAgICBmbG9hdCBtX3Jvb3RSZWxhdGl2ZVNjYWxlRmFjdG9yOwotICAgIAog
ICAgIENvbG9yIG1fY29udGVudHNTb2xpZENvbG9yOwogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IG1fdW5jb3JyZWN0ZWRDb250ZW50c0ltYWdlOwpAQCAtNTMzLDExICs1MjcsNiBAQCBwcml2
YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMYXllclByb3BlcnR5QW5p
bWF0aW9uPj4gQW5pbWF0aW9uc01hcDsKICAgICBBbmltYXRpb25zTWFwIG1fcnVubmluZ0FuaW1h
dGlvbnM7CiAKLSAgICAvLyBNYXAgZnJvbSBhbmltYXRpb24ga2V5IHRvIFRyYW5zZm9ybWF0aW9u
TWF0cmljZXMgZm9yIGFuaW1hdGlvbnMgb2YgdHJhbnNmb3JtLiBUaGUgdmVjdG9yIGNvbnRhaW5z
IGEgbWF0cml4IGZvcgotICAgIC8vIHRoZSB0d28gZW5kcG9pbnRzLCBvciBlYWNoIGtleWZyYW1l
LiBVc2VkIGZvciBjb250ZW50c1NjYWxlIGFkanVzdG1lbnQuCi0gICAgdHlwZWRlZiBIYXNoTWFw
PFN0cmluZywgVmVjdG9yPFRyYW5zZm9ybWF0aW9uTWF0cml4Pj4gVHJhbnNmb3Jtc01hcDsKLSAg
ICBUcmFuc2Zvcm1zTWFwIG1fYW5pbWF0aW9uVHJhbnNmb3JtczsKLQogICAgIFZlY3RvcjxGbG9h
dFJlY3Q+IG1fZGlydHlSZWN0czsKIAogICAgIExheWVyQ2hhbmdlRmxhZ3MgbV91bmNvbW1pdHRl
ZENoYW5nZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMDQ2OGU3NGNkN2MxMWQ3MDNjYmU3NmFjOTNmZjIzYjBiNmJhZWMw
YS4uMzdjZGQ5MWNjZjM3MjE4ZjFiZGE3ZjI3MmMyYzY2YzMyYzQwNzgyYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDE0LTA1LTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxNTU5NzcpOiBWZXJ5IHN0dXR0ZXJ5IDNEIGNz
cyBhbmltYXRpb24gb24ganRlY2hjb21tdW5pY2F0aW9ucy5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzE3OQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY4NjQ2NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBSZWJhc2VsaW5lLgorCisgICAgICAgICogY29tcG9zaXRpbmcvY29u
dGVudHMtc2NhbGUvYW5pbWF0aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9jb250ZW50cy1zY2FsZS9yb3VuZGVkLWNvbnRlbnRzLXNjYWxlLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9zY2FsZWQtYW5jZXN0b3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL3NpbXBsZS1zY2Fs
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY29tcG9zaXRpbmcvY29udGVudHMtc2NhbGUvei10
cmFuc2xhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1wYWludC1waGFzZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGluZy90aWxpbmcvcm90YXRlZC10aWxl
ZC1jbGFtcGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY29tcG9zaXRp
bmcvdGlsaW5nL3JvdGF0ZWQtdGlsZWQtcHJlc2VydmUzZC1jbGFtcGVkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJsZS1yZWN0L25lc3RlZC10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OgorCiAyMDE0LTA1LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBNYWMgZ2FyZGVuaW5nIGFmdGVyIHIx
NjkxNjEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jb250ZW50cy1zY2Fs
ZS9hbmltYXRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY29udGVu
dHMtc2NhbGUvYW5pbWF0aW5nLWV4cGVjdGVkLnR4dAppbmRleCBlOGNhYzEwZTkzMzkzNTBiMTVl
YmQ2NmFhZTM4MGY5Y2QxN2NhODRjLi44ZDcyOWQ5YWJhMWEwODg2ODhhNWJiNmIwOGVmMTJjYjkw
NmVhZDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jb250ZW50cy1zY2Fs
ZS9hbmltYXRpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2Nv
bnRlbnRzLXNjYWxlL2FuaW1hdGluZy1leHBlY3RlZC50eHQKQEAgLTE5LDcgKzE5LDcgQEAgQm94
CiAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAgICAgICh0cmFuc2Zvcm0gWzEuNTAg
MC4wMCAwLjAwIDAuMDBdIFswLjAwIDEuNTAgMC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEuMDAgMC4w
MF0gWzAuMDAgMC4wMCAwLjAwIDEuMDBdKQogICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwg
MC4wMCAxMDAuMDAgeCAxMDAuMDApCi0gICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMy4wMCkKKyAg
ICAgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQogICAgICAgICApCiAgICAgICApCiAgICAgKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY29udGVudHMtc2NhbGUvcm91bmRl
ZC1jb250ZW50cy1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9j
b250ZW50cy1zY2FsZS9yb3VuZGVkLWNvbnRlbnRzLXNjYWxlLWV4cGVjdGVkLnR4dAppbmRleCAy
NDIzNzQ2NTYwYTE3NTZiOWY3ZmYwY2IyZTc0NWNkYTg3YmY0N2M2Li44NThhZjFiOTcyZjAwNWIz
ODM3NGRhODAwMDNlZGM5ODQyNjUzZDY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9jb250ZW50cy1zY2FsZS9yb3VuZGVkLWNvbnRlbnRzLXNjYWxlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9yb3VuZGVkLWNvbnRl
bnRzLXNjYWxlLWV4cGVjdGVkLnR4dApAQCAtMjMsNyArMjMsNyBAQAogICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgICAgICh0cmFuc2Zvcm0gWzEuMDAgMC4wMCAwLjAw
IDAuMDBdIFswLjAwIDEuMDAgMC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEuMDAgMC4wMF0gWzAuMDAg
MC4wMCAtMjAwLjAwIDEuMDBdKQogICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAu
MDAgMTAyLjAwIHggMTAyLjAwKQotICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAwLjc1KQor
ICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQogICAgICAgICAgICAgKQogICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgKHBvc2l0aW9uIDAuMDAgODIuMDAp
CkBAIC0zMiw3ICszMiw3IEBACiAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAg
ICAgICAgICAgKHRyYW5zZm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMS4wMCAwLjAw
IDAuMDBdIFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAwLjAwIC0xMDAuMDAgMS4wMF0pCiAg
ICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAxMDIuMDAgeCAxMDIuMDApCi0g
ICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDAuNzUpCisgICAgICAgICAgICAgIChjb250ZW50
c1NjYWxlIDEuMDApCiAgICAgICAgICAgICApCiAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgog
ICAgICAgICAgICAgICAocG9zaXRpb24gMC4wMCAxNjQuMDApCkBAIC01OCw3ICs1OCw3IEBACiAg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgKHRyYW5zZm9ybSBb
MS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4w
MCAwLjAwXSBbMC4wMCAwLjAwIDEwMC4wMCAxLjAwXSkKICAgICAgICAgICAgICAgKHZpc2libGUg
cmVjdCAwLjAwLCAwLjAwIDEwMi4wMCB4IDEwMi4wMCkKLSAgICAgICAgICAgICAgKGNvbnRlbnRz
U2NhbGUgMS4yNSkKKyAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgICAgICAg
ICAgICkKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgIChwb3NpdGlv
biAwLjAwIDQxMC4wMCkKQEAgLTY3LDcgKzY3LDcgQEAKICAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQogICAgICAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBb
MC4wMCAxLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFswLjAwIDAuMDAgMTUw
LjAwIDEuMDBdKQogICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMTAyLjAw
IHggNC40MCkKLSAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS41MCkKKyAgICAgICAgICAg
ICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgICAgICAgICAgICkKICAgICAgICAgICApCiAgICAg
ICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxl
L3NjYWxlZC1hbmNlc3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9j
b250ZW50cy1zY2FsZS9zY2FsZWQtYW5jZXN0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDhlMjE1YjU5
NGQ1NWU2N2FjNzNmZTY0NjIyNDY5ODNmZTFhYTY2Y2IuLmVmZjIzYjZiZDJjYjU1OTBkZWFlNjlh
Y2E2MmMxYjA4OThhMmI5NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2Nv
bnRlbnRzLXNjYWxlL3NjYWxlZC1hbmNlc3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvY29udGVudHMtc2NhbGUvc2NhbGVkLWFuY2VzdG9yLWV4cGVjdGVkLnR4
dApAQCAtMTgsNyArMTgsNyBAQCBCb3gKICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAg
ICAgICAgKHRyYW5zZm9ybSBbMi4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMi4wMCAwLjAwIDAu
MDBdIFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAwLjAwIDAuMDAgMS4wMF0pCiAgICAgICAg
ICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDEwMi4wMCB4IDEwMi4wMCkKLSAgICAgICAgICAo
Y29udGVudHNTY2FsZSAyLjAwKQorICAgICAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgICAg
ICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMS4wMCAxMS4wMCkKQEAgLTI2LDcgKzI2LDcgQEAgQm94CiAgICAgICAg
ICAgICAgIChjb250ZW50c09wYXF1ZSAxKQogICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CiAgICAgICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAxMDAuMDAgeCAxMDAuMDAp
Ci0gICAgICAgICAgICAgIChjb250ZW50c1NjYWxlIDIuMDApCisgICAgICAgICAgICAgIChjb250
ZW50c1NjYWxlIDEuMDApCiAgICAgICAgICAgICApCiAgICAgICAgICAgKQogICAgICAgICApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9zaW1wbGUt
c2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY29udGVudHMtc2Nh
bGUvc2ltcGxlLXNjYWxlLWV4cGVjdGVkLnR4dAppbmRleCBiYmE0ZGQxMWIwNThmZmQzNGFiODdj
ODQ5NzM0OTYzYjFhOWY4YjNmLi4yZDE1YTkwOGQ2YTI5NjI5NWJiZTRhMGZkOTA0NzM3ZmYwMzE1
ZmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9z
aW1wbGUtc2NhbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2Nv
bnRlbnRzLXNjYWxlL3NpbXBsZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTE5LDcgKzE5LDcgQEAg
Qm94CiAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAgICAgICh0cmFuc2Zvcm0gWzIu
MDAgMC4wMCAwLjAwIDAuMDBdIFswLjAwIDIuMDAgMC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEuMDAg
MC4wMF0gWzAuMDAgMC4wMCAwLjAwIDEuMDBdKQogICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4w
MCwgMC4wMCAxMDAuMDAgeCAxMDAuMDApCi0gICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMi4wMCkK
KyAgICAgICAgICAoY29udGVudHNTY2FsZSAxLjAwKQogICAgICAgICApCiAgICAgICApCiAgICAg
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY29udGVudHMtc2NhbGUvei10
cmFuc2xhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY29udGVudHMt
c2NhbGUvei10cmFuc2xhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGIwYTExMTI5ZDhiNjU1NWZjODJk
ODNhMDBmZmFlM2UwOWI1NmQ4ZTUuLjY3YTgyZDQ2MWU3MDFiY2UzMjcxY2Y4NTAyZmI0ZmRiZmE2
NTg5M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxl
L3otdHJhbnNsYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9j
b250ZW50cy1zY2FsZS96LXRyYW5zbGF0ZS1leHBlY3RlZC50eHQKQEAgLTI3LDcgKzI3LDcgQEAg
Qm94CiAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAgKHRyYW5z
Zm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAu
MDAgMS4wMCAwLjAwXSBbMC4wMCAwLjAwIDEwMC4wMCAxLjAwXSkKICAgICAgICAgICAgICAgKHZp
c2libGUgcmVjdCAwLjAwLCAwLjAwIDEwMC4wMCB4IDEwMC4wMCkKLSAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMS4yNSkKKyAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAg
ICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgog
ICAgICAgICAgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDM4LjAwKQpAQCAtMzcsNyArMzcsNyBA
QCBCb3gKICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAgICAg
ICAgICh0cmFuc2Zvcm0gWzEuMDAgMC4wMCAwLjAwIDAuMDBdIFswLjAwIDEuMDAgMC4wMCAwLjAw
XSBbMC4wMCAwLjAwIDEuMDAgMC4wMF0gWzAuMDAgMC4wMCAxMDAuMDAgMS4wMF0pCiAgICAgICAg
ICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMTAwLjAwIHggMTAwLjAwKQotICAg
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS43NSkKKyAgICAgICAgICAgICAgICAgIChj
b250ZW50c1NjYWxlIDEuMDApCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICApCiAg
ICAgICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctcGFpbnQtcGhhc2VzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21w
b3NpdGVkLXNjcm9sbGluZy1wYWludC1waGFzZXMtZXhwZWN0ZWQudHh0CmluZGV4IDNkMmMxYmQ2
NzkzZjIwZmY5MDljOTg2ZWZmYTY4MmU3ZDA2MjQ5ZGYuLjg1ZGViNGE4NzBmOGI1OTFlOWNhMDc3
ZmEyMmI4ZmU0MzZlYzJkMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9j
b21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1wYWludC1waGFzZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1wYWludC1waGFzZXMtZXhwZWN0ZWQudHh0CkBAIC0y
OCw3ICsyOCw3IEBACiAgICAgICAgICAgKGNoaWxkcmVuIDQKICAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCiAgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCi0gICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1
LjAwKQogICAgICAgICAgICAgICAocGFpbnRpbmdQaGFzZXMKICAgICAgICAgICAgICAgICBHcmFw
aGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kCiAgICAgICAgICAgICAgICAgR3JhcGhpY3NMYXllclBh
aW50Rm9yZWdyb3VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBv
c2l0aW5nL3RpbGluZy9yb3RhdGVkLXRpbGVkLWNsYW1wZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3RpbGluZy9yb3RhdGVkLXRpbGVkLWNsYW1w
ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDlkMWNjN2JkNGNkYzA2MGJiMDY3OWIwMWQ1NDRlNWIwMTU3
ZjYxN2EuLmJmYmI5OTAwNmQ2ODY2NGEyNWY0YTIyYzU3YTQ2MGI0YjQ3MWQ1ZDAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy90aWxpbmcvcm90YXRlZC10
aWxlZC1jbGFtcGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y29tcG9zaXRpbmcvdGlsaW5nL3JvdGF0ZWQtdGlsZWQtY2xhbXBlZC1leHBlY3RlZC50eHQKQEAg
LTMyLDEwICszMiwxMCBAQAogICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAg
ICAgICAgICAgICAgICAgKHRyYW5zZm9ybSBbMC4xNyAwLjAwIC0wLjk4IDAuMDBdIFswLjAwIDEu
MDAgMC4wMCAwLjAwXSBbMC45OCAwLjAwIDAuMTcgMC4wMF0gWzAuMDAgMC4wMCAwLjAwIDEuMDBd
KQogICAgICAgICAgICAgICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDI4MDAuMDAgeCAz
MDAuMDApCi0gICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAwLjc1KQorICAgICAgICAg
ICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgICAgICAgICAgICAgICAgICh0aWxlIGNh
Y2hlIGNvdmVyYWdlIDAsIDAgMjgwMCB4IDMwMCkKICAgICAgICAgICAgICAgICAgICh0aWxlIHNp
emUgNTEyIHggNTEyKQotICAgICAgICAgICAgICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxl
cyBncmlkIDUgeCAxKQorICAgICAgICAgICAgICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwgMCB0aWxl
cyBncmlkIDYgeCAxKQogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgKQogICAgICAg
ICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5n
L3RpbGluZy9yb3RhdGVkLXRpbGVkLXByZXNlcnZlM2QtY2xhbXBlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdGlsaW5nL3JvdGF0ZWQtdGlsZWQt
cHJlc2VydmUzZC1jbGFtcGVkLWV4cGVjdGVkLnR4dAppbmRleCBlODFjYTJiOTc3MDg2YWRmYzJh
ZDE1MmIzNTMzZTYxOTY2MmJlM2Y1Li43ZjM5MDVhMjFkZGJkMjg2YTA0YWI2ZTgwZTdkMDIzMTc1
ODc0MDgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcv
dGlsaW5nL3JvdGF0ZWQtdGlsZWQtcHJlc2VydmUzZC1jbGFtcGVkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdGlsaW5nL3JvdGF0ZWQtdGls
ZWQtcHJlc2VydmUzZC1jbGFtcGVkLWV4cGVjdGVkLnR4dApAQCAtMzgsMTAgKzM4LDEwIEBACiAg
ICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAgICAgICAgICAgICAg
ICAgICh0cmFuc2Zvcm0gWzAuMTcgMC4wMCAtMC45OCAwLjAwXSBbMC4wMCAxLjAwIDAuMDAgMC4w
MF0gWzAuOTggMC4wMCAwLjE3IDAuMDBdIFswLjAwIDAuMDAgMC4wMCAxLjAwXSkKICAgICAgICAg
ICAgICAgICAgICAgICAodmlzaWJsZSByZWN0IDAuMDAsIDAuMDAgMjgwMC4wMCB4IDMwMC4wMCkK
LSAgICAgICAgICAgICAgICAgICAgICAoY29udGVudHNTY2FsZSAwLjc1KQorICAgICAgICAgICAg
ICAgICAgICAgIChjb250ZW50c1NjYWxlIDEuMDApCiAgICAgICAgICAgICAgICAgICAgICAgKHRp
bGUgY2FjaGUgY292ZXJhZ2UgMCwgMCAyODAwIHggMzAwKQogICAgICAgICAgICAgICAgICAgICAg
ICh0aWxlIHNpemUgNTEyIHggNTEyKQotICAgICAgICAgICAgICAgICAgICAgICh0b3AgbGVmdCB0
aWxlIDAsIDAgdGlsZXMgZ3JpZCA1IHggMSkKKyAgICAgICAgICAgICAgICAgICAgICAodG9wIGxl
ZnQgdGlsZSAwLCAwIHRpbGVzIGdyaWQgNiB4IDEpCiAgICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJsZS1yZWN0L25lc3RlZC10cmFuc2Zv
cm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zp
c2libGUtcmVjdC9uZXN0ZWQtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAppbmRleCBmODlmYjY4ZjYy
N2UwOWVkOTZiMjQxMDc1YjM2YTgzMGY1ZmY0MjVmLi4xNDZjMjUwYzYxN2FhY2UyZjc3ODE1M2M1
NmVmMGU0MTM1N2Q2NzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29t
cG9zaXRpbmcvdmlzaWJsZS1yZWN0L25lc3RlZC10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92aXNpYmxlLXJlY3QvbmVzdGVk
LXRyYW5zZm9ybS1leHBlY3RlZC50eHQKQEAgLTI4LDE0ICsyOCwxNCBAQAogICAgICAgICAgICAg
ICAgICAgKHByZXNlcnZlczNEIDEpCiAgICAgICAgICAgICAgICAgICAodHJhbnNmb3JtIFswLjk0
IDAuMDAgLTAuMzQgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjM0IDAuMDAgMC45NCAw
LjAwXSBbMC4wMCAwLjAwIDAuMDAgMS4wMF0pCiAgICAgICAgICAgICAgICAgICAodmlzaWJsZSBy
ZWN0IDAuMDAsIDAuMDAgMC4wMCB4IDAuMDApCi0gICAgICAgICAgICAgICAgICAoY29udGVudHNT
Y2FsZSAxLjI1KQorICAgICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgICAg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCiAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgMC4wMCkKICAgICAgICAg
ICAgICAgICAgICAgICAocHJlc2VydmVzM0QgMSkKICAgICAgICAgICAgICAgICAgICAgICAodHJh
bnNmb3JtIFswLjk0IDAuMDAgLTAuMzQgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjM0
IDAuMDAgMC45NCAwLjAwXSBbMC4wMCAwLjAwIDAuMDAgMS4wMF0pCiAgICAgICAgICAgICAgICAg
ICAgICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDAuMDAgeCAwLjAwKQotICAgICAgICAgICAg
ICAgICAgICAgIChjb250ZW50c1NjYWxlIDEuNTApCisgICAgICAgICAgICAgICAgICAgICAgKGNv
bnRlbnRzU2NhbGUgMS4wMCkKICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAg
ICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyA1MDAuMDAgNTAwLjAwKQpAQCAtNzYsMTQgKzc2LDE0IEBACiAgICAgICAg
ICAgICAgICAgICAgICAgKHByZXNlcnZlczNEIDEpCiAgICAgICAgICAgICAgICAgICAgICAgKHRy
YW5zZm9ybSBbMC43NyAwLjAwIC0wLjY0IDAuMDBdIFswLjAwIDEuMDAgMC4wMCAwLjAwXSBbMC42
NCAwLjAwIDAuNzcgMC4wMF0gWzAuMDAgMC4wMCAwLjAwIDEuMDBdKQogICAgICAgICAgICAgICAg
ICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKLSAgICAgICAgICAg
ICAgICAgICAgICAoY29udGVudHNTY2FsZSAxLjc1KQorICAgICAgICAgICAgICAgICAgICAgIChj
b250ZW50c1NjYWxlIDEuMDApCiAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKICAg
ICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChib3VuZHMgNTAwLjAwIDUwMC4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNvbnRlbnRzT3BhcXVlIDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2Zvcm0g
WzEuMDAgMC4wMCAwLjAwIDAuMDBdIFswLjAwIDAuODIgMC41NyAwLjAwXSBbMC4wMCAtMC41NyAw
LjgyIDAuMDBdIFswLjAwIDAuMDAgMC4wMCAxLjAwXSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHZpc2libGUgcmVjdCAwLjAwLCAwLjAwIDUwMC4wMCB4IDM1MS44NykKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGNvbnRlbnRzU2NhbGUgMS4yNSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbnRlbnRzU2NhbGUgMS4wMCkKICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICkK
</data>
<flag name="review"
          id="256383"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>