<?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>135900</bug_id>
          
          <creation_ts>2014-08-13 13:38:04 -0700</creation_ts>
          <short_desc>Do not use FloatRect::infiniteRect() to flag full repaints.</short_desc>
          <delta_ts>2014-08-15 21:04:02 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028882</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-08-13 13:38:04 -0700</bug_when>
    <thetext>Converting FloatRect::infiniteRect() to IntRect produces value overflow an we end up with invalid repaint coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028886</commentid>
    <comment_count>1</comment_count>
      <attachid>236546</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-13 13:49:48 -0700</bug_when>
    <thetext>Created attachment 236546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028889</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-13 13:50:45 -0700</bug_when>
    <thetext>Attachment 236546 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:485:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028890</commentid>
    <comment_count>3</comment_count>
      <attachid>236546</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-13 13:51:04 -0700</bug_when>
    <thetext>Comment on attachment 236546
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:716
&gt; +    m_needsFullRepaint = true;
&gt; +    m_dirtyRects.clear();
&gt; +    noteLayerPropertyChanged(DirtyRectsChanged);
&gt; +    addRepaintRect(FloatRect(FloatPoint(), m_size));

This is missing the if (!drawsContent()) that setNeedsDisplayInRect() does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028896</commentid>
    <comment_count>4</comment_count>
      <attachid>236549</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-13 14:01:41 -0700</bug_when>
    <thetext>Created attachment 236549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028897</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-13 14:04:35 -0700</bug_when>
    <thetext>Attachment 236549 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:485:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028926</commentid>
    <comment_count>6</comment_count>
      <attachid>236556</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-13 15:25:05 -0700</bug_when>
    <thetext>Created attachment 236556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028927</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-13 15:27:25 -0700</bug_when>
    <thetext>Attachment 236556 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:485:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029482</commentid>
    <comment_count>8</comment_count>
      <attachid>236681</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-15 15:35:51 -0700</bug_when>
    <thetext>Created attachment 236681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029483</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-15 15:37:13 -0700</bug_when>
    <thetext>Attachment 236681 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:485:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029563</commentid>
    <comment_count>10</comment_count>
      <attachid>236681</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-15 21:03:58 -0700</bug_when>
    <thetext>Comment on attachment 236681
Patch

Clearing flags on attachment: 236681

Committed r172681: &lt;http://trac.webkit.org/changeset/172681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029564</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-15 21:04:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236546</attachid>
            <date>2014-08-13 13:49:48 -0700</date>
            <delta_ts>2014-08-13 14:01:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135900-20140813134938.patch</filename>
            <type>text/plain</type>
            <size>17197</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdkODQyNDhhM2U5Yzky
YzViOTZjMzA2MzU3ODFiMDRhYTZlNDI0MS4uN2JiOTgxMGUzNzUwN2VlNGViYzE1YWMxM2Y1MzE4
OWQzYjk4YTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA4LTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTkwMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnZlcnRpbmcgRmxvYXRSZWN0Ojpp
bmZpbml0ZVJlY3QoKSB0byBJbnRSZWN0IGxlYWRzIHRvIHZhbHVlIG92ZXJmbG93CisgICAgICAg
IGFuZCB3ZSBlbmQgdXAgd2l0aCBpbnZhbGlkIHJlcGFpbnQgcmVjdGFuZ2xlLiBVc2UgYSBib29s
ZWFuIGZsYWcgdG8gaW5kaWNhdGUKKyAgICAgICAgZnVsbCByZXBhaW50IHJlcXVlc3QuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnNldE5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnJlcGFpbnRMYXllckRpcnR5UmVjdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVH
cmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpzZXRUaWxlTmVlZHNEaXNwbGF5
SW5SZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxh
eWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5
KToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToK
KwogMjAxNC0wOC0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgRG9udCBhbGxvY2F0ZSBHQ29uZCBpbiBWaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGR5bmFt
aWNhbGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDRiMmZkNmE4OWIyMzc2ODU0NTE4ZTQwMzE4YTY0ZjAwMDMy
NzFjYzYuLjBiMzZlMmRhZGJhNGMyYzEzNjllMTc5MzQ0MWRjZTk4MDFjYTlmNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNC0wOC0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgorCisgICAgICAgIERvIG5vdCB1c2UgRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSB0
byBmbGFnIGZ1bGwgcmVwYWludHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzU5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb252ZXJ0aW5nIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkgdG8gSW50
UmVjdCBsZWFkcyB0byB2YWx1ZSBvdmVyZmxvdworICAgICAgICBhbmQgd2UgZW5kIHVwIHdpdGgg
aW52YWxpZCByZXBhaW50IHJlY3RhbmdsZS4gVXNlIGEgYm9vbGVhbiBmbGFnIHRvIGluZGljYXRl
CisgICAgICAgIGZ1bGwgcmVwYWludCByZXF1ZXN0LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXROZWVkc0Rpc3BsYXlJblJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5l
ZWRzRGlzcGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNw
bGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oOgorCiAyMDE0LTA4LTEyICBHcnplZ29yeiBDemFqa293c2tpICA8
Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbmFtZSBld2tfcHJp
dmF0ZS5oIHRvIEV3a0RlYnVnLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjVkMTVlYzEzNjFkZDUzMWE3ZWZjMmJhZWFj
NWVmMjBkMjUzYzUwNi4uODVkMGYzYThlYjUyMTYxNzNhZDgzN2MwYTc3MWQzMmEyMDI1OTQxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKQEAgLTU3MSwxOCArNTcxLDE5IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6cmVzZXRUcmFj
a2VkUmVwYWludHMoKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OmFkZFJlcGFpbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCiB7Ci0gICAgaWYgKG1fY2xpZW50LmlzVHJhY2tpbmdS
ZXBhaW50cygpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBsYXJnZXN0UmVwYWludFJlY3QoRmxvYXRQ
b2ludCgpLCBtX3NpemUpOwotICAgICAgICBsYXJnZXN0UmVwYWludFJlY3QuaW50ZXJzZWN0KHJl
cGFpbnRSZWN0KTsKLSAgICAgICAgUmVwYWludE1hcDo6aXRlcmF0b3IgcmVwYWludEl0ID0gcmVw
YWludFJlY3RNYXAoKS5maW5kKHRoaXMpOwotICAgICAgICBpZiAocmVwYWludEl0ID09IHJlcGFp
bnRSZWN0TWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJlcGFp
bnRSZWN0czsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0cy5hcHBlbmQobGFyZ2VzdFJlcGFpbnRS
ZWN0KTsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0TWFwKCkuc2V0KHRoaXMsIHJlcGFpbnRSZWN0
cyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiYgcmVw
YWludFJlY3RzID0gcmVwYWludEl0LT52YWx1ZTsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0cy5h
cHBlbmQobGFyZ2VzdFJlcGFpbnRSZWN0KTsKLSAgICAgICAgfQorICAgIGlmICghbV9jbGllbnQu
aXNUcmFja2luZ1JlcGFpbnRzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEZsb2F0UmVjdCBs
YXJnZXN0UmVwYWludFJlY3QoRmxvYXRQb2ludCgpLCBtX3NpemUpOworICAgIGxhcmdlc3RSZXBh
aW50UmVjdC5pbnRlcnNlY3QocmVwYWludFJlY3QpOworICAgIFJlcGFpbnRNYXA6Oml0ZXJhdG9y
IHJlcGFpbnRJdCA9IHJlcGFpbnRSZWN0TWFwKCkuZmluZCh0aGlzKTsKKyAgICBpZiAocmVwYWlu
dEl0ID09IHJlcGFpbnRSZWN0TWFwKCkuZW5kKCkpIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVj
dD4gcmVwYWludFJlY3RzOworICAgICAgICByZXBhaW50UmVjdHMuYXBwZW5kKGxhcmdlc3RSZXBh
aW50UmVjdCk7CisgICAgICAgIHJlcGFpbnRSZWN0TWFwKCkuc2V0KHRoaXMsIHJlcGFpbnRSZWN0
cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4mIHJlcGFpbnRSZWN0
cyA9IHJlcGFpbnRJdC0+dmFsdWU7CisgICAgICAgIHJlcGFpbnRSZWN0cy5hcHBlbmQobGFyZ2Vz
dFJlcGFpbnRSZWN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDlkOGM5Y2E4NjRh
YjFkNjZjYTIyYzcxMDJjZGEwMDhkMzNlODdlZWYuLjYxNTA5YjNjMDZhY2FlY2U3YjEwYTJmYmNj
NDAzNjViNDcwMTM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzQyLDYgKzM0Miw3IEBAIEdyYXBo
aWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVyUHVycG9z
ZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyKGZhbHNl
KQorICAgICwgbV9uZWVkc0Z1bGxSZXBhaW50KGZhbHNlKQogICAgICwgbV91bmNvbW1pdHRlZENo
YW5nZXMoMCkKICAgICAsIG1faXNDb21taXR0aW5nQ2hhbmdlcyhmYWxzZSkKIHsKQEAgLTcwOSw3
ICs3MTAsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUg
YmxlbmRNb2RlKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsK
LSAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7Cisg
ICAgbV9uZWVkc0Z1bGxSZXBhaW50ID0gdHJ1ZTsKKyAgICBtX2RpcnR5UmVjdHMuY2xlYXIoKTsK
KyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoRGlydHlSZWN0c0NoYW5nZWQpOworICAgIGFk
ZFJlcGFpbnRSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSkpOwogfQogCiB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYg
ciwgU2hvdWxkQ2xpcFRvTGF5ZXIgc2hvdWxkQ2xpcCkKQEAgLTcxNyw2ICs3MjEsOSBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYg
ciwgU2hvdWxkQ2xpcFRvTGF5ZQogICAgIGlmICghZHJhd3NDb250ZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChtX25lZWRzRnVsbFJlcGFpbnQpCisgICAgICAgIHJldHVybjsKKwog
ICAgIEZsb2F0UmVjdCByZWN0KHIpOwogICAgIGlmIChzaG91bGRDbGlwID09IENsaXBUb0xheWVy
KSB7CiAgICAgICAgIEZsb2F0UmVjdCBsYXllckJvdW5kcyhGbG9hdFBvaW50KCksIG1fc2l6ZSk7
CkBAIC0yMjcwLDExICsyMjc3LDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUNBQW5p
bWF0aW9uT25MYXllcihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIGNvbnN0CiAKIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpyZXBhaW50TGF5ZXJEaXJ0eVJlY3RzKCkKIHsKKyAgICBpZiAobV9u
ZWVkc0Z1bGxSZXBhaW50KSB7CisgICAgICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwor
ICAgICAgICBtX25lZWRzRnVsbFJlcGFpbnQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGlmICghbV9kaXJ0eVJlY3RzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RpcnR5UmVjdHMuc2l6ZSgpOyArK2kpCi0gICAg
ICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheSgmKG1fZGlydHlSZWN0c1tpXSkpOworICAgICAg
ICBtX2xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobV9kaXJ0eVJlY3RzW2ldKTsKICAgICAK
ICAgICBtX2RpcnR5UmVjdHMuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggOGY5MDM3ZTEzMTQ5
MmMyYWM4NWY4ZDU3Njg3M2JhN2E2YWVkNDBjMS4uZGIzZDJkNzI5MDE2NWEyYTljN2IwZmU0NTI0
ZjlkNGYzMWFjYmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTQ4Miw3ICs0ODIsOCBAQCBwcml2YXRlOgog
ICAgIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7CiAg
ICAgYm9vbCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyIDogMTsKLSAgICAKKyAgICBib29sIG1f
bmVlZHNGdWxsUmVwYWludCA6IDE7CisKICAgICBDb2xvciBtX2NvbnRlbnRzU29saWRDb2xvcjsK
IAogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3VuY29ycmVjdGVkQ29udGVudHNJbWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmgKaW5kZXggZGJmYmY4M2IxNTVmN2Q1NmI3Mzg2MmJhNzg4OWU0YmIxMjI0MTUyMi4u
ZmM3ZDBmMjM5NDFlYTc4Zjk3NmUzMDgxMjQwMmM5MjQxNmJkZjYzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAg
LTEwMyw3ICsxMDMsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSA9IDA7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRp
cnR5UmVjdCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXllcihQ
bGF0Zm9ybUNBTGF5ZXIqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1RpbGVHcmlkLmNwcAppbmRleCAzMzdlMWM5NDllZThhOTk4Mzk0NDBkNWU5ZjQ4
NjA1YWQ1ZTY3ZWMyLi41ZmNkNTVhN2FkMjY2OWI5NjhmZGUwZTk5OGMyMzJmZDMyZTgzNGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3Bw
CkBAIC0xNTIsMTEgKzE1MiwxMSBAQCB2b2lkIFRpbGVHcmlkOjpzZXRUaWxlTmVlZHNEaXNwbGF5
SW5SZWN0KGNvbnN0IFRpbGVJbmRleCYgdGlsZUluZGV4LCBUaWxlSW5mbyYgdAogICAgIC8vIFdl
IGNvdWxkIHRlc3QgZm9yIGludGVyc2VjdGlvbiB3aXRoIHRoZSB2aXNpYmxlIHJlY3QuIFRoaXMg
d291bGQgcmVkdWNlIHBhaW50aW5nIHlldCBtb3JlLAogICAgIC8vIGJ1dCBtYXkgbWFrZSBzY3Jv
bGxpbmcgc3RhbGUgdGlsZXMgaW50byB2aWV3IG1vcmUgZnJlcXVlbnQuCiAgICAgaWYgKHRpbGVS
ZWN0LmludGVyc2VjdHMoY292ZXJhZ2VSZWN0SW5UaWxlQ29vcmRzKSAmJiB0aWxlTGF5ZXItPnN1
cGVybGF5ZXIoKSkgewotICAgICAgICB0aWxlTGF5ZXItPnNldE5lZWRzRGlzcGxheSgmdGlsZVJl
cGFpbnRSZWN0KTsKKyAgICAgICAgdGlsZUxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QodGls
ZVJlcGFpbnRSZWN0KTsKIAogICAgICAgICBpZiAobV9jb250cm9sbGVyLnJvb3RMYXllcigpLm93
bmVyKCktPnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcigwKSkgewogICAgICAgICAg
ICAgRmxvYXRSZWN0IGluZGljYXRvclJlY3QoMCwgMCwgNTIsIDI3KTsKLSAgICAgICAgICAgIHRp
bGVMYXllci0+c2V0TmVlZHNEaXNwbGF5KCZpbmRpY2F0b3JSZWN0KTsKKyAgICAgICAgICAgIHRp
bGVMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGluZGljYXRvclJlY3QpOwogICAgICAgICB9
CiAgICAgfSBlbHNlCiAgICAgICAgIHRpbGVJbmZvLmhhc1N0YWxlQ29udGVudCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUxheWVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmgKaW5kZXggYmFiMWYyM2RjZmY3ZTE4OTNkZWM2NjQ4OGRlYzM3
NzFmNzg4ZmUzNC4uOTI1NWRmYjE3Y2I5YmMyZDJhYmEwMmIxNDZiMzBjNTMyYWRhZWJlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAtNDYsNyArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0T3duZXIoUGxhdGZvcm1DQUxheWVyQ2xpZW50Kikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0ID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxv
YXRSZWN0JiBkaXJ0eVJlY3QpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlDb250
ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0KaW5kZXggNTMyZjlmMDdlZWE3YTg1MjI0Y2U2YzU0Y2JhYzRiMzMzMjA1ZjQy
Yy4uNGIzZGNiM2ExZDE0Yzk3NGE2OWVhNWRlMDk0NjIwMDMxMmNmNjk0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUxheWVyTWFjLm1tCkBAIC0zMzEsMTMgKzMzMSwxNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ck1hYzo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdp
blRpbQogICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJl
Z2luVGltZSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0
TmVlZHNEaXNwbGF5KCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBp
ZiAoZGlydHlSZWN0KQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXlJblJl
Y3Q6KmRpcnR5UmVjdF07Ci0gICAgZWxzZQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVk
c0Rpc3BsYXldOworICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheV07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQoreworICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlz
cGxheUluUmVjdDpkaXJ0eVJlY3RdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDMwNGMxOTE1YmEzYzAxOTNkOTBk
YzVlNGUwN2Q4MjQzMDk2ZDAwZmMuLmUyOWNkOGI1NjNmM2MwNmFiYzUzMjEyM2MzMzZjNjkxMzQz
NTU1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTIwMywxNyArMjAzLDE5
IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVCYWNraW5nU3RvcmUoKQogICAg
IG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmVuc3VyZUJhY2tpbmdTdG9yZShtX3Byb3BlcnRp
ZXMuYm91bmRzLnNpemUoKSwgbV9wcm9wZXJ0aWVzLmNvbnRlbnRzU2NhbGUsIG1fYWNjZWxlcmF0
ZXNEcmF3aW5nLCBtX3Byb3BlcnRpZXMub3BhcXVlKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIHJlY3QpCit2b2lkIFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKICAgICBlbnN1cmVCYWNraW5nU3RvcmUoKTsKIAotICAgIGlmICghcmVjdCkg
ewotICAgICAgICBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5zZXROZWVkc0Rpc3BsYXkoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBOZWVkIHRvIG1hcCB0aGlz
IHRocm91Z2ggY29udGVudHNSZWN0L2V0Yy4KLSAgICBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3Jl
LT5zZXROZWVkc0Rpc3BsYXkoZW5jbG9zaW5nSW50UmVjdCgqcmVjdCkpOworICAgIG1fcHJvcGVy
dGllcy5iYWNraW5nU3RvcmUtPnNldE5lZWRzRGlzcGxheShlbmNsb3NpbmdJbnRSZWN0KHJlY3Qp
KTsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheSgpCit7
CisgICAgZW5zdXJlQmFja2luZ1N0b3JlKCk7CisKKyAgICBtX3Byb3BlcnRpZXMuYmFja2luZ1N0
b3JlLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmgKaW5kZXggODZmNmZjYmJmMjdmOTE2MzZmN2RkYTBlMzNjZDU2NWMyZDM1
MjhkNi4uZjEwMThmNzNiYjlmNWNhZThmZDMxZDgyNjA5MjUyYWE3YzAyNmU4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZS5oCkBAIC01MSw3ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVDb250ZXh0JiwgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3Bs
YXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgZGlydHlSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNw
bGF5KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVy
KFBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20uaAppbmRleCBlNmRkMjJkMmI1NTBiNmYxNDUwYWIyNmE4OTgzYjQ4YTJhMjdiZTk0
Li4xZGFhNmUyZGU3YTcwN2MyMWM1Mzg4ZjNiZWE2MDY4YWI2ZjVjZmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB1aW50MzJfdCBob3N0aW5nQ29udGV4dElEKCkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCogZGly
dHlSZWN0ID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheUlu
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZSwgUGxhdGZvcm1MYXllciAqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
IG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLm1tCmluZGV4IGMwY2I5MjJmNDRmYmEwMDM4YTNhOTY1N2I3YWRmNjU1NmU0
Y2U4OWIuLjY2MmNlNTgzY2M1YzUwODNiZDAzODM4Mzg0YzhlMzUzMDM5Yjg3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC0xMzEsMTUgKzEzMSwyMCBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6c2V0Q29udGVudHMoQ0ZUeXBlUmVmIGNv
bnRlbnRzKQogICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0Q29udGVudHM6KGlkKWNvbnRlbnRzXTsK
IH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheShj
b25zdCBGbG9hdFJlY3QqIHJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAo
bV9wcm92aWRlc0NvbnRlbnRzKSB7Ci0gICAgICAgIGlmIChyZWN0KQotICAgICAgICAgICAgW21f
cGxhdGZvcm1MYXllciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6KnJlY3RdOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBbbV9wbGF0Zm9ybUxheWVyIHNldE5lZWRzRGlzcGxheV07Ci0gICAgfSBl
bHNlCi0gICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KHJlY3Qp
OworICAgIGlmIChtX3Byb3ZpZGVzQ29udGVudHMpCisgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOworICAgIGVsc2UKKyAgICAgICAgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXROZWVkc0Rpc3BsYXkoKQoreworICAgIGlmICht
X3Byb3ZpZGVzQ29udGVudHMpCisgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0TmVlZHNEaXNw
bGF5XTsKKyAgICBlbHNlCisgICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNE
aXNwbGF5KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCmluZGV4IDg4ZWIxZDEwZDExYmNkYmVl
OWUxMWVlYzZlMzZjMmMzNGIzMTY5ODkuLjVjZGZlNWQ1YjFjZTc0MTFkMzQyMzU5YmZkMjFjYjcx
YzlmMTUyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5jcHAKQEAgLTQ2LDEyICs0NiwxNCBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJh
Y2tpbmc6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoKQogewogfQogCi12b2lk
IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0
IEZsb2F0UmVjdCogZGlydHlSZWN0KQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJh
Y2tpbmc6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkK
IHsKLSAgICBpZiAoZGlydHlSZWN0KQotICAgICAgICBtX3RpbGVDb250cm9sbGVyLT5zZXROZWVk
c0Rpc3BsYXlJblJlY3QoZW5jbG9zaW5nSW50UmVjdCgqZGlydHlSZWN0KSk7Ci0gICAgZWxzZQot
ICAgICAgICBtX3RpbGVDb250cm9sbGVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBtX3RpbGVD
b250cm9sbGVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoZW5jbG9zaW5nSW50UmVjdChkaXJ0eVJl
Y3QpKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5l
ZWRzRGlzcGxheSgpCit7CisgICAgbV90aWxlQ29udHJvbGxlci0+c2V0TmVlZHNEaXNwbGF5KCk7
CiB9CiAKIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIFBsYXRmb3JtQ0FMYXll
clJlbW90ZVRpbGVkQmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlVGlsZWRCYWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCmluZGV4IGZhM2U0NWNmN2M5ODgw
YTZhYjYwYzczODAzMmZhMWQxNjQxOGU3MDkuLmNjMWQyMzIyNGZmZTJmMzE2ZGRjZDc1NzRlOTk3
YjMzZjAwZjc4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJh
Y2tpbmcuaApAQCAtNDAsNyArNDAsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fdGlsZUNv
bnRyb2xsZXIuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZGlydHlSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxp
c3QqIGN1c3RvbVN1YmxheWVycygpIGNvbnN0IG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236549</attachid>
            <date>2014-08-13 14:01:41 -0700</date>
            <delta_ts>2014-08-13 15:25:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135900-20140813140131.patch</filename>
            <type>text/plain</type>
            <size>17242</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdkODQyNDhhM2U5Yzky
YzViOTZjMzA2MzU3ODFiMDRhYTZlNDI0MS4uN2JiOTgxMGUzNzUwN2VlNGViYzE1YWMxM2Y1MzE4
OWQzYjk4YTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA4LTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTkwMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnZlcnRpbmcgRmxvYXRSZWN0Ojpp
bmZpbml0ZVJlY3QoKSB0byBJbnRSZWN0IGxlYWRzIHRvIHZhbHVlIG92ZXJmbG93CisgICAgICAg
IGFuZCB3ZSBlbmQgdXAgd2l0aCBpbnZhbGlkIHJlcGFpbnQgcmVjdGFuZ2xlLiBVc2UgYSBib29s
ZWFuIGZsYWcgdG8gaW5kaWNhdGUKKyAgICAgICAgZnVsbCByZXBhaW50IHJlcXVlc3QuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnNldE5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnJlcGFpbnRMYXllckRpcnR5UmVjdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVH
cmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpzZXRUaWxlTmVlZHNEaXNwbGF5
SW5SZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxh
eWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5
KToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToK
KwogMjAxNC0wOC0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgRG9udCBhbGxvY2F0ZSBHQ29uZCBpbiBWaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGR5bmFt
aWNhbGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDRiMmZkNmE4OWIyMzc2ODU0NTE4ZTQwMzE4YTY0ZjAwMDMy
NzFjYzYuLjBiMzZlMmRhZGJhNGMyYzEzNjllMTc5MzQ0MWRjZTk4MDFjYTlmNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNC0wOC0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgorCisgICAgICAgIERvIG5vdCB1c2UgRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSB0
byBmbGFnIGZ1bGwgcmVwYWludHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzU5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb252ZXJ0aW5nIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkgdG8gSW50
UmVjdCBsZWFkcyB0byB2YWx1ZSBvdmVyZmxvdworICAgICAgICBhbmQgd2UgZW5kIHVwIHdpdGgg
aW52YWxpZCByZXBhaW50IHJlY3RhbmdsZS4gVXNlIGEgYm9vbGVhbiBmbGFnIHRvIGluZGljYXRl
CisgICAgICAgIGZ1bGwgcmVwYWludCByZXF1ZXN0LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAg
KFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXROZWVkc0Rpc3BsYXlJblJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5l
ZWRzRGlzcGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNw
bGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oOgorCiAyMDE0LTA4LTEyICBHcnplZ29yeiBDemFqa293c2tpICA8
Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbmFtZSBld2tfcHJp
dmF0ZS5oIHRvIEV3a0RlYnVnLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYjVkMTVlYzEzNjFkZDUzMWE3ZWZjMmJhZWFj
NWVmMjBkMjUzYzUwNi4uODVkMGYzYThlYjUyMTYxNzNhZDgzN2MwYTc3MWQzMmEyMDI1OTQxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKQEAgLTU3MSwxOCArNTcxLDE5IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6cmVzZXRUcmFj
a2VkUmVwYWludHMoKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OmFkZFJlcGFpbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCiB7Ci0gICAgaWYgKG1fY2xpZW50LmlzVHJhY2tpbmdS
ZXBhaW50cygpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBsYXJnZXN0UmVwYWludFJlY3QoRmxvYXRQ
b2ludCgpLCBtX3NpemUpOwotICAgICAgICBsYXJnZXN0UmVwYWludFJlY3QuaW50ZXJzZWN0KHJl
cGFpbnRSZWN0KTsKLSAgICAgICAgUmVwYWludE1hcDo6aXRlcmF0b3IgcmVwYWludEl0ID0gcmVw
YWludFJlY3RNYXAoKS5maW5kKHRoaXMpOwotICAgICAgICBpZiAocmVwYWludEl0ID09IHJlcGFp
bnRSZWN0TWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJlcGFp
bnRSZWN0czsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0cy5hcHBlbmQobGFyZ2VzdFJlcGFpbnRS
ZWN0KTsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0TWFwKCkuc2V0KHRoaXMsIHJlcGFpbnRSZWN0
cyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiYgcmVw
YWludFJlY3RzID0gcmVwYWludEl0LT52YWx1ZTsKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0cy5h
cHBlbmQobGFyZ2VzdFJlcGFpbnRSZWN0KTsKLSAgICAgICAgfQorICAgIGlmICghbV9jbGllbnQu
aXNUcmFja2luZ1JlcGFpbnRzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEZsb2F0UmVjdCBs
YXJnZXN0UmVwYWludFJlY3QoRmxvYXRQb2ludCgpLCBtX3NpemUpOworICAgIGxhcmdlc3RSZXBh
aW50UmVjdC5pbnRlcnNlY3QocmVwYWludFJlY3QpOworICAgIFJlcGFpbnRNYXA6Oml0ZXJhdG9y
IHJlcGFpbnRJdCA9IHJlcGFpbnRSZWN0TWFwKCkuZmluZCh0aGlzKTsKKyAgICBpZiAocmVwYWlu
dEl0ID09IHJlcGFpbnRSZWN0TWFwKCkuZW5kKCkpIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVj
dD4gcmVwYWludFJlY3RzOworICAgICAgICByZXBhaW50UmVjdHMuYXBwZW5kKGxhcmdlc3RSZXBh
aW50UmVjdCk7CisgICAgICAgIHJlcGFpbnRSZWN0TWFwKCkuc2V0KHRoaXMsIHJlcGFpbnRSZWN0
cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4mIHJlcGFpbnRSZWN0
cyA9IHJlcGFpbnRJdC0+dmFsdWU7CisgICAgICAgIHJlcGFpbnRSZWN0cy5hcHBlbmQobGFyZ2Vz
dFJlcGFpbnRSZWN0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDlkOGM5Y2E4NjRh
YjFkNjZjYTIyYzcxMDJjZGEwMDhkMzNlODdlZWYuLjM5NzhjMTA2Y2JiOGRkYmQ3MTgwYjRjMzM4
OGY2NzAyNWYxMzY1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMzQyLDYgKzM0Miw3IEBAIEdyYXBo
aWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVyUHVycG9z
ZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyKGZhbHNl
KQorICAgICwgbV9uZWVkc0Z1bGxSZXBhaW50KGZhbHNlKQogICAgICwgbV91bmNvbW1pdHRlZENo
YW5nZXMoMCkKICAgICAsIG1faXNDb21taXR0aW5nQ2hhbmdlcyhmYWxzZSkKIHsKQEAgLTcwOSw3
ICs3MTAsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEJsZW5kTW9kZShCbGVuZE1vZGUg
YmxlbmRNb2RlKQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsK
LSAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7Cisg
ICAgaWYgKCFkcmF3c0NvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZWVkc0Z1
bGxSZXBhaW50ID0gdHJ1ZTsKKyAgICBtX2RpcnR5UmVjdHMuY2xlYXIoKTsKKyAgICBub3RlTGF5
ZXJQcm9wZXJ0eUNoYW5nZWQoRGlydHlSZWN0c0NoYW5nZWQpOworICAgIGFkZFJlcGFpbnRSZWN0
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSkpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgciwgU2hvdWxkQ2xp
cFRvTGF5ZXIgc2hvdWxkQ2xpcCkKQEAgLTcxNyw2ICs3MjQsOSBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgciwgU2hvdWxkQ2xp
cFRvTGF5ZQogICAgIGlmICghZHJhd3NDb250ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmIChtX25lZWRzRnVsbFJlcGFpbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIEZsb2F0UmVj
dCByZWN0KHIpOwogICAgIGlmIChzaG91bGRDbGlwID09IENsaXBUb0xheWVyKSB7CiAgICAgICAg
IEZsb2F0UmVjdCBsYXllckJvdW5kcyhGbG9hdFBvaW50KCksIG1fc2l6ZSk7CkBAIC0yMjcwLDEx
ICsyMjgwLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUNBQW5pbWF0aW9uT25MYXll
cihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjpyZXBhaW50TGF5ZXJEaXJ0eVJlY3RzKCkKIHsKKyAgICBpZiAobV9uZWVkc0Z1bGxSZXBh
aW50KSB7CisgICAgICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAgICAgICBtX25l
ZWRzRnVsbFJlcGFpbnQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
ICghbV9kaXJ0eVJlY3RzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2RpcnR5UmVjdHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgmKG1fZGlydHlSZWN0c1tpXSkpOworICAgICAgICBtX2xheWVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QobV9kaXJ0eVJlY3RzW2ldKTsKICAgICAKICAgICBtX2RpcnR5
UmVjdHMuY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggOGY5MDM3ZTEzMTQ5MmMyYWM4NWY4ZDU3
Njg3M2JhN2E2YWVkNDBjMS4uZGIzZDJkNzI5MDE2NWEyYTljN2IwZmU0NTI0ZjlkNGYzMWFjYmU1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKQEAgLTQ4Miw3ICs0ODIsOCBAQCBwcml2YXRlOgogICAgIAogICAgIENv
bnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7CiAgICAgYm9vbCBtX2lz
UGFnZVRpbGVkQmFja2luZ0xheWVyIDogMTsKLSAgICAKKyAgICBib29sIG1fbmVlZHNGdWxsUmVw
YWludCA6IDE7CisKICAgICBDb2xvciBtX2NvbnRlbnRzU29saWRDb2xvcjsKIAogICAgIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBtX3VuY29ycmVjdGVkQ29udGVudHNJbWFnZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5k
ZXggZGJmYmY4M2IxNTVmN2Q1NmI3Mzg2MmJhNzg4OWU0YmIxMjI0MTUyMi4uZmM3ZDBmMjM5NDFl
YTc4Zjk3NmUzMDgxMjQwMmM5MjQxNmJkZjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTEwMyw3ICsxMDMs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBT
dHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSA9IDA7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5
ZXIqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1RpbGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Rp
bGVHcmlkLmNwcAppbmRleCAzMzdlMWM5NDllZThhOTk4Mzk0NDBkNWU5ZjQ4NjA1YWQ1ZTY3ZWMy
Li41ZmNkNTVhN2FkMjY2OWI5NjhmZGUwZTk5OGMyMzJmZDMyZTgzNGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCkBAIC0xNTIsMTEg
KzE1MiwxMSBAQCB2b2lkIFRpbGVHcmlkOjpzZXRUaWxlTmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0
IFRpbGVJbmRleCYgdGlsZUluZGV4LCBUaWxlSW5mbyYgdAogICAgIC8vIFdlIGNvdWxkIHRlc3Qg
Zm9yIGludGVyc2VjdGlvbiB3aXRoIHRoZSB2aXNpYmxlIHJlY3QuIFRoaXMgd291bGQgcmVkdWNl
IHBhaW50aW5nIHlldCBtb3JlLAogICAgIC8vIGJ1dCBtYXkgbWFrZSBzY3JvbGxpbmcgc3RhbGUg
dGlsZXMgaW50byB2aWV3IG1vcmUgZnJlcXVlbnQuCiAgICAgaWYgKHRpbGVSZWN0LmludGVyc2Vj
dHMoY292ZXJhZ2VSZWN0SW5UaWxlQ29vcmRzKSAmJiB0aWxlTGF5ZXItPnN1cGVybGF5ZXIoKSkg
ewotICAgICAgICB0aWxlTGF5ZXItPnNldE5lZWRzRGlzcGxheSgmdGlsZVJlcGFpbnRSZWN0KTsK
KyAgICAgICAgdGlsZUxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QodGlsZVJlcGFpbnRSZWN0
KTsKIAogICAgICAgICBpZiAobV9jb250cm9sbGVyLnJvb3RMYXllcigpLm93bmVyKCktPnBsYXRm
b3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcigwKSkgewogICAgICAgICAgICAgRmxvYXRSZWN0
IGluZGljYXRvclJlY3QoMCwgMCwgNTIsIDI3KTsKLSAgICAgICAgICAgIHRpbGVMYXllci0+c2V0
TmVlZHNEaXNwbGF5KCZpbmRpY2F0b3JSZWN0KTsKKyAgICAgICAgICAgIHRpbGVMYXllci0+c2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGluZGljYXRvclJlY3QpOwogICAgICAgICB9CiAgICAgfSBlbHNl
CiAgICAgICAgIHRpbGVJbmZvLmhhc1N0YWxlQ29udGVudCA9IHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxh
eWVyTWFjLmgKaW5kZXggYmFiMWYyM2RjZmY3ZTE4OTNkZWM2NjQ4OGRlYzM3NzFmNzg4ZmUzNC4u
OTI1NWRmYjE3Y2I5YmMyZDJhYmEwMmIxNDZiMzBjNTMyYWRhZWJlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMuaApAQCAtNDYsNyArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3duZXIoUGxhdGZvcm1DQUxheWVyQ2xpZW50Kikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0
eVJlY3QpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXll
cihQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0K
aW5kZXggNTMyZjlmMDdlZWE3YTg1MjI0Y2U2YzU0Y2JhYzRiMzMzMjA1ZjQyYy4uNGIzZGNiM2Ex
ZDE0Yzk3NGE2OWVhNWRlMDk0NjIwMDMxMmNmNjk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
Lm1tCkBAIC0zMzEsMTMgKzMzMSwxNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0
aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbQogICAgICAg
ICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGltZSk7CiB9
CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRS
ZWN0KiBkaXJ0eVJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5
KCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBpZiAoZGlydHlSZWN0
KQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6KmRpcnR5UmVj
dF07Ci0gICAgZWxzZQotICAgICAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXldOwor
ICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheV07CisgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5
SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQoreworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgIFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheUluUmVjdDpk
aXJ0eVJlY3RdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDMwNGMxOTE1YmEzYzAxOTNkOTBkYzVlNGUwN2Q4MjQz
MDk2ZDAwZmMuLmUyOWNkOGI1NjNmM2MwNmFiYzUzMjEyM2MzMzZjNjkxMzQzNTU1M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTIwMywxNyArMjAzLDE5IEBAIHZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVCYWNraW5nU3RvcmUoKQogICAgIG1fcHJvcGVydGll
cy5iYWNraW5nU3RvcmUtPmVuc3VyZUJhY2tpbmdTdG9yZShtX3Byb3BlcnRpZXMuYm91bmRzLnNp
emUoKSwgbV9wcm9wZXJ0aWVzLmNvbnRlbnRzU2NhbGUsIG1fYWNjZWxlcmF0ZXNEcmF3aW5nLCBt
X3Byb3BlcnRpZXMub3BhcXVlKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNl
dE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIHJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsK
ICAgICBlbnN1cmVCYWNraW5nU3RvcmUoKTsKIAotICAgIGlmICghcmVjdCkgewotICAgICAgICBt
X3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBOZWVkIHRvIG1hcCB0aGlzIHRocm91Z2ggY29u
dGVudHNSZWN0L2V0Yy4KLSAgICBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5zZXROZWVkc0Rp
c3BsYXkoZW5jbG9zaW5nSW50UmVjdCgqcmVjdCkpOworICAgIG1fcHJvcGVydGllcy5iYWNraW5n
U3RvcmUtPnNldE5lZWRzRGlzcGxheShlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgZW5zdXJl
QmFja2luZ1N0b3JlKCk7CisKKyAgICBtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5zZXROZWVk
c0Rpc3BsYXkoKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNvcHlDb250ZW50
c0Zyb21MYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmgKaW5kZXggODZmNmZjYmJmMjdmOTE2MzZmN2RkYTBlMzNjZDU2NWMyZDM1MjhkNi4uZjEwMThm
NzNiYjlmNWNhZThmZDMxZDgyNjA5MjUyYWE3YzAyNmU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oCkBAIC01MSw3ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVjdXJzaXZlQnVp
bGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVDb250ZXh0JiwgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGlydHlS
ZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FM
YXllciopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApp
bmRleCBlNmRkMjJkMmI1NTBiNmYxNDUwYWIyNmE4OTgzYjQ4YTJhMjdiZTk0Li4xZGFhNmUyZGU3
YTcwN2MyMWM1Mzg4ZjNiZWE2MDY4YWI2ZjVjZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB1
aW50MzJfdCBob3N0aW5nQ29udGV4dElEKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFBsYXRmb3JtQ0FM
YXllclJlbW90ZUN1c3RvbShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgUGxh
dGZvcm1MYXllciAqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1v
dGVMYXllclRyZWVDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
Lm1tCmluZGV4IGMwY2I5MjJmNDRmYmEwMDM4YTNhOTY1N2I3YWRmNjU1NmU0Y2U4OWIuLjY2MmNl
NTgzY2M1YzUwODNiZDAzODM4Mzg0YzhlMzUzMDM5Yjg3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC0xMzEsMTUgKzEzMSwyMCBAQCB2b2lkIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbTo6c2V0Q29udGVudHMoQ0ZUeXBlUmVmIGNvbnRlbnRzKQogICAg
IFttX3BsYXRmb3JtTGF5ZXIgc2V0Q29udGVudHM6KGlkKWNvbnRlbnRzXTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJl
Y3QqIHJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6c2V0TmVlZHNEaXNw
bGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAobV9wcm92aWRlc0Nv
bnRlbnRzKSB7Ci0gICAgICAgIGlmIChyZWN0KQotICAgICAgICAgICAgW21fcGxhdGZvcm1MYXll
ciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6KnJlY3RdOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBbbV9wbGF0Zm9ybUxheWVyIHNldE5lZWRzRGlzcGxheV07Ci0gICAgfSBlbHNlCi0gICAgICAg
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KHJlY3QpOworICAgIGlmICht
X3Byb3ZpZGVzQ29udGVudHMpCisgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0TmVlZHNEaXNw
bGF5SW5SZWN0OnJlY3RdOworICAgIGVsc2UKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tOjpzZXROZWVkc0Rpc3BsYXkoKQoreworICAgIGlmIChtX3Byb3ZpZGVzQ29u
dGVudHMpCisgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0TmVlZHNEaXNwbGF5XTsKKyAgICBl
bHNlCisgICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwCmluZGV4IDg4ZWIxZDEwZDExYmNkYmVlOWUxMWVlYzZlMzZj
MmMzNGIzMTY5ODkuLjVjZGZlNWQ1YjFjZTc0MTFkMzQyMzU5YmZkMjFjYjcxYzlmMTUyNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKQEAg
LTQ2LDEyICs0NiwxNCBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6On5QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoKQogewogfQogCi12b2lkIFBsYXRmb3JtQ0FM
YXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCog
ZGlydHlSZWN0KQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5l
ZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkKIHsKLSAgICBpZiAo
ZGlydHlSZWN0KQotICAgICAgICBtX3RpbGVDb250cm9sbGVyLT5zZXROZWVkc0Rpc3BsYXlJblJl
Y3QoZW5jbG9zaW5nSW50UmVjdCgqZGlydHlSZWN0KSk7Ci0gICAgZWxzZQotICAgICAgICBtX3Rp
bGVDb250cm9sbGVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBtX3RpbGVDb250cm9sbGVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QoZW5jbG9zaW5nSW50UmVjdChkaXJ0eVJlY3QpKTsKK30KKwor
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5lZWRzRGlzcGxheSgp
Cit7CisgICAgbV90aWxlQ29udHJvbGxlci0+c2V0TmVlZHNEaXNwbGF5KCk7CiB9CiAKIGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVk
QmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNr
aW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZVRpbGVkQmFja2luZy5oCmluZGV4IGZhM2U0NWNmN2M5ODgwYTZhYjYwYzczODAz
MmZhMWQxNjQxOGU3MDkuLmNjMWQyMzIyNGZmZTJmMzE2ZGRjZDc1NzRlOTk3YjMzZjAwZjc4ZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaApAQCAt
NDAsNyArNDAsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tp
bmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fdGlsZUNvbnRyb2xsZXIuZ2V0
KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGlydHlSZWN0KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIGN1c3RvbVN1
YmxheWVycygpIGNvbnN0IG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236556</attachid>
            <date>2014-08-13 15:25:05 -0700</date>
            <delta_ts>2014-08-15 15:35:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135900-20140813152455.patch</filename>
            <type>text/plain</type>
            <size>21974</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdkODQyNDhhM2U5Yzky
YzViOTZjMzA2MzU3ODFiMDRhYTZlNDI0MS4uZmJmNDllNjk1ZjNmOWE2YzI3NjAzMzcyZWM1YTI4
NTIyMDM1OGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA4LTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTkwMAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDb252ZXJ0aW5nIEZsb2F0UmVjdDo6aW5m
aW5pdGVSZWN0KCkgdG8gSW50UmVjdCBsZWFkcyB0byB2YWx1ZSBvdmVyZmxvdworICAgICAgICBh
bmQgd2UgZW5kIHVwIHdpdGggaW52YWxpZCByZXBhaW50IHJlY3RhbmdsZS4gVXNlIGEgYm9vbGVh
biBmbGFnIHRvIGluZGljYXRlCisgICAgICAgIGZ1bGwgcmVwYWludCByZXF1ZXN0LgorCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpHcmFwaGljc0xheWVyQ0EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZXBhaW50TGF5ZXJEaXJ0eVJlY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6c2V0VGlsZU5lZWRzRGlzcGxheUlu
UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5
ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisK
IDIwMTQtMDgtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIERvbnQgYWxsb2NhdGUgR0NvbmQgaW4gVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBkeW5hbWlj
YWxseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA0YjJmZDZhODliMjM3Njg1NDUxOGU0MDMxOGE2NGYwMDAzMjcx
Y2M2Li43YjU5N2FhYjZlMGI5YTNiNzdmMmJjMzQ1ZjVmMDBhMWE0YmM3ZThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTQtMDgtMTMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBEbyBub3QgdXNlIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkgdG8g
ZmxhZyBmdWxsIHJlcGFpbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM1OTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgor
CisgICAgICAgIENvbnZlcnRpbmcgRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSB0byBJbnRSZWN0
IGxlYWRzIHRvIHZhbHVlIG92ZXJmbG93CisgICAgICAgIGFuZCB3ZSBlbmQgdXAgd2l0aCBpbnZh
bGlkIHJlcGFpbnQgcmVjdGFuZ2xlLiBVc2UgYSBib29sZWFuIGZsYWcgdG8gaW5kaWNhdGUKKyAg
ICAgICAgZnVsbCByZXBhaW50IHJlcXVlc3QuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
ZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnNldE5lZWRzRGlzcGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheUluUmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6c2V0TmVlZHNE
aXNwbGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZVRpbGVkQmFja2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXll
clJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdl
YktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXROZWVkc0Rpc3BsYXkp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
VGlsZWRCYWNraW5nLmg6CisKIDIwMTQtMDgtMTIgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6
YWprb3dza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVuYW1lIGV3a19wcml2YXRl
LmggdG8gRXdrRGVidWcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBiNWQxNWVjMTM2MWRkNTMxYTdlZmMyYmFlYWM1ZWYy
MGQyNTNjNTA2Li44NWQwZjNhOGViNTIxNjE3M2FkODM3YzBhNzcxZDMyYTIwMjU5NDE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cApAQCAtNTcxLDE4ICs1NzEsMTkgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpyZXNldFRyYWNrZWRS
ZXBhaW50cygpCiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6YWRkUmVwYWludFJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZXBhaW50UmVjdCkKIHsKLSAgICBpZiAobV9jbGllbnQuaXNUcmFja2luZ1JlcGFp
bnRzKCkpIHsKLSAgICAgICAgRmxvYXRSZWN0IGxhcmdlc3RSZXBhaW50UmVjdChGbG9hdFBvaW50
KCksIG1fc2l6ZSk7Ci0gICAgICAgIGxhcmdlc3RSZXBhaW50UmVjdC5pbnRlcnNlY3QocmVwYWlu
dFJlY3QpOwotICAgICAgICBSZXBhaW50TWFwOjppdGVyYXRvciByZXBhaW50SXQgPSByZXBhaW50
UmVjdE1hcCgpLmZpbmQodGhpcyk7Ci0gICAgICAgIGlmIChyZXBhaW50SXQgPT0gcmVwYWludFJl
Y3RNYXAoKS5lbmQoKSkgewotICAgICAgICAgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVwYWludFJl
Y3RzOwotICAgICAgICAgICAgcmVwYWludFJlY3RzLmFwcGVuZChsYXJnZXN0UmVwYWludFJlY3Qp
OwotICAgICAgICAgICAgcmVwYWludFJlY3RNYXAoKS5zZXQodGhpcywgcmVwYWludFJlY3RzKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFZlY3RvcjxGbG9hdFJlY3Q+JiByZXBhaW50
UmVjdHMgPSByZXBhaW50SXQtPnZhbHVlOwotICAgICAgICAgICAgcmVwYWludFJlY3RzLmFwcGVu
ZChsYXJnZXN0UmVwYWludFJlY3QpOwotICAgICAgICB9CisgICAgaWYgKCFtX2NsaWVudC5pc1Ry
YWNraW5nUmVwYWludHMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IGxhcmdl
c3RSZXBhaW50UmVjdChGbG9hdFBvaW50KCksIG1fc2l6ZSk7CisgICAgbGFyZ2VzdFJlcGFpbnRS
ZWN0LmludGVyc2VjdChyZXBhaW50UmVjdCk7CisgICAgUmVwYWludE1hcDo6aXRlcmF0b3IgcmVw
YWludEl0ID0gcmVwYWludFJlY3RNYXAoKS5maW5kKHRoaXMpOworICAgIGlmIChyZXBhaW50SXQg
PT0gcmVwYWludFJlY3RNYXAoKS5lbmQoKSkgeworICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiBy
ZXBhaW50UmVjdHM7CisgICAgICAgIHJlcGFpbnRSZWN0cy5hcHBlbmQobGFyZ2VzdFJlcGFpbnRS
ZWN0KTsKKyAgICAgICAgcmVwYWludFJlY3RNYXAoKS5zZXQodGhpcywgcmVwYWludFJlY3RzKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBWZWN0b3I8RmxvYXRSZWN0PiYgcmVwYWludFJlY3RzID0g
cmVwYWludEl0LT52YWx1ZTsKKyAgICAgICAgcmVwYWludFJlY3RzLmFwcGVuZChsYXJnZXN0UmVw
YWludFJlY3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggOWQ4YzljYTg2NGFiMWQ2
NmNhMjJjNzEwMmNkYTAwOGQzM2U4N2VlZi4uODk2YjZlZDJmNmU2MmEyZWU5M2ViOWVkOTIwZGVm
MDRlNWNiMDY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zNDIsNiArMzQyLDcgQEAgR3JhcGhpY3NM
YXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAg
IDogR3JhcGhpY3NMYXllcihjbGllbnQpCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5v
Q29udGVudHNMYXllcikKICAgICAsIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIoZmFsc2UpCisg
ICAgLCBtX25lZWRzRnVsbFJlcGFpbnQoZmFsc2UpCiAgICAgLCBtX3VuY29tbWl0dGVkQ2hhbmdl
cygwKQogICAgICwgbV9pc0NvbW1pdHRpbmdDaGFuZ2VzKGZhbHNlKQogewpAQCAtNzA5LDcgKzcx
MCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QmxlbmRNb2RlKEJsZW5kTW9kZSBibGVu
ZE1vZGUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXROZWVkc0Rpc3BsYXkoKQogewotICAg
IHNldE5lZWRzRGlzcGxheUluUmVjdChGbG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKTsKKyAgICBp
ZiAoIWRyYXdzQ29udGVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX25lZWRzRnVsbFJl
cGFpbnQgPSB0cnVlOworICAgIG1fZGlydHlSZWN0cy5jbGVhcigpOworICAgIG5vdGVMYXllclBy
b3BlcnR5Q2hhbmdlZChEaXJ0eVJlY3RzQ2hhbmdlZCk7CisgICAgYWRkUmVwYWludFJlY3QoRmxv
YXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNB
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBTaG91bGRDbGlwVG9M
YXllciBzaG91bGRDbGlwKQpAQCAtNzE3LDYgKzcyNCw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNB
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBTaG91bGRDbGlwVG9M
YXllCiAgICAgaWYgKCFkcmF3c0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KG1fbmVlZHNGdWxsUmVwYWludCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgRmxvYXRSZWN0IHJl
Y3Qocik7CiAgICAgaWYgKHNob3VsZENsaXAgPT0gQ2xpcFRvTGF5ZXIpIHsKICAgICAgICAgRmxv
YXRSZWN0IGxheWVyQm91bmRzKEZsb2F0UG9pbnQoKSwgbV9zaXplKTsKQEAgLTIyNzAsMTEgKzIy
ODAsMTggQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBhdXNlQ0FBbmltYXRpb25PbkxheWVyKEFu
aW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnJlcGFpbnRMYXllckRpcnR5UmVjdHMoKQogeworICAgIGlmIChtX25lZWRzRnVsbFJlcGFpbnQp
IHsKKyAgICAgICAgQVNTRVJUKCFtX2RpcnR5UmVjdHMuc2l6ZSgpKTsKKyAgICAgICAgbV9sYXll
ci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgICAgIG1fbmVlZHNGdWxsUmVwYWludCA9IGZhbHNl
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX2RpcnR5UmVjdHMuc2l6ZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZGlydHlS
ZWN0cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9sYXllci0+c2V0TmVlZHNEaXNwbGF5KCYobV9k
aXJ0eVJlY3RzW2ldKSk7CisgICAgICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdCht
X2RpcnR5UmVjdHNbaV0pOwogICAgIAogICAgIG1fZGlydHlSZWN0cy5jbGVhcigpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaAppbmRleCA4ZjkwMzdlMTMxNDkyYzJhYzg1ZjhkNTc2ODczYmE3YTZhZWQ0MGMxLi5kYjNk
MmQ3MjkwMTY1YTJhOWM3YjBmZTQ1MjRmOWQ0ZjMxYWNiZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtNDgy
LDcgKzQ4Miw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9j
b250ZW50c0xheWVyUHVycG9zZTsKICAgICBib29sIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIg
OiAxOwotICAgIAorICAgIGJvb2wgbV9uZWVkc0Z1bGxSZXBhaW50IDogMTsKKwogICAgIENvbG9y
IG1fY29udGVudHNTb2xpZENvbG9yOwogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fdW5j
b3JyZWN0ZWRDb250ZW50c0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCBkYmZiZjgzYjE1NWY3ZDU2Yjcz
ODYyYmE3ODg5ZTRiYjEyMjQxNTIyLi5mYzdkMGYyMzk0MWVhNzhmOTc2ZTMwODEyNDAyYzkyNDE2
YmRmNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtMTAzLDcgKzEwMyw4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRl
cnZhbCBiZWdpblRpbWUpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXllciopID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCmluZGV4IDMzN2Ux
Yzk0OWVlOGE5OTgzOTQ0MGQ1ZTlmNDg2MDVhZDVlNjdlYzIuLjVmY2Q1NWE3YWQyNjY5Yjk2OGZk
ZTBlOTk4YzIzMmZkMzJlODM0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKQEAgLTE1MiwxMSArMTUyLDExIEBAIHZvaWQgVGlsZUdy
aWQ6OnNldFRpbGVOZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgVGlsZUluZGV4JiB0aWxlSW5kZXgs
IFRpbGVJbmZvJiB0CiAgICAgLy8gV2UgY291bGQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uIHdpdGgg
dGhlIHZpc2libGUgcmVjdC4gVGhpcyB3b3VsZCByZWR1Y2UgcGFpbnRpbmcgeWV0IG1vcmUsCiAg
ICAgLy8gYnV0IG1heSBtYWtlIHNjcm9sbGluZyBzdGFsZSB0aWxlcyBpbnRvIHZpZXcgbW9yZSBm
cmVxdWVudC4KICAgICBpZiAodGlsZVJlY3QuaW50ZXJzZWN0cyhjb3ZlcmFnZVJlY3RJblRpbGVD
b29yZHMpICYmIHRpbGVMYXllci0+c3VwZXJsYXllcigpKSB7Ci0gICAgICAgIHRpbGVMYXllci0+
c2V0TmVlZHNEaXNwbGF5KCZ0aWxlUmVwYWludFJlY3QpOworICAgICAgICB0aWxlTGF5ZXItPnNl
dE5lZWRzRGlzcGxheUluUmVjdCh0aWxlUmVwYWludFJlY3QpOwogCiAgICAgICAgIGlmIChtX2Nv
bnRyb2xsZXIucm9vdExheWVyKCkub3duZXIoKS0+cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRD
b3VudGVyKDApKSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgaW5kaWNhdG9yUmVjdCgwLCAwLCA1
MiwgMjcpOwotICAgICAgICAgICAgdGlsZUxheWVyLT5zZXROZWVkc0Rpc3BsYXkoJmluZGljYXRv
clJlY3QpOworICAgICAgICAgICAgdGlsZUxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoaW5k
aWNhdG9yUmVjdCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgdGlsZUluZm8uaGFz
U3RhbGVDb250ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCBiYWIxZjIz
ZGNmZjdlMTg5M2RlYzY2NDg4ZGVjMzc3MWY3ODhmZTM0Li45MjU1ZGZiMTdjYjliYzJkMmFiYTAy
YjE0NmIzMGM1MzJhZGFlYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC00Niw3ICs0
Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRPd25lcihQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXko
Y29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
RGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29weUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXllciopIG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA1MzJmOWYwN2VlYTdhODUy
MjRjZTZjNTRjYmFjNGIzMzMyMDVmNDJjLi40YjNkY2IzYTFkMTRjOTc0YTY5ZWE1ZGUwOTQ2MjAw
MzEyY2Y2OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTMzMSwxMyArMzMxLDE3
IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmlu
ZyYsIENGVGltZUludGVydmFsIGJlZ2luVGltCiAgICAgICAgIG1fb3duZXItPnBsYXRmb3JtQ0FM
YXllckFuaW1hdGlvblN0YXJ0ZWQoYmVnaW5UaW1lKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCkKK3ZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXkoKQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwotICAgIGlmIChkaXJ0eVJlY3QpCi0gICAgICAgIFttX2xheWVyLmdl
dCgpIHNldE5lZWRzRGlzcGxheUluUmVjdDoqZGlydHlSZWN0XTsKLSAgICBlbHNlCi0gICAgICAg
IFttX2xheWVyLmdldCgpIHNldE5lZWRzRGlzcGxheV07CisgICAgW21fbGF5ZXIuZ2V0KCkgc2V0
TmVlZHNEaXNwbGF5XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQg
UGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0
JiBkaXJ0eVJlY3QpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgW21f
bGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OmRpcnR5UmVjdF07CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4
IDU4MWFlZjZjNDQ2MDg5NzY1YTQzYjQzOWE1ZGJmN2Q3YzkzZGQ5ZjMuLjViMDU1NDEwNmRlNzkz
OWU0MmI1MzlkYTU2MjA5ZWIyNmNmNWIxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
CkBAIC0yMDgsNiArMjA4LDE2IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25T
dGFydGVkKGNvbnN0IFN0cmluZyYsIENGVGltZUludGVydmFsIGJlZ2luVGltCiAgICAgICAgIG1f
b3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0ZWQoYmVnaW5UaW1lKTsKIH0KIAor
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9h
dFJlY3QmIGRpcnR5UmVjdCkKK3sKKyAgICBpbnRlcm4odGhpcyktPnNldE5lZWRzRGlzcGxheUlu
UmVjdChkaXJ0eVJlY3QpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TmVlZHNE
aXNwbGF5KCkKK3sKKyAgICBpbnRlcm4odGhpcyktPnNldE5lZWRzRGlzcGxheSgpOworfQorCiB2
b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCog
ZGlydHlSZWN0KQogewogICAgIGludGVybih0aGlzKS0+c2V0TmVlZHNEaXNwbGF5KGRpcnR5UmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
UGxhdGZvcm1DQUxheWVyV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKaW5kZXggMmRmYzQyNmQzNDliZGY3YjM4ZTMxMjg0
YjU5ZjBiYWE5ZjhiNDRkNi4uZmRmNWU1OWEyMjQzODliZWQ5NjliODNkMzkwODQ2YTk5MDRiYzVj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaApAQCAtMzcsNyArMzcsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgflBsYXRmb3JtQ0FMYXllcldpbigpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0
eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1D
QUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJu
YWwuY3BwCmluZGV4IDZmZWU4NDAxM2U3MDIwNzkzZGUxZjhhMjI3ZmYyNGU5ZjZkODYzYTUuLmM2
NTRkMGExOWVjYjU4NTdiMDU1NTQwYWY3NmMxOTZiYWY1MzMyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMTYwLDE2ICsxNjAsMTkgQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6aW50ZXJuYWxTZXROZWVkc0Rpc3BsYXkoY29uc3Qg
RmxvYXRSZWN0KiBkaXJ0eVIKICAgICAgICAgQ0FDRkxheWVyU2V0TmVlZHNEaXNwbGF5KG93bmVy
KCktPnBsYXRmb3JtTGF5ZXIoKSwgMCk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50
ZXJuYWw6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCkKK3ZvaWQg
UGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgaW50
ZXJuYWxTZXROZWVkc0Rpc3BsYXkoMCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50
ZXJuYWw6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkK
IHsKICAgICBpZiAobGF5ZXJUeXBlSXNUaWxlZChtX293bmVyLT5sYXllclR5cGUoKSkpIHsKICAg
ICAgICAgLy8gRklYTUU6IE9ubHkgc2V0TmVlZHNEaXNwbGF5IGZvciB0aWxlcyB0aGF0IGFyZSBj
dXJyZW50bHkgdmlzaWJsZQogICAgICAgICBpbnQgbnVtVGlsZUxheWVycyA9IHRpbGVDb3VudCgp
OwotICAgICAgICBDR1JlY3QgcmVjdDsKLSAgICAgICAgaWYgKGRpcnR5UmVjdCkKLSAgICAgICAg
ICAgIHJlY3QgPSAqZGlydHlSZWN0OworICAgICAgICBDR1JlY3QgcmVjdCA9IGRpcnR5UmVjdDsK
ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1UaWxlTGF5ZXJzOyArK2kpCi0gICAgICAg
ICAgICBDQUNGTGF5ZXJTZXROZWVkc0Rpc3BsYXkodGlsZUF0SW5kZXgoaSksIGRpcnR5UmVjdCA/
ICZyZWN0IDogMCk7CisgICAgICAgICAgICBDQUNGTGF5ZXJTZXROZWVkc0Rpc3BsYXkodGlsZUF0
SW5kZXgoaSksICZyZWN0KTsKIAogICAgICAgICBpZiAobV9vd25lci0+b3duZXIoKSAmJiBtX293
bmVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIobV9vd25lcikp
IHsKICAgICAgICAgICAgIENHUmVjdCBsYXllckJvdW5kcyA9IG1fb3duZXItPmJvdW5kcygpOwpA
QCAtMTg5LDggKzE5Miw4IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OnNldE5l
ZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCkKICAgICAgICAgICAgICAgICAg
ICAgcmVwYWludENvdW50ZXJSZWN0LnNldFkobGF5ZXJCb3VuZHMuaGVpZ2h0KCkgLSAobGF5ZXJC
b3VuZHMueSgpICsgcmVwYWludENvdW50ZXJSZWN0LmhlaWdodCgpKSk7CiAgICAgICAgICAgICAg
ICAgaW50ZXJuYWxTZXROZWVkc0Rpc3BsYXkoJnJlcGFpbnRDb3VudGVyUmVjdCk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoZGlydHlSZWN0ICYmIG93bmVyKCktPm93bmVyKCktPnBs
YXRmb3JtQ0FMYXllckNvbnRlbnRzT3JpZW50YXRpb24oKSA9PSBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bikgewotICAgICAgICAgICAgICAgIEZs
b2F0UmVjdCBmbGlwcGVkRGlydHlSZWN0ID0gKmRpcnR5UmVjdDsKKyAgICAgICAgICAgIGlmIChv
d25lcigpLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09yaWVudGF0aW9uKCkgPT0g
V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd24pIHsK
KyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgZmxpcHBlZERpcnR5UmVjdCA9IGRpcnR5UmVjdDsK
ICAgICAgICAgICAgICAgICBmbGlwcGVkRGlydHlSZWN0LnNldFkob3duZXIoKS0+Ym91bmRzKCku
aGVpZ2h0KCkgLSAoZmxpcHBlZERpcnR5UmVjdC55KCkgKyBmbGlwcGVkRGlydHlSZWN0LmhlaWdo
dCgpKSk7CiAgICAgICAgICAgICAgICAgaW50ZXJuYWxTZXROZWVkc0Rpc3BsYXkoJmZsaXBwZWRE
aXJ0eVJlY3QpOwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbkludGVybmFsLmgKaW5kZXggNDFlMTVmYWE2NTFlZGYwYTVmZWQ0ZTNmMmI5ZDU2YTBk
ODY0ZGJhYS4uYTNmNWFiMGI3MTgwNDhmZWUzNzdkNTU0YTA3NTc2Zjc2NTJkOGNiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbkludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmgKQEAgLTQ4LDcgKzQ4LDggQEAgcHVi
bGljOgogICAgIH5QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbCgpOwogCiAgICAgdm9pZCBkaXNw
bGF5Q2FsbGJhY2soQ0FDRkxheWVyUmVmLCBDR0NvbnRleHRSZWYpOwotICAgIHZvaWQgc2V0TmVl
ZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCopOworICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCk7CiAgICAg
UGxhdGZvcm1DQUxheWVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KIAogICAg
IHZvaWQgc2V0U3VibGF5ZXJzKGNvbnN0IFBsYXRmb3JtQ0FMYXllckxpc3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCAzMDRjMTkxNWJhM2MwMTkzZDkwZGM1ZTRlMDdkODI0
MzA5NmQwMGZjLi5lMjljZDhiNTYzZjNjMDZhYmM1MzIxMjNjMzM2YzY5MTM0MzU1NTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCkBAIC0yMDMsMTcgKzIwMywxOSBAQCB2b2lkIFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQmFja2luZ1N0b3JlKCkKICAgICBtX3Byb3BlcnRp
ZXMuYmFja2luZ1N0b3JlLT5lbnN1cmVCYWNraW5nU3RvcmUobV9wcm9wZXJ0aWVzLmJvdW5kcy5z
aXplKCksIG1fcHJvcGVydGllcy5jb250ZW50c1NjYWxlLCBtX2FjY2VsZXJhdGVzRHJhd2luZywg
bV9wcm9wZXJ0aWVzLm9wYXF1ZSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
ZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiByZWN0KQordm9pZCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7
CiAgICAgZW5zdXJlQmFja2luZ1N0b3JlKCk7CiAKLSAgICBpZiAoIXJlY3QpIHsKLSAgICAgICAg
bV9wcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogTmVlZCB0byBtYXAgdGhpcyB0aHJvdWdoIGNv
bnRlbnRzUmVjdC9ldGMuCi0gICAgbV9wcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS0+c2V0TmVlZHNE
aXNwbGF5KGVuY2xvc2luZ0ludFJlY3QoKnJlY3QpKTsKKyAgICBtX3Byb3BlcnRpZXMuYmFja2lu
Z1N0b3JlLT5zZXROZWVkc0Rpc3BsYXkoZW5jbG9zaW5nSW50UmVjdChyZWN0KSk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkoKQoreworICAgIGVuc3Vy
ZUJhY2tpbmdTdG9yZSgpOworCisgICAgbV9wcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS0+c2V0TmVl
ZHNEaXNwbGF5KCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjb3B5Q29udGVu
dHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5oCmluZGV4IDg2ZjZmY2JiZjI3ZjkxNjM2ZjdkZGEwZTMzY2Q1NjVjMmQzNTI4ZDYuLmYxMDE4
ZjczYmI5ZjVjYWU4ZmQzMWQ4MjYwOTI1MmFhN2MwMjZlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaApAQCAtNTEsNyArNTEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY3Vyc2l2ZUJ1
aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYsIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRpcnR5
UmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlDb250ZW50c0Zyb21MYXllcihQbGF0Zm9ybUNB
TGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgK
aW5kZXggZTZkZDIyZDJiNTUwYjZmMTQ1MGFiMjZhODk4M2I0OGEyYTI3YmU5NC4uMWRhYTZlMmRl
N2E3MDdjMjFjNTM4OGYzYmVhNjA2OGFiNmY1Y2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbS5oCkBAIC00NCw3ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dWludDMyX3QgaG9zdGluZ0NvbnRleHRJRCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDAp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkaXJ0eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b20oV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFBs
YXRmb3JtTGF5ZXIgKiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbQppbmRleCBjMGNiOTIyZjQ0ZmJhMDAzOGEzYTk2NTdiN2FkZjY1NTZlNGNlODliLi42NjJj
ZTU4M2NjNWM1MDgzYmQwMzgzODM4NGM4ZTM1MzAzOWI4NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5tbQpAQCAtMTMxLDE1ICsxMzEsMjAgQEAgdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldENvbnRlbnRzKENGVHlwZVJlZiBjb250ZW50cykKICAg
ICBbbV9wbGF0Zm9ybUxheWVyIHNldENvbnRlbnRzOihpZCljb250ZW50c107CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRS
ZWN0KiByZWN0KQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlz
cGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYgKG1fcHJvdmlkZXND
b250ZW50cykgewotICAgICAgICBpZiAocmVjdCkKLSAgICAgICAgICAgIFttX3BsYXRmb3JtTGF5
ZXIgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OipyZWN0XTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgW21fcGxhdGZvcm1MYXllciBzZXROZWVkc0Rpc3BsYXldOwotICAgIH0gZWxzZQotICAgICAg
ICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheShyZWN0KTsKKyAgICBpZiAo
bV9wcm92aWRlc0NvbnRlbnRzKQorICAgICAgICBbbV9wbGF0Zm9ybUxheWVyIHNldE5lZWRzRGlz
cGxheUluUmVjdDpyZWN0XTsKKyAgICBlbHNlCisgICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBpZiAobV9wcm92aWRlc0Nv
bnRlbnRzKQorICAgICAgICBbbV9wbGF0Zm9ybUxheWVyIHNldE5lZWRzRGlzcGxheV07CisgICAg
ZWxzZQorICAgICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheSgpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcAppbmRleCA4OGViMWQxMGQxMWJjZGJlZTllMTFlZWM2ZTM2
YzJjMzRiMzE2OTg5Li41Y2RmZTVkNWIxY2U3NDExZDM0MjM1OWJmZDIxY2I3MWM5ZjE1MjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCkBA
IC00NiwxMiArNDYsMTQgQEAgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjp+UGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3Qq
IGRpcnR5UmVjdCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRO
ZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgaWYg
KGRpcnR5UmVjdCkKLSAgICAgICAgbV90aWxlQ29udHJvbGxlci0+c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGVuY2xvc2luZ0ludFJlY3QoKmRpcnR5UmVjdCkpOwotICAgIGVsc2UKLSAgICAgICAgbV90
aWxlQ29udHJvbGxlci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgbV90aWxlQ29udHJvbGxlci0+
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGVuY2xvc2luZ0ludFJlY3QoZGlydHlSZWN0KSk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXROZWVkc0Rpc3BsYXko
KQoreworICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQogCiBjb25z
dCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0KiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmc6OmN1c3RvbVN1YmxheWVycygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaAppbmRleCBmYTNlNDVjZjdjOTg4MGE2YWI2MGM3Mzgw
MzJmYTFkMTY0MThlNzA5Li5jYzFkMjMyMjRmZmUyZjMxNmRkY2Q3NTc0ZTk5N2IzM2YwMGY3OGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKQEAg
LTQwLDcgKzQwLDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6VGlsZWRCYWNr
aW5nKiB0aWxlZEJhY2tpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX3RpbGVDb250cm9sbGVyLmdl
dCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRpcnR5UmVjdCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0KiBjdXN0b21T
dWJsYXllcnMoKSBjb25zdCBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236681</attachid>
            <date>2014-08-15 15:35:51 -0700</date>
            <delta_ts>2014-08-15 21:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135900-20140815153541.patch</filename>
            <type>text/plain</type>
            <size>22209</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAyMjM5NWJiYjA0Nzll
Yzk2NjVjYzIwODU4MzZkYzM2NTQ3ODIxMS4uNGQzMWVkNjJhZWFjOWYzNzVhMzM2NjYwMDViYzUx
NDQ5NGJlOWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA4LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTkwMAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDb252ZXJ0aW5nIEZsb2F0UmVjdDo6aW5m
aW5pdGVSZWN0KCkgdG8gSW50UmVjdCBsZWFkcyB0byB2YWx1ZSBvdmVyZmxvdworICAgICAgICBh
bmQgd2UgZW5kIHVwIHdpdGggaW52YWxpZCByZXBhaW50IHJlY3RhbmdsZS4gVXNlIGEgYm9vbGVh
biBmbGFnIHRvIGluZGljYXRlCisgICAgICAgIGZ1bGwgcmVwYWludCByZXF1ZXN0LgorCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpHcmFwaGljc0xheWVyQ0EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpyZXBhaW50TGF5ZXJEaXJ0eVJlY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6c2V0VGlsZU5lZWRzRGlzcGxheUlu
UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5
ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisK
IDIwMTQtMDgtMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0VNRV1bTWFjXSBBZG9wdCBBVlN0cmVhbVNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzhjMjJmMjQ4
NzI5ODA3ZDEzYjA2Y2Y1ZTM0MzcwYmVhYTA3NmM2YS4uMjU5NWFjYzQzZDMwZWQzZWJiZjJmZDYy
OWM5YTMyZWNiNmZlOGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA4LTE1
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gbm90IHVzZSBG
bG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTkwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDb252ZXJ0aW5nIEZsb2F0UmVj
dDo6aW5maW5pdGVSZWN0KCkgdG8gSW50UmVjdCBsZWFkcyB0byB2YWx1ZSBvdmVyZmxvdworICAg
ICAgICBhbmQgd2UgZW5kIHVwIHdpdGggaW52YWxpZCByZXBhaW50IHJlY3RhbmdsZS4gVXNlIGEg
Ym9vbGVhbiBmbGFnIHRvIGluZGljYXRlCisgICAgICAgIGZ1bGwgcmVwYWludCByZXF1ZXN0Lgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b20uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbS5tbToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3Vz
dG9tOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldE5lZWRz
RGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oOgorCiAyMDE0LTA4LTE1
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggcGx1Z2luIHZpc2liaWxpdHkgY2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGI1ZDE1ZWMxMzYxZGQ1MzFhN2Vm
YzJiYWVhYzVlZjIwZDI1M2M1MDYuLjg1ZDBmM2E4ZWI1MjE2MTczYWQ4MzdjMGE3NzFkMzJhMjAy
NTk0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCkBAIC01NzEsMTggKzU3MSwxOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnJl
c2V0VHJhY2tlZFJlcGFpbnRzKCkKIAogdm9pZCBHcmFwaGljc0xheWVyOjphZGRSZXBhaW50UmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQogewotICAgIGlmIChtX2NsaWVudC5pc1Ry
YWNraW5nUmVwYWludHMoKSkgewotICAgICAgICBGbG9hdFJlY3QgbGFyZ2VzdFJlcGFpbnRSZWN0
KEZsb2F0UG9pbnQoKSwgbV9zaXplKTsKLSAgICAgICAgbGFyZ2VzdFJlcGFpbnRSZWN0LmludGVy
c2VjdChyZXBhaW50UmVjdCk7Ci0gICAgICAgIFJlcGFpbnRNYXA6Oml0ZXJhdG9yIHJlcGFpbnRJ
dCA9IHJlcGFpbnRSZWN0TWFwKCkuZmluZCh0aGlzKTsKLSAgICAgICAgaWYgKHJlcGFpbnRJdCA9
PSByZXBhaW50UmVjdE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBWZWN0b3I8RmxvYXRSZWN0
PiByZXBhaW50UmVjdHM7Ci0gICAgICAgICAgICByZXBhaW50UmVjdHMuYXBwZW5kKGxhcmdlc3RS
ZXBhaW50UmVjdCk7Ci0gICAgICAgICAgICByZXBhaW50UmVjdE1hcCgpLnNldCh0aGlzLCByZXBh
aW50UmVjdHMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlcGFpbnRSZWN0cyA9IHJlcGFpbnRJdC0+dmFsdWU7Ci0gICAgICAgICAgICByZXBhaW50
UmVjdHMuYXBwZW5kKGxhcmdlc3RSZXBhaW50UmVjdCk7Ci0gICAgICAgIH0KKyAgICBpZiAoIW1f
Y2xpZW50LmlzVHJhY2tpbmdSZXBhaW50cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBGbG9h
dFJlY3QgbGFyZ2VzdFJlcGFpbnRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKTsKKyAgICBsYXJn
ZXN0UmVwYWludFJlY3QuaW50ZXJzZWN0KHJlcGFpbnRSZWN0KTsKKyAgICBSZXBhaW50TWFwOjpp
dGVyYXRvciByZXBhaW50SXQgPSByZXBhaW50UmVjdE1hcCgpLmZpbmQodGhpcyk7CisgICAgaWYg
KHJlcGFpbnRJdCA9PSByZXBhaW50UmVjdE1hcCgpLmVuZCgpKSB7CisgICAgICAgIFZlY3RvcjxG
bG9hdFJlY3Q+IHJlcGFpbnRSZWN0czsKKyAgICAgICAgcmVwYWludFJlY3RzLmFwcGVuZChsYXJn
ZXN0UmVwYWludFJlY3QpOworICAgICAgICByZXBhaW50UmVjdE1hcCgpLnNldCh0aGlzLCByZXBh
aW50UmVjdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxGbG9hdFJlY3Q+JiByZXBh
aW50UmVjdHMgPSByZXBhaW50SXQtPnZhbHVlOworICAgICAgICByZXBhaW50UmVjdHMuYXBwZW5k
KGxhcmdlc3RSZXBhaW50UmVjdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA5ZDhj
OWNhODY0YWIxZDY2Y2EyMmM3MTAyY2RhMDA4ZDMzZTg3ZWVmLi44OTZiNmVkMmY2ZTYyYTJlZTkz
ZWI5ZWQ5MjBkZWYwNGU1Y2IwNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTM0Miw2ICszNDIsNyBA
QCBHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50JiBj
bGllbnQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAgICAsIG1fY29udGVudHNMYXll
clB1cnBvc2UoTm9Db250ZW50c0xheWVyKQogICAgICwgbV9pc1BhZ2VUaWxlZEJhY2tpbmdMYXll
cihmYWxzZSkKKyAgICAsIG1fbmVlZHNGdWxsUmVwYWludChmYWxzZSkKICAgICAsIG1fdW5jb21t
aXR0ZWRDaGFuZ2VzKDApCiAgICAgLCBtX2lzQ29tbWl0dGluZ0NoYW5nZXMoZmFsc2UpCiB7CkBA
IC03MDksNyArNzEwLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRCbGVuZE1vZGUoQmxl
bmRNb2RlIGJsZW5kTW9kZSkKIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE5lZWRzRGlzcGxh
eSgpCiB7Ci0gICAgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0
KCkpOworICAgIGlmICghZHJhd3NDb250ZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
bmVlZHNGdWxsUmVwYWludCA9IHRydWU7CisgICAgbV9kaXJ0eVJlY3RzLmNsZWFyKCk7CisgICAg
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERpcnR5UmVjdHNDaGFuZ2VkKTsKKyAgICBhZGRSZXBh
aW50UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3NpemUpKTsKIH0KIAogdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHIsIFNo
b3VsZENsaXBUb0xheWVyIHNob3VsZENsaXApCkBAIC03MTcsNiArNzI0LDkgQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHIsIFNo
b3VsZENsaXBUb0xheWUKICAgICBpZiAoIWRyYXdzQ29udGVudCgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAobV9uZWVkc0Z1bGxSZXBhaW50KQorICAgICAgICByZXR1cm47CisKICAgICBG
bG9hdFJlY3QgcmVjdChyKTsKICAgICBpZiAoc2hvdWxkQ2xpcCA9PSBDbGlwVG9MYXllcikgewog
ICAgICAgICBGbG9hdFJlY3QgbGF5ZXJCb3VuZHMoRmxvYXRQb2ludCgpLCBtX3NpemUpOwpAQCAt
MjI3MCwxMSArMjI4MCwxOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VDQUFuaW1hdGlv
bk9uTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdAogCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6cmVwYWludExheWVyRGlydHlSZWN0cygpCiB7CisgICAgaWYgKG1fbmVlZHNG
dWxsUmVwYWludCkgeworICAgICAgICBBU1NFUlQoIW1fZGlydHlSZWN0cy5zaXplKCkpOworICAg
ICAgICBtX2xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgbV9uZWVkc0Z1bGxSZXBh
aW50ID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fZGlydHlS
ZWN0cy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9kaXJ0eVJlY3RzLnNpemUoKTsgKytpKQotICAgICAgICBtX2xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoJihtX2RpcnR5UmVjdHNbaV0pKTsKKyAgICAgICAgbV9sYXllci0+c2V0TmVlZHNEaXNw
bGF5SW5SZWN0KG1fZGlydHlSZWN0c1tpXSk7CiAgICAgCiAgICAgbV9kaXJ0eVJlY3RzLmNsZWFy
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCmluZGV4IDhmOTAzN2UxMzE0OTJjMmFjODVmOGQ1NzY4NzNiYTdhNmFl
ZDQwYzEuLmRiM2QyZDcyOTAxNjVhMmE5YzdiMGZlNDUyNGY5ZDRmMzFhY2JlNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCkBAIC00ODIsNyArNDgyLDggQEAgcHJpdmF0ZToKICAgICAKICAgICBDb250ZW50c0xheWVy
UHVycG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOwogICAgIGJvb2wgbV9pc1BhZ2VUaWxlZEJh
Y2tpbmdMYXllciA6IDE7Ci0gICAgCisgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgOiAxOwor
CiAgICAgQ29sb3IgbV9jb250ZW50c1NvbGlkQ29sb3I7CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gbV91bmNvcnJlY3RlZENvbnRlbnRzSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IGRiZmJmODNi
MTU1ZjdkNTZiNzM4NjJiYTc4ODllNGJiMTIyNDE1MjIuLmZjN2QwZjIzOTQxZWE3OGY5NzZlMzA4
MTI0MDJjOTI0MTZiZGY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC0xMDMsNyArMTAzLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgU3RyaW5nJiBrZXks
IENGVGltZUludGVydmFsIGJlZ2luVGltZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpID0gMDsKIAogICAgIHZp
cnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3Jp
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAK
aW5kZXggMzM3ZTFjOTQ5ZWU4YTk5ODM5NDQwZDVlOWY0ODYwNWFkNWU2N2VjMi4uNWZjZDU1YTdh
ZDI2NjliOTY4ZmRlMGU5OThjMjMyZmQzMmU4MzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtMTUyLDExICsxNTIsMTEgQEAg
dm9pZCBUaWxlR3JpZDo6c2V0VGlsZU5lZWRzRGlzcGxheUluUmVjdChjb25zdCBUaWxlSW5kZXgm
IHRpbGVJbmRleCwgVGlsZUluZm8mIHQKICAgICAvLyBXZSBjb3VsZCB0ZXN0IGZvciBpbnRlcnNl
Y3Rpb24gd2l0aCB0aGUgdmlzaWJsZSByZWN0LiBUaGlzIHdvdWxkIHJlZHVjZSBwYWludGluZyB5
ZXQgbW9yZSwKICAgICAvLyBidXQgbWF5IG1ha2Ugc2Nyb2xsaW5nIHN0YWxlIHRpbGVzIGludG8g
dmlldyBtb3JlIGZyZXF1ZW50LgogICAgIGlmICh0aWxlUmVjdC5pbnRlcnNlY3RzKGNvdmVyYWdl
UmVjdEluVGlsZUNvb3JkcykgJiYgdGlsZUxheWVyLT5zdXBlcmxheWVyKCkpIHsKLSAgICAgICAg
dGlsZUxheWVyLT5zZXROZWVkc0Rpc3BsYXkoJnRpbGVSZXBhaW50UmVjdCk7CisgICAgICAgIHRp
bGVMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHRpbGVSZXBhaW50UmVjdCk7CiAKICAgICAg
ICAgaWYgKG1fY29udHJvbGxlci5yb290TGF5ZXIoKS5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJT
aG93UmVwYWludENvdW50ZXIoMCkpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCBpbmRpY2F0b3JS
ZWN0KDAsIDAsIDUyLCAyNyk7Ci0gICAgICAgICAgICB0aWxlTGF5ZXItPnNldE5lZWRzRGlzcGxh
eSgmaW5kaWNhdG9yUmVjdCk7CisgICAgICAgICAgICB0aWxlTGF5ZXItPnNldE5lZWRzRGlzcGxh
eUluUmVjdChpbmRpY2F0b3JSZWN0KTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICB0
aWxlSW5mby5oYXNTdGFsZUNvbnRlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCmlu
ZGV4IGJhYjFmMjNkY2ZmN2UxODkzZGVjNjY0ODhkZWMzNzcxZjc4OGZlMzQuLjkyNTVkZmIxN2Ni
OWJjMmQyYWJhMDJiMTQ2YjMwYzUzMmFkYWViZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgK
QEAgLTQ2LDcgKzQ2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldE93bmVyKFBs
YXRmb3JtQ0FMYXllckNsaWVudCopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxhdGZvcm1D
QUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDUzMmY5
ZjA3ZWVhN2E4NTIyNGNlNmM1NGNiYWM0YjMzMzIwNWY0MmMuLjRiM2RjYjNhMWQxNGM5NzRhNjll
YTVkZTA5NDYyMDAzMTJjZjY5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMzMx
LDEzICszMzEsMTcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgU3RyaW5nJiwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW0KICAgICAgICAgbV9vd25lci0+
cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChiZWdpblRpbWUpOwogfQogCi12b2lkIFBs
YXRmb3JtQ0FMYXllck1hYzo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlS
ZWN0KQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheSgpCiB7CiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgaWYgKGRpcnR5UmVjdCkKLSAgICAgICAg
W21fbGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OipkaXJ0eVJlY3RdOwotICAgIGVs
c2UKLSAgICAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TmVlZHNEaXNwbGF5XTsKKyAgICBbbV9sYXll
ci5nZXQoKSBzZXROZWVkc0Rpc3BsYXldOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
K30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25z
dCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICBbbV9sYXllci5nZXQoKSBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6ZGlydHlSZWN0XTsK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldp
bi5jcHAKaW5kZXggNTgxYWVmNmM0NDYwODk3NjVhNDNiNDM5YTVkYmY3ZDdjOTNkZDlmMy4uOWYw
MDAwZDcwY2FhYmUwNGM5NDdkOWYyMjE0OWRhMmMyOTQxMTZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbi5jcHAKQEAgLTIwOCwxMSArMjA4LDE2IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2lu
OjphbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYsIENGVGltZUludGVydmFsIGJlZ2luVGlt
CiAgICAgICAgIG1fb3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0ZWQoYmVnaW5U
aW1lKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW46OnNldE5lZWRzRGlzcGxheShjb25z
dCBGbG9hdFJlY3QqIGRpcnR5UmVjdCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjpzZXROZWVk
c0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAgaW50ZXJu
KHRoaXMpLT5zZXROZWVkc0Rpc3BsYXkoZGlydHlSZWN0KTsKKyAgICBpbnRlcm4odGhpcyktPnNl
dE5lZWRzRGlzcGxheUluUmVjdChkaXJ0eVJlY3QpOwogfQotICAgIAorCit2b2lkIFBsYXRmb3Jt
Q0FMYXllcldpbjo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBpbnRlcm4odGhpcyktPnNldE5l
ZWRzRGlzcGxheSgpOworfQorCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6c2V0TmVlZHNDb21t
aXQoKQogewogICAgIEFic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QqIGhvc3QgPSBsYXllclRyZWVI
b3N0Rm9yTGF5ZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKaW5kZXggMmRmYzQyNmQz
NDliZGY3YjM4ZTMxMjg0YjU5ZjBiYWE5ZjhiNDRkNi4uZmRmNWU1OWEyMjQzODliZWQ5NjliODNk
MzkwODQ2YTk5MDRiYzVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaApAQCAtMzcsNyArMzcs
OCBAQCBwdWJsaWM6CiAgICAgCiAgICAgflBsYXRmb3JtQ0FMYXllcldpbigpOwogCi0gICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDAp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
RmxvYXRSZWN0JiBkaXJ0eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c0Rpc3BsYXkoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9t
TGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5h
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1D
QUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4IDZmZWU4NDAxM2U3MDIwNzkzZGUxZjhhMjI3ZmYy
NGU5ZjZkODYzYTUuLmU3OTVjNzgxMjg2ZDE1MDIzNzNiY2QzZmIzZTQwZWVlY2ViOTViMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMTYwLDE2ICsx
NjAsMTkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbDo6aW50ZXJuYWxTZXROZWVk
c0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVIKICAgICAgICAgQ0FDRkxheWVyU2V0TmVl
ZHNEaXNwbGF5KG93bmVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgMCk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWw6OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIGRp
cnR5UmVjdCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OnNldE5lZWRzRGlzcGxh
eSgpCit7CisgICAgaW50ZXJuYWxTZXROZWVkc0Rpc3BsYXkoMCk7Cit9CisKK3ZvaWQgUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWw6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJl
Y3QmIGRpcnR5UmVjdCkKIHsKICAgICBpZiAobGF5ZXJUeXBlSXNUaWxlZChtX293bmVyLT5sYXll
clR5cGUoKSkpIHsKICAgICAgICAgLy8gRklYTUU6IE9ubHkgc2V0TmVlZHNEaXNwbGF5IGZvciB0
aWxlcyB0aGF0IGFyZSBjdXJyZW50bHkgdmlzaWJsZQogICAgICAgICBpbnQgbnVtVGlsZUxheWVy
cyA9IHRpbGVDb3VudCgpOwotICAgICAgICBDR1JlY3QgcmVjdDsKLSAgICAgICAgaWYgKGRpcnR5
UmVjdCkKLSAgICAgICAgICAgIHJlY3QgPSAqZGlydHlSZWN0OworICAgICAgICBDR1JlY3QgcmVj
dCA9IGRpcnR5UmVjdDsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1UaWxlTGF5ZXJz
OyArK2kpCi0gICAgICAgICAgICBDQUNGTGF5ZXJTZXROZWVkc0Rpc3BsYXkodGlsZUF0SW5kZXgo
aSksIGRpcnR5UmVjdCA/ICZyZWN0IDogMCk7CisgICAgICAgICAgICBDQUNGTGF5ZXJTZXROZWVk
c0Rpc3BsYXkodGlsZUF0SW5kZXgoaSksICZyZWN0KTsKIAogICAgICAgICBpZiAobV9vd25lci0+
b3duZXIoKSAmJiBtX293bmVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENv
dW50ZXIobV9vd25lcikpIHsKICAgICAgICAgICAgIENHUmVjdCBsYXllckJvdW5kcyA9IG1fb3du
ZXItPmJvdW5kcygpOwpAQCAtMTg5LDE1ICsxOTIsMTUgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJX
aW5JbnRlcm5hbDo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0KQog
ICAgICAgICAgICAgICAgICAgICByZXBhaW50Q291bnRlclJlY3Quc2V0WShsYXllckJvdW5kcy5o
ZWlnaHQoKSAtIChsYXllckJvdW5kcy55KCkgKyByZXBhaW50Q291bnRlclJlY3QuaGVpZ2h0KCkp
KTsKICAgICAgICAgICAgICAgICBpbnRlcm5hbFNldE5lZWRzRGlzcGxheSgmcmVwYWludENvdW50
ZXJSZWN0KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChkaXJ0eVJlY3QgJiYgb3du
ZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpID09IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duKSB7Ci0g
ICAgICAgICAgICAgICAgRmxvYXRSZWN0IGZsaXBwZWREaXJ0eVJlY3QgPSAqZGlydHlSZWN0Owor
ICAgICAgICAgICAgaWYgKG93bmVyKCktPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckNvbnRlbnRz
T3JpZW50YXRpb24oKSA9PSBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3Jk
aW5hdGVzVG9wRG93bikgeworICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBmbGlwcGVkRGlydHlS
ZWN0ID0gZGlydHlSZWN0OwogICAgICAgICAgICAgICAgIGZsaXBwZWREaXJ0eVJlY3Quc2V0WShv
d25lcigpLT5ib3VuZHMoKS5oZWlnaHQoKSAtIChmbGlwcGVkRGlydHlSZWN0LnkoKSArIGZsaXBw
ZWREaXJ0eVJlY3QuaGVpZ2h0KCkpKTsKICAgICAgICAgICAgICAgICBpbnRlcm5hbFNldE5lZWRz
RGlzcGxheSgmZmxpcHBlZERpcnR5UmVjdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaW50ZXJuYWxTZXROZWVkc0Rpc3BsYXko
ZGlydHlSZWN0KTsKKyAgICAgICAgaW50ZXJuYWxTZXROZWVkc0Rpc3BsYXkoJmRpcnR5UmVjdCk7
CiAgICAgfQogICAgIG93bmVyKCktPnNldE5lZWRzQ29tbWl0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2lu
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oCmluZGV4IDQxZTE1ZmFhNjUxZWRmMGE1ZmVkNGUzZjJi
OWQ1NmEwZDg2NGRiYWEuLmEzZjVhYjBiNzE4MDQ4ZmVlMzc3ZDU1NGEwNzU3NmY3NjUyZDhjYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oCkBAIC00OCw3ICs0OCw4
IEBAIHB1YmxpYzoKICAgICB+UGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwoKTsKIAogICAgIHZv
aWQgZGlzcGxheUNhbGxiYWNrKENBQ0ZMYXllclJlZiwgQ0dDb250ZXh0UmVmKTsKLSAgICB2b2lk
IHNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqKTsKKyAgICB2b2lkIHNldE5lZWRzRGlz
cGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2b2lkIHNldE5lZWRzRGlzcGxheSgp
OwogICAgIFBsYXRmb3JtQ0FMYXllciogb3duZXIoKSBjb25zdCB7IHJldHVybiBtX293bmVyOyB9
CiAKICAgICB2b2lkIHNldFN1YmxheWVycyhjb25zdCBQbGF0Zm9ybUNBTGF5ZXJMaXN0Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggMzA0YzE5MTViYTNjMDE5M2Q5MGRjNWU0
ZTA3ZDgyNDMwOTZkMDBmYy4uZTI5Y2Q4YjU2M2YzYzA2YWJjNTMyMTIzYzMzNmM2OTEzNDM1NTUz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMjAzLDE3ICsyMDMsMTkgQEAg
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0ZUJhY2tpbmdTdG9yZSgpCiAgICAgbV9w
cm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS0+ZW5zdXJlQmFja2luZ1N0b3JlKG1fcHJvcGVydGllcy5i
b3VuZHMuc2l6ZSgpLCBtX3Byb3BlcnRpZXMuY29udGVudHNTY2FsZSwgbV9hY2NlbGVyYXRlc0Ry
YXdpbmcsIG1fcHJvcGVydGllcy5vcGFxdWUpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogcmVjdCkKK3ZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogewogICAgIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwogCi0gICAgaWYgKCFyZWN0KSB7Ci0g
ICAgICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPnNldE5lZWRzRGlzcGxheSgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gbWFwIHRoaXMgdGhy
b3VnaCBjb250ZW50c1JlY3QvZXRjLgotICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPnNl
dE5lZWRzRGlzcGxheShlbmNsb3NpbmdJbnRSZWN0KCpyZWN0KSk7CisgICAgbV9wcm9wZXJ0aWVz
LmJhY2tpbmdTdG9yZS0+c2V0TmVlZHNEaXNwbGF5KGVuY2xvc2luZ0ludFJlY3QocmVjdCkpOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAg
ICBlbnN1cmVCYWNraW5nU3RvcmUoKTsKKworICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUt
PnNldE5lZWRzRGlzcGxheSgpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y29w
eUNvbnRlbnRzRnJvbUxheWVyKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaAppbmRleCA4NmY2ZmNiYmYyN2Y5MTYzNmY3ZGRhMGUzM2NkNTY1YzJkMzUyOGQ2
Li5mMTAxOGY3M2JiOWY1Y2FlOGZkMzFkODI2MDkyNTJhYTdjMDI2ZTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmgKQEAgLTUxLDcgKzUxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZWN1
cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZUNvbnRleHQmLCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBkaXJ0eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXko
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5Q29udGVudHNGcm9tTGF5ZXIoUGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbS5oCmluZGV4IGU2ZGQyMmQyYjU1MGI2ZjE0NTBhYjI2YTg5ODNiNDhhMmEyN2JlOTQuLjFk
YWE2ZTJkZTdhNzA3YzIxYzUzODhmM2JlYTYwNjhhYjZmNWNmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3Vz
dG9tLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20uaApAQCAtNDQsNyArNDQsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJl
Y3QgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGlydHlSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlLCBQbGF0Zm9ybUxheWVyICosIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20ubW0KaW5kZXggYzBjYjkyMmY0NGZiYTAwMzhhM2E5NjU3YjdhZGY2NTU2ZTRjZTg5
Yi4uNjYyY2U1ODNjYzVjNTA4M2JkMDM4MzgzODRjOGUzNTMwMzliODc2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KQEAgLTEzMSwxNSArMTMxLDIwIEBAIHZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXRDb250ZW50cyhDRlR5cGVSZWYgY29udGVu
dHMpCiAgICAgW21fcGxhdGZvcm1MYXllciBzZXRDb250ZW50czooaWQpY29udGVudHNdOwogfQog
Ci12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0
IEZsb2F0UmVjdCogcmVjdCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXRO
ZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmIChtX3By
b3ZpZGVzQ29udGVudHMpIHsKLSAgICAgICAgaWYgKHJlY3QpCi0gICAgICAgICAgICBbbV9wbGF0
Zm9ybUxheWVyIHNldE5lZWRzRGlzcGxheUluUmVjdDoqcmVjdF07Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0TmVlZHNEaXNwbGF5XTsKLSAgICB9IGVsc2UK
LSAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkocmVjdCk7Cisg
ICAgaWYgKG1fcHJvdmlkZXNDb250ZW50cykKKyAgICAgICAgW21fcGxhdGZvcm1MYXllciBzZXRO
ZWVkc0Rpc3BsYXlJblJlY3Q6cmVjdF07CisgICAgZWxzZQorICAgICAgICBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKK30KKwordm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgaWYgKG1fcHJv
dmlkZXNDb250ZW50cykKKyAgICAgICAgW21fcGxhdGZvcm1MYXllciBzZXROZWVkc0Rpc3BsYXld
OworICAgIGVsc2UKKyAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3Bs
YXkoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKaW5kZXggODhlYjFkMTBkMTFiY2RiZWU5ZTEx
ZWVjNmUzNmMyYzM0YjMxNjk4OS4uNWNkZmU1ZDViMWNlNzQxMWQzNDIzNTliZmQyMWNiNzFjOWYx
NTI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5n
LmNwcApAQCAtNDYsMTIgKzQ2LDE0IEBAIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zzo6flBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZygpCiB7CiB9CiAKLXZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxv
YXRSZWN0KiBkaXJ0eVJlY3QpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zzo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQogewot
ICAgIGlmIChkaXJ0eVJlY3QpCi0gICAgICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldE5lZWRzRGlz
cGxheUluUmVjdChlbmNsb3NpbmdJbnRSZWN0KCpkaXJ0eVJlY3QpKTsKLSAgICBlbHNlCi0gICAg
ICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldE5lZWRzRGlzcGxheSgpOworICAgIG1fdGlsZUNvbnRy
b2xsZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChlbmNsb3NpbmdJbnRSZWN0KGRpcnR5UmVjdCkp
OworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNE
aXNwbGF5KCkKK3sKKyAgICBtX3RpbGVDb250cm9sbGVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0K
IAogY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCogUGxhdGZvcm1DQUxheWVyUmVt
b3RlVGlsZWRCYWNraW5nOjpjdXN0b21TdWJsYXllcnMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVU
aWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKaW5kZXggZmEzZTQ1Y2Y3Yzk4ODBhNmFi
NjBjNzM4MDMyZmExZDE2NDE4ZTcwOS4uY2MxZDIzMjI0ZmZlMmYzMTZkZGNkNzU3NGU5OTdiMzNm
MDBmNzhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oCkBAIC00MCw3ICs0MCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRp
bGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV90aWxlQ29udHJv
bGxlci5nZXQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkaXJ0
eVJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCog
Y3VzdG9tU3VibGF5ZXJzKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>