<?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>74641</bug_id>
          
          <creation_ts>2011-12-15 12:49:15 -0800</creation_ts>
          <short_desc>[MutationObservers] Add a document-level flag that can trivially be checked to avoid doing unnessary work if mutation observers absent</short_desc>
          <delta_ts>2011-12-15 16:59:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rafael Weinstein">rafaelw</reporter>
          <assigned_to name="Rafael Weinstein">rafaelw</assigned_to>
          <cc>adamk</cc>
    
    <cc>macpherson</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522159</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-12-15 12:49:15 -0800</bug_when>
    <thetext>Right now, discovering there is no work to do still costs a number of function calls and checks. We should get this down to one function call and one check at most.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522170</commentid>
    <comment_count>1</comment_count>
      <attachid>119486</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-12-15 13:00:17 -0800</bug_when>
    <thetext>Created attachment 119486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522173</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 13:04:22 -0800</bug_when>
    <thetext>Attachment 119486 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/WebCore.vcproj/WebCore.vcproj:43816:  mismatched tag  [xml/syntax] [5]
Total errors found: 1 in 17 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>522236</commentid>
    <comment_count>3</comment_count>
      <attachid>119486</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-15 14:19:25 -0800</bug_when>
    <thetext>Comment on attachment 119486
Patch

Patch looks fine. EWS seems unhappy with your build file changes though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522260</commentid>
    <comment_count>4</comment_count>
      <attachid>119486</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-15 15:15:34 -0800</bug_when>
    <thetext>Comment on attachment 119486
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        This patch adds a byte of flags to Document, of which three bits are used to signal if any

Enum usually takes 4 bytes in 32-bit architecture and 8 bytes in 64-bit architecture due to alignments. Because the previous member variable (m_listenerTypes) is unsigned short, gcc/clang may pack it into the same 4 byte but cl.exe will almost certainly allocate 4 bytes for each. It&apos;s not big of a deal anyway though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522350</commentid>
    <comment_count>5</comment_count>
      <attachid>119486</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-15 16:59:45 -0800</bug_when>
    <thetext>Comment on attachment 119486
Patch

Clearing flags on attachment: 119486

Committed r103001: &lt;http://trac.webkit.org/changeset/103001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522351</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-15 16:59:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119486</attachid>
            <date>2011-12-15 13:00:17 -0800</date>
            <delta_ts>2011-12-15 16:59:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74641-20111215130016.patch</filename>
            <type>text/plain</type>
            <size>34982</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg5YTkxYzgzZDkyMGI1
MjE0ZjYwNDUzZjI2ZjMxN2YwMTRkZDYzYy4uYjVlZGVjYzM4NzRiYmY1YjM0YjgyMDMyYTRmODUw
NjU3ZTFiN2IxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDExLTEyLTE1ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW011dGF0aW9u
T2JzZXJ2ZXJzXSBBZGQgYSBkb2N1bWVudC1sZXZlbCBmbGFnIHRoYXQgY2FuIHRyaXZpYWxseSBi
ZSBjaGVja2VkIHRvIGF2b2lkIGRvaW5nIHVubmVzc2FyeSB3b3JrIGlmIG11dGF0aW9uIG9ic2Vy
dmVycyBhYnNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc0NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIGEgYnl0ZSBvZiBmbGFncyB0byBEb2N1bWVudCwgb2Ygd2hpY2gg
dGhyZWUgYml0cyBhcmUgdXNlZCB0byBzaWduYWwgaWYgYW55CisgICAgICAgIG5vZGUgb3duZWQg
YnkgdGhlIGRvY3VtZW50IGhhcyBhIE11dGF0aW9uIE9ic2VydmVyIG9mIHRoZSBnaXZlbiB0eXBl
LiBUaGlzIGlzIHVzZWQgdG8KKyAgICAgICAgcmVkdWNlIHRoZSBjb3N0IG9mIGRpc2NvdmVyaW5n
IHRoZXJlIGFyZSBub25lIHRvIGEgc2luZ2xlIChpbmxpbmVkKSBtZXRob2QgY2FsbCBhbmQgYml0
LWNoZWNrLgorICAgICAgICBBbHNvLCBhIHNpbWlsYXIgYnl0ZSBvZiBmbGFncyB3aGljaCB3YXMg
dXNlZCB0byBvcHRpbWl6ZSBhIHBhcnRpY3VsYXIgY2FzZSB3aGVuIG11dGF0aW9uIG9ic2VydmVy
cworICAgICAgICBhcmUgcHJlc2VudCBoYXMgYmVlbiByZW1vdmVkLCB3aXRoIHRoZSByZWFzb25p
bmcgdGhhdCB3ZSBzaG91bGQgZmlyc3QgZm9jdXMgb24gbWluaW1pemluZyBpbXBhY3Qgb24KKyAg
ICAgICAgdGhlIG51bGwtY2FzZSBiZWZvcmUgb3B0aW1pemluZyBwYXJ0aWN1bGFyIGluLXVzZSBj
YXNlcy4KKworICAgICAgICBBbHNvLCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCBpcyBi
cm9rZW4gb3V0IGludG8gaXRzIG93biBmaWxlICh3aGljaCBwcm9iYWJseSBzaG91bGQgaGF2ZSBo
YXBwZW5lZAorICAgICAgICBlYXJsaWVyLCBidXQgbm93IGF2b2lkcyBhIGNpcmN1bGFyIGhlYWRl
ciBkZXBlbmRlbmN5KS4KKworICAgICAgICBObyB0ZXN0cyBuZWVkZWQuIFRoaXMgcGF0Y2ggaXMg
anVzdCBhIHJlZmFjdG9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVy
RGF0YS5jcHA6CisgICAgICAgICogZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9j
dW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6Omhhc011dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpoYXNNdXRhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6YWRkTXV0YXRpb25PYnNlcnZlclR5cGVzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6
CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRl
SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3Jv
dXA6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjppc09sZFZhbHVlUmVxdWVzdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRp
b25SZWNvcmQpOgorICAgICAgICAqIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5o
LgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0
ZUZvckNoaWxkTGlzdE11dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwOjpjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA6OmNyZWF0ZUZvckF0dHJp
YnV0ZXNNdXRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2VydmVySW50ZXJl
c3RHcm91cDo6aGFzT2xkVmFsdWUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmRpZE1vdmVUb05ld093bmVyRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6Om5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzTm9kZVdpbGxEZXRhY2gp
OgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2Jz
ZXJ2ZSk6CisgICAgICAgICogZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDoKKwogMjAxMS0x
Mi0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBXVEY6OkZ1bmN0aW9uIHRvIHd0Zi9Gb3J3YXJkLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NGUyYTI0OWEzYjViNWIwMDFhNTY2NGExZGFkZTdiNzU5NjViNDhlZC4uMTc4YTJhMTk2OTEwZDMw
NDYxNzdlNzliYjUwYTRjN2ZhY2M1MTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU2MSw2
ICs1NjEsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAg
ICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAor
ICAgIGRvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAKKyAgICBkb20vTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKICAgICBkb20vTXV0YXRpb25SZWNvcmQuY3BwCiAg
ICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAgICBkb20vTmFtZU5vZGVMaXN0LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDcwYzNhN2IxNDA5YWVhYjJiOGY2ZGE3YjlhNmQw
ZjIxNWQzNjUwZS4uYTA0MWVhMjM5YTZkNWMzZjc2OWViNzE4N2Q5YzMzM2I1NGFkNGE2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMjgxLDYgKzEyODEsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJJbnRlcmVzdEdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCBmZGIxZjQ2NDJhNmI0MmI4ZmNhYjY4NTNhYzRjN2QyM2MyMjA0ODg3
Li4yMDRkZWM3NWE2NmVhNGM2ZjZjODYxZmI3ODhmNDZjZDg2MDg3YjZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
QEAgLTUyNyw2ICs1MjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vTW91c2VFdmVudC5jcHAg
XAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50
LmNwcCBcCisgICAgZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCBcCiAgICAg
ZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIFwKICAgICBkb20vTXV0YXRpb25S
ZWNvcmQuY3BwIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggOWNmNjY5OTdhNjY1MWVlZTc1MDNmZDJlMDIzOTlkMTkwOWI2MzhlYi4uMzBjOTE2ZTBiNmJi
NTIzYzlkYzhjZjdlMWU5MzE5YzY4ODllMjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTM0OCw2
ICs1MzQ4LDggQEAKICAgICAgICAgICAgICdkb20vTXV0YXRpb25DYWxsYmFjay5oJywKICAgICAg
ICAgICAgICdkb20vTXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bkV2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5o
JywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgnLAogICAgICAg
ICAgICAgJ2RvbS9NdXRhdGlvblJlY29yZC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5YzFjNjQ5ZDIwNmYyOTNlOTg2YzAxMGJhNGM5
ZmRkZmQzYzhmN2MzLi40NzFmMTExOTViMTRmMmYzMmZiMDk3N2ZhMDY2ZTYwYjYzNTUwZWI3IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDkz
MTcsNyArNDkzMTcsNyBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAiCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIgogCQkJ
CT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC00
OTM2OSw5ICs0OTM2OSw2NSBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvbk9ic2VydmVySW50
ZXJlc3RHcm91cC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisgICAg
ICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJh
dGlvbi5jcHAiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlQ29uZmln
dXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiIKKyAgICAgICAg
ICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAg
ID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3Vy
YXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAgICAgICAg
ICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAg
ID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3Vy
YXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAg
ICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAg
ICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgLz4K
KyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAg
ICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAg
ICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAg
ICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9vbAor
ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAg
ICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICBOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICA8VG9v
bAorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAg
ICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgor
ICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICBS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCisgICAg
ICAgICAgICAgICAgPgorICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxNdXRhdGlvblJlY29yZC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZmMDJiNDA5YWZl
NWVkMzMxY2ZmNWEzZTRhOGVmMDI3MzU5N2QxYTYuLmZkNWZjNzRlM2I0YzQwYTA4YTQ4ZGU2MGU2
ZTJiODVmZmFmNjBjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MzQsNiArNTgzNCw4IEBACiAJCUQ2MTlBMzA4MTQ0RTAw
QkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyog
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5oICovOyB9OwogCQlENkUyNzZBRjE0NjM3NDU1MDAxRDI4
MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENkUyNzZBRDE0NjM3NDU1MDAxRDI4MEEgLyog
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgKi87IH07CiAJCUQ2RTI3NkIwMTQ2Mzc0
NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENkUyNzZBRTE0NjM3NDU1MDAxRDI4
MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICovOyB9OworCQlENkU1MjhBMzE0
OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDZFNTI4QTExNDlBOTI2
RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcCAqLzsgfTsKKwkJ
RDZFNTI4QTQxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENkU1MjhB
MjE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCAqLzsg
fTsKIAkJRDcwQUQ2NTcxM0UxMzQyQjAwNUI1MEI0IC8qIFJlbmRlclJlZ2lvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzBBRDY1NTEzRTEzNDJC
MDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmNwcCAqLzsgfTsKIAkJRDcwQUQ2NTgxM0UxMzQyQjAw
NUI1MEI0IC8qIFJlbmRlclJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDcwQUQ2NTYxM0UxMzQyQjAwNUI1MEI0IC8qIFJlbmRlclJlZ2lvbi5o
ICovOyB9OwogCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRF
MTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwpAQCAtMTMyMTQs
NiArMTMyMTYsOCBAQAogCQlENjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyogQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZExpc3RN
dXRhdGlvblNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2RTI3NkFEMTQ2
Mzc0NTUwMDFEMjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENkUyNzZBRTE0NjM3NDU1MDAx
RDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ2RTUyOEExMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQ2RTUyOEEyMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENzBBRDY1NTEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclJlZ2lvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQ3MEFENjU2MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUmVnaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ3NjEzQTRBMTQ3NEVFOTUwMERCODYwNiAvKiBX
ZWJLaXROYW1lZEZsb3cuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE5hbWVkRmxv
dy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTMzMCw2ICsyMTMzNCw4IEBA
CiAJCQkJODUwMzFCMzMwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuY3BwICovLAog
CQkJCTg1MDMxQjM0MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmggKi8sCiAJCQkJ
OTNFRUMxRjMwOUMyODc3NzAwQzUxNUQxIC8qIE11dGF0aW9uRXZlbnQuaWRsICovLAorCQkJCUQ2
RTUyOEExMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5j
cHAgKi8sCisJCQkJRDZFNTI4QTIxNDlBOTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJ
bnRlcmVzdEdyb3VwLmggKi8sCiAJCQkJRDZFMjc2QUQxNDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0
aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwICovLAogCQkJCUQ2RTI3NkFFMTQ2Mzc0NTUwMDFE
MjgwQSAvKiBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmggKi8sCiAJCQkJQzZGMDhGQjkx
NDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLywKQEAgLTIzODA2LDYgKzIz
ODEyLDcgQEAKIAkJCQk5MzMwOURGQzA5OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA5MDBBMTQzMjdCNjEwMDY4NTg0OSAvKiBN
dXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0QTBBNDRFRkM3MDBG
OTkyRTAgLyogTXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDZFNTI4QTQxNDlB
OTI2RDAwRUZFMUYzIC8qIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlENkUyNzZCMDE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5
IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NzIyMzA5NzdEM0Mw
MDA1ODI2RDkgLyogTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODk2LDYgKzI2
OTAzLDcgQEAKIAkJCQk4NTAzMUI0NzBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxhdGVkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlERkIwOTlFNjQ5MjAwNTZFNTgxIC8qIE1v
dmVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQ5MEE0NEVG
QzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQ2RTUy
OEEzMTQ5QTkyNkQwMEVGRTFGMyAvKiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlENkUyNzZBRjE0NjM3NDU1MDAxRDI4MEEgLyogTXV0YXRpb25P
YnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOEZCQzE0MzBG
RThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNG
MzRBMzcxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDcwMWY4YTA0MDU1YTI4NjI3NDA1YWNmNWFiNWQ2NWMyODBlNmY4OGIuLjE2ODZhNTZh
MzdjNWEyNzgxMDA0YWEyODFlMGIxZmJjY2QzZTYyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2Vy
dmVySW50ZXJlc3RHcm91cC5oIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgiCiAjaW5jbHVk
ZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCA0NTdmNGNiMTI2NzMzYmM1OGRm
ZDYzZjA2NzBiNDhhMmZlNWE0NGM0Li4zODc5YTk3ZTkyMDJiMDAxMzQ0NWI2ODBhNjczMjhiYTJl
MmM5MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgi
CiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKaW5k
ZXggNThjMDg3YjBmNmYyNjBmMDI0ZWNhMTJmNGNhYmQ4MDcyMTZhYzM0MS4uZDM4OGY1MWFmYzgz
NDAyZTAwNTYwNDljNDNjMzIyNDhjZWQ2ZTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogCiAjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJNdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgi
CiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCBiOGY5N2E4NGI4YzJmNDA0NDQ2ZDMzNGUwZWM0YmRjYjkzYThk
ZDgzLi4zYjlkNjY4N2I4NzE1NzFmZDllNGRkNzU2NDFiMDFlYzA5YTg2ODUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgLCBtX2NvbXBhdGliaWxpdHlNb2RlTG9ja2VkKGZhbHNlKQogICAgICwgbV9kb21UcmVlVmVy
c2lvbigrK3NfZ2xvYmFsVHJlZVZlcnNpb24pCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKLSAgICAsIG1fc3VidHJlZU11dGF0aW9uT2JzZXJ2ZXJUeXBlcygwKQorICAgICwgbV9tdXRh
dGlvbk9ic2VydmVyVHlwZXMoMCkKICNlbmRpZgogICAgICwgbV9zdHlsZVNoZWV0cyhTdHlsZVNo
ZWV0TGlzdDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9yZWFkeVN0YXRlKENvbXBsZXRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAppbmRleCAxMTA3Y2Y0Y2Y3MThlNTVjNTkwZWEwOGM0OGY4ZjE5MjRlY2Q2
ZTZkLi5kMjkyMjViNTkzZDE5ZmZlZmM3ZWNlYjI3NDljMGQwNmI1YmM1ZDc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaApAQCAtNzg3LDEyICs3ODcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTGlz
dGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOwogCiAjaWYg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBib29sIGhhc1N1YnRyZWVNdXRhdGlvbk9i
c2VydmVyT2ZUeXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKSBj
b25zdAorICAgIGJvb2wgaGFzTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoV2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6TXV0YXRpb25UeXBlIHR5cGUpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
bV9zdWJ0cmVlTXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKKyAgICAgICAgcmV0dXJuIG1f
bXV0YXRpb25PYnNlcnZlclR5cGVzICYgdHlwZTsKICAgICB9Ci0gICAgYm9vbCBoYXNTdWJ0cmVl
TXV0YXRpb25PYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3VidHJlZU11dGF0aW9uT2JzZXJ2
ZXJUeXBlczsgfQotICAgIHZvaWQgYWRkU3VidHJlZU11dGF0aW9uT2JzZXJ2ZXJUeXBlcyhNdXRh
dGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX3N1YnRyZWVNdXRhdGlvbk9ic2VydmVyVHlw
ZXMgfD0gdHlwZXM7IH0KKyAgICBib29sIGhhc011dGF0aW9uT2JzZXJ2ZXJzKCkgY29uc3QgeyBy
ZXR1cm4gbV9tdXRhdGlvbk9ic2VydmVyVHlwZXM7IH0KKyAgICB2b2lkIGFkZE11dGF0aW9uT2Jz
ZXJ2ZXJUeXBlcyhNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyB0eXBlcykgeyBtX211dGF0aW9uT2Jz
ZXJ2ZXJUeXBlcyB8PSB0eXBlczsgfQogI2VuZGlmCiAKICAgICBDU1NTdHlsZURlY2xhcmF0aW9u
KiBnZXRPdmVycmlkZVN0eWxlKEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsdCk7CkBA
IC0xMjY3LDcgKzEyNjcsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fbGlzdGVu
ZXJUeXBlczsKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgTXV0YXRpb25P
YnNlcnZlck9wdGlvbnMgbV9zdWJ0cmVlTXV0YXRpb25PYnNlcnZlclR5cGVzOworICAgIE11dGF0
aW9uT2JzZXJ2ZXJPcHRpb25zIG1fbXV0YXRpb25PYnNlcnZlclR5cGVzOwogI2VuZGlmCiAKICAg
ICBSZWZQdHI8U3R5bGVTaGVldExpc3Q+IG1fc3R5bGVTaGVldHM7IC8vIEFsbCBvZiB0aGUgc3R5
bGVzaGVldHMgdGhhdCBhcmUgY3VycmVudGx5IGluIGVmZmVjdCBmb3Igb3VyIG1lZGlhIHR5cGUg
YW5kIHN0eWxlc2hlZXQgc2V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDNkZjdkMzM2Y2My
YjE1ZWNiYmEyZjE4OTZjYTk0OGI4YWRlZjZjY2UuLmMyMzU2NjA5OTUyMmNkMjc5NDlhNmM2YWY0
NjdlYWJhMGFkYzBmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiTXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXAuaCIKICNpbmNsdWRlICJNdXRhdGlvblJlY29yZC5oIgogI2lu
Y2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42OTk4NzUyY2Q1YjAwOTFlYWQ4YmRiMGMwMWI5NTU3OGI2ZThjNWU0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRl
cmVzdEdyb3VwLmgiCisKKyNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgi
CisjaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8
TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdy
b3VwOjpjcmVhdGVJZk5lZWRlZChOb2RlKiB0YXJnZXQsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIE11
dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVlRmxhZykKK3sKKyAgICBIYXNoTWFw
PFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4g
b2JzZXJ2ZXJzOworICAgIHRhcmdldC0+Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZU
eXBlKG9ic2VydmVycywgdHlwZSwgYXR0cmlidXRlTmFtZSk7CisgICAgaWYgKG9ic2VydmVycy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChvYnNlcnZlcnMsIG9sZFZhbHVlRmxh
ZykpOworfQorCitNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZl
ckludGVyZXN0R3JvdXAoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25S
ZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlP
cHRpb25zIG9sZFZhbHVlRmxhZykKKyAgICA6IG1fb2xkVmFsdWVGbGFnKG9sZFZhbHVlRmxhZykK
K3sKKyAgICBBU1NFUlQoIW9ic2VydmVycy5pc0VtcHR5KCkpOworICAgIG1fb2JzZXJ2ZXJzLnN3
YXAob2JzZXJ2ZXJzKTsKK30KKworYm9vbCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6
aXNPbGRWYWx1ZVJlcXVlc3RlZCgpCit7CisgICAgZm9yIChIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIg
PSBtX29ic2VydmVycy5iZWdpbigpOyBpdGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIp
IHsKKyAgICAgICAgaWYgKGhhc09sZFZhbHVlKGl0ZXItPnNlY29uZCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxN
dXRhdGlvblJlY29yZD4gcHJwTXV0YXRpb24pCit7CisgICAgUmVmUHRyPE11dGF0aW9uUmVjb3Jk
PiBtdXRhdGlvbiA9IHBycE11dGF0aW9uOworICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0
YXRpb25XaXRoTnVsbE9sZFZhbHVlOworICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9i
c2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0g
bV9vYnNlcnZlcnMuYmVnaW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7
CisgICAgICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7
CisgICAgICAgIGlmIChoYXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7CisgICAgICAgICAgICBv
YnNlcnZlci0+ZW5xdWV1ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmICghbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVl
KSB7CisgICAgICAgICAgICBpZiAobXV0YXRpb24tPm9sZFZhbHVlKCkuaXNOdWxsKCkpCisgICAg
ICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gbXV0YXRpb247CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gTXV0
YXRpb25SZWNvcmQ6OmNyZWF0ZVdpdGhOdWxsT2xkVmFsdWUobXV0YXRpb24pLmdldCgpOworICAg
ICAgICB9CisgICAgICAgIG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobXV0YXRpb25X
aXRoTnVsbE9sZFZhbHVlKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NzUx
YzhjZTUzNjVmNDQyOGMyMzZiZDRiM2RkN2ZlMWNlOTFkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAuaApAQCAtMCww
ICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cF9oCisjZGVmaW5l
IE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwX2gKKworI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNp
bmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZl
ci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0
ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICgh
dGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICAgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnID0gMDsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6Q2hpbGRMaXN0LCBudWxsQXRvbSwgb2xkVmFsdWVGbGFnKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlRm9y
Q2hhcmFjdGVyRGF0YU11dGF0aW9uKE5vZGUqIHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICgh
dGFyZ2V0LT5kb2N1bWVudCgpLT5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlwZShXZWJLaXRNdXRh
dGlvbk9ic2VydmVyOjpDaGFyYWN0ZXJEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXI6OkNoYXJhY3RlckRhdGEsIG51bGxBdG9tLCBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OjpDaGFyYWN0ZXJEYXRhT2xkVmFsdWUpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRy
PE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRp
b24oTm9kZSogdGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAg
IHsKKyAgICAgICAgaWYgKCF0YXJnZXQtPmRvY3VtZW50KCktPmhhc011dGF0aW9uT2JzZXJ2ZXJz
T2ZUeXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkF0dHJpYnV0ZXMpKQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlcywgYXR0cmlidXRlTmFtZS5sb2NhbE5h
bWUoKSwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6QXR0cmlidXRlT2xkVmFsdWUpOworICAgIH0K
KworICAgIGJvb2wgaXNPbGRWYWx1ZVJlcXVlc3RlZCgpOworICAgIHZvaWQgZW5xdWV1ZU11dGF0
aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+KTsKKworcHJpdmF0ZToKKyAgICBz
dGF0aWMgUGFzc093blB0cjxNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZO
ZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSwgTXV0YXRpb25SZWNvcmREZWxpdmVy
eU9wdGlvbnMgb2xkVmFsdWVGbGFnKTsKKyAgICBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91
cChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucz4mIG9ic2VydmVycywgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFs
dWVGbGFnKTsKKworICAgIGJvb2wgaGFzT2xkVmFsdWUoTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnMgb3B0aW9ucykgeyByZXR1cm4gb3B0aW9ucyAmIG1fb2xkVmFsdWVGbGFnOyB9CisKKyAg
ICBIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5
T3B0aW9ucz4gbV9vYnNlcnZlcnM7CisgICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMg
bV9vbGRWYWx1ZUZsYWc7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKQorCisjZW5kaWYgLy8gTXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXBfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IGVlZmM4YWFkYTRhMmMyYTRiMGE0MDVlY2E4ZDQ4NWUxNGVhNTQ4YzUu
Ljk0YzZkOGU3MDFjZGM2NzAxZTdlNTBjYmE1MWUyYWY2ODBiZWYyYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTI1MDQsMTUgKzI1MDQsMTMgQEAgdm9pZCBOb2RlOjpkaWRNb3ZlVG9OZXdPd25lckRv
Y3VtZW50KCkKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogICAgIGlmIChWZWN0b3I8
T3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4qIHJlZ2lzdHJ5ID0gbXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJ5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBy
ZWdpc3RyeS0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChyZWdpc3RyeS0+YXQoaSkt
PmlzU3VidHJlZSgpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZFN1YnRyZWVNdXRh
dGlvbk9ic2VydmVyVHlwZXMocmVnaXN0cnktPmF0KGkpLT5tdXRhdGlvblR5cGVzKCkpOworICAg
ICAgICAgICAgZG9jdW1lbnQoKS0+YWRkTXV0YXRpb25PYnNlcnZlclR5cGVzKHJlZ2lzdHJ5LT5h
dChpKS0+bXV0YXRpb25UeXBlcygpKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChIYXNo
U2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiogdHJhbnNpZW50UmVnaXN0cnkgPSB0
cmFuc2llbnRNdXRhdGlvbk9ic2VydmVyUmVnaXN0cnkoKSkgewogICAgICAgICBmb3IgKEhhc2hT
ZXQ8TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbio+OjppdGVyYXRvciBpdGVyID0gdHJhbnNp
ZW50UmVnaXN0cnktPmJlZ2luKCk7IGl0ZXIgIT0gdHJhbnNpZW50UmVnaXN0cnktPmVuZCgpOyAr
K2l0ZXIpIHsKLSAgICAgICAgICAgIGlmICgoKml0ZXIpLT5pc1N1YnRyZWUoKSkKLSAgICAgICAg
ICAgICAgICBkb2N1bWVudCgpLT5hZGRTdWJ0cmVlTXV0YXRpb25PYnNlcnZlclR5cGVzKCgqaXRl
ciktPm11dGF0aW9uVHlwZXMoKSk7CisgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRNdXRhdGlv
bk9ic2VydmVyVHlwZXMoKCppdGVyKS0+bXV0YXRpb25UeXBlcygpKTsKICAgICAgICAgfQogICAg
IH0KICNlbmRpZgpAQCAtMjcwNCwxOCArMjcwMiw5IEBAIHZvaWQgTm9kZTo6Y29sbGVjdE1hdGNo
aW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24oSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwK
ICAgICB9CiB9CiAKLWJvb2wgTm9kZTo6bWF5SGF2ZU11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlKQotewotICAgIHJldHVybiBk
b2N1bWVudCgpLT5oYXNTdWJ0cmVlTXV0YXRpb25PYnNlcnZlck9mVHlwZSh0eXBlKSB8fCAoaGFz
UmFyZURhdGEoKSAmJiAocmFyZURhdGEoKS0+bXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCkgfHwg
cmFyZURhdGEoKS0+dHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5KCkpKTsKLX0KLQog
dm9pZCBOb2RlOjpnZXRSZWdpc3RlcmVkTXV0YXRpb25PYnNlcnZlcnNPZlR5cGUoSGFzaE1hcDxX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnM+JiBv
YnNlcnZlcnMsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSB0eXBlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpCiB7CiAgICAgY29sbGVjdE1hdGNoaW5nT2Jz
ZXJ2ZXJzRm9yTXV0YXRpb24ob2JzZXJ2ZXJzLCB0aGlzLCB0eXBlLCBhdHRyaWJ1dGVOYW1lKTsK
LQotICAgIGlmICghZG9jdW1lbnQoKS0+aGFzU3VidHJlZU11dGF0aW9uT2JzZXJ2ZXJPZlR5cGUo
dHlwZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGZvciAoTm9kZSogbm9kZSA9IHBhcmVudE5v
ZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkKICAgICAgICAgY29sbGVjdE1h
dGNoaW5nT2JzZXJ2ZXJzRm9yTXV0YXRpb24ob2JzZXJ2ZXJzLCBub2RlLCB0eXBlLCBhdHRyaWJ1
dGVOYW1lKTsKIH0KQEAgLTI3NjcsNyArMjc1Niw3IEBAIHZvaWQgTm9kZTo6dW5yZWdpc3RlclRy
YW5zaWVudE11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVn
CiAKIHZvaWQgTm9kZTo6bm90aWZ5TXV0YXRpb25PYnNlcnZlcnNOb2RlV2lsbERldGFjaCgpCiB7
Ci0gICAgaWYgKCFkb2N1bWVudCgpLT5oYXNTdWJ0cmVlTXV0YXRpb25PYnNlcnZlcigpKQorICAg
IGlmICghZG9jdW1lbnQoKS0+aGFzTXV0YXRpb25PYnNlcnZlcnMoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgZm9yIChOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOyBub2RlOyBub2RlID0gbm9k
ZS0+cGFyZW50Tm9kZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAxOGFlYTZlMTZjMGU1NTIxYzdjODBi
ZGMyODMzYWEwYjVhOWJiMTc2Li5kYTg5NTJiYzc5YmZjMmE3N2JkOGQzZTMzMWFiMjk3OWRhODNi
OWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU5OSw3ICs1OTksNiBAQCBwdWJsaWM6CiAKICNpZiBFTkFC
TEUoTVVUQVRJT05fT0JTRVJWRVJTKQogICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11dGF0aW9uT2Jz
ZXJ2ZXJzT2ZUeXBlKEhhc2hNYXA8V2ViS2l0TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uUmVj
b3JkRGVsaXZlcnlPcHRpb25zPiYsIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlw
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lID0gbnVsbEF0b20pOwotICAgIGJv
b2wgbWF5SGF2ZU11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
Ok11dGF0aW9uVHlwZSk7CiAgICAgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0
ZXJNdXRhdGlvbk9ic2VydmVyKFBhc3NSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4pOwog
ICAgIHZvaWQgdW5yZWdpc3Rlck11dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbiopOwogICAgIHZvaWQgcmVnaXN0ZXJUcmFuc2llbnRNdXRhdGlvbk9ic2VydmVyKE11
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcAppbmRleCAzZWQ5NzA0YTgzZmI5ZTk0MWJjY2I4YjdlNjdm
ZjlkYTcxOGViNGIxLi5hN2ViMWExNzQ5ZTQwYTY2M2MwMDk3ODgyNmRkYTRhMTM4NjczMTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwCkBAIC00
MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgog
I2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUg
IlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtODQsOCArODMsNyBAQCB2b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXI6Om9ic2VydmUoTm9kZSogbm9kZSwgTXV0YXRpb25PYnNlcnZlck9wdGlvbnMgb3B0aW9ucwog
ICAgIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJhdGlvbiA9IG5vZGUtPnJl
Z2lzdGVyTXV0YXRpb25PYnNlcnZlcih0aGlzKTsKICAgICByZWdpc3RyYXRpb24tPnJlc2V0T2Jz
ZXJ2YXRpb24ob3B0aW9ucywgYXR0cmlidXRlRmlsdGVyKTsKIAotICAgIGlmIChyZWdpc3RyYXRp
b24tPmlzU3VidHJlZSgpKQotICAgICAgICBub2RlLT5kb2N1bWVudCgpLT5hZGRTdWJ0cmVlTXV0
YXRpb25PYnNlcnZlclR5cGVzKHJlZ2lzdHJhdGlvbi0+bXV0YXRpb25UeXBlcygpKTsKKyAgICBu
b2RlLT5kb2N1bWVudCgpLT5hZGRNdXRhdGlvbk9ic2VydmVyVHlwZXMocmVnaXN0cmF0aW9uLT5t
dXRhdGlvblR5cGVzKCkpOwogfQogCiB2b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRpc2Nv
bm5lY3QoKQpAQCAtMTQ5LDU1ICsxNDcsNiBAQCB2b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKQogICAgIGRlbGl2ZXJ5SW5Qcm9ncmVzcyA9IGZhbHNlOwog
fQogCi1QYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cDo6Y3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBh
dHRyaWJ1dGVOYW1lLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucyBvbGRWYWx1ZUZsYWcp
Ci17Ci0gICAgaWYgKCF0YXJnZXQtPm1heUhhdmVNdXRhdGlvbk9ic2VydmVyc09mVHlwZSh0eXBl
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gb2JzZXJ2ZXJzOwotICAg
IHRhcmdldC0+Z2V0UmVnaXN0ZXJlZE11dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKG9ic2VydmVycywg
dHlwZSwgYXR0cmlidXRlTmFtZSk7Ci0gICAgaWYgKG9ic2VydmVycy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNdXRhdGlvbk9i
c2VydmVySW50ZXJlc3RHcm91cChvYnNlcnZlcnMsIG9sZFZhbHVlRmxhZykpOwotfQotCi1NdXRh
dGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6TXV0YXRpb25PYnNlcnZlckludGVyZXN0R3JvdXAo
SGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9w
dGlvbnM+JiBvYnNlcnZlcnMsIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZhbHVl
RmxhZykKLSAgICA6IG1fb2xkVmFsdWVGbGFnKG9sZFZhbHVlRmxhZykKLXsKLSAgICBBU1NFUlQo
IW9ic2VydmVycy5pc0VtcHR5KCkpOwotICAgIG1fb2JzZXJ2ZXJzLnN3YXAob2JzZXJ2ZXJzKTsK
LX0KLQotYm9vbCBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6aXNPbGRWYWx1ZVJlcXVl
c3RlZCgpCi17Ci0gICAgZm9yIChIYXNoTWFwPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIqLCBNdXRh
dGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz46Oml0ZXJhdG9yIGl0ZXIgPSBtX29ic2VydmVycy5i
ZWdpbigpOyBpdGVyICE9IG1fb2JzZXJ2ZXJzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYg
KGhhc09sZFZhbHVlKGl0ZXItPnNlY29uZCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVz
dEdyb3VwOjplbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4g
cHJwTXV0YXRpb24pCi17Ci0gICAgUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBtdXRhdGlvbiA9IHBy
cE11dGF0aW9uOwotICAgIFJlZlB0cjxNdXRhdGlvblJlY29yZD4gbXV0YXRpb25XaXRoTnVsbE9s
ZFZhbHVlOwotICAgIGZvciAoSGFzaE1hcDxXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiwgTXV0YXRp
b25SZWNvcmREZWxpdmVyeU9wdGlvbnM+OjppdGVyYXRvciBpdGVyID0gbV9vYnNlcnZlcnMuYmVn
aW4oKTsgaXRlciAhPSBtX29ic2VydmVycy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gaXRlci0+Zmlyc3Q7Ci0gICAgICAgIGlmICho
YXNPbGRWYWx1ZShpdGVyLT5zZWNvbmQpKSB7Ci0gICAgICAgICAgICBvYnNlcnZlci0+ZW5xdWV1
ZU11dGF0aW9uUmVjb3JkKG11dGF0aW9uKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9Ci0gICAgICAgIGlmICghbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlKSB7Ci0gICAgICAgICAg
ICBpZiAobXV0YXRpb24tPm9sZFZhbHVlKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgbXV0
YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gbXV0YXRpb247Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgbXV0YXRpb25XaXRoTnVsbE9sZFZhbHVlID0gTXV0YXRpb25SZWNvcmQ6OmNy
ZWF0ZVdpdGhOdWxsT2xkVmFsdWUobXV0YXRpb24pLmdldCgpOwotICAgICAgICB9Ci0gICAgICAg
IG9ic2VydmVyLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobXV0YXRpb25XaXRoTnVsbE9sZFZhbHVl
KTsKLSAgICB9Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9u
T2JzZXJ2ZXIuaAppbmRleCBmNTkyM2IzZjZhMzE2Y2JhYWJmNWExOTc3ZmM3YzNlYmJiNGJhZWZi
Li40YTgzOGU0N2QzZGMwMzJmM2RmYWQ2OWRjOTE3YTMyNWRkZjc4OTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKQEAgLTMzLDEwICszMyw4IEBACiAK
ICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCi0jaW5jbHVkZSAiUXVhbGlmaWVkTmFt
ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC00OSw3ICs0Nyw2IEBAIGNsYXNzIE11dGF0aW9uQ2FsbGJhY2s7CiBjbGFzcyBNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cmF0aW9uOwogY2xhc3MgTXV0YXRpb25SZWNvcmQ7CiBjbGFzcyBOb2RlOwot
Y2xhc3MgUXVhbGlmaWVkTmFtZTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIApAQCAt
OTgsMzUgKzk1LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24qPiBtX3JlZ2lzdHJhdGlvbnM7CiB9OwogCi1jbGFzcyBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YXRpb25P
YnNlcnZlckludGVyZXN0R3JvdXA+IGNyZWF0ZUZvckNoaWxkTGlzdE11dGF0aW9uKE5vZGUqIHRh
cmdldCkKLSAgICB7Ci0gICAgICAgIE11dGF0aW9uUmVjb3JkRGVsaXZlcnlPcHRpb25zIG9sZFZh
bHVlRmxhZyA9IDA7Ci0gICAgICAgIHJldHVybiBjcmVhdGVJZk5lZWRlZCh0YXJnZXQsIFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OkNoaWxkTGlzdCwgbnVsbEF0b20sIG9sZFZhbHVlRmxhZyk7Ci0g
ICAgfQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
PiBjcmVhdGVGb3JDaGFyYWN0ZXJEYXRhTXV0YXRpb24oTm9kZSogdGFyZ2V0KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cjo6Q2hhcmFjdGVyRGF0YSwgbnVsbEF0b20sIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OkNoYXJh
Y3RlckRhdGFPbGRWYWx1ZSk7Ci0gICAgfQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE11dGF0aW9u
T2JzZXJ2ZXJJbnRlcmVzdEdyb3VwPiBjcmVhdGVGb3JBdHRyaWJ1dGVzTXV0YXRpb24oTm9kZSog
dGFyZ2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZUlmTmVlZGVkKHRhcmdldCwgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
QXR0cmlidXRlcywgYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSwgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6QXR0cmlidXRlT2xkVmFsdWUpOwotICAgIH0KLQotICAgIGJvb2wgaXNPbGRWYWx1ZVJl
cXVlc3RlZCgpOwotICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+KTsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdXRhdGlv
bk9ic2VydmVySW50ZXJlc3RHcm91cD4gY3JlYXRlSWZOZWVkZWQoTm9kZSogdGFyZ2V0LCBXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjpNdXRhdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0
cmlidXRlTmFtZSwgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnKTsK
LSAgICBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cChIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4mIG9ic2VydmVycywgTXV0
YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb2xkVmFsdWVGbGFnKTsKLQotICAgIGJvb2wgaGFz
T2xkVmFsdWUoTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4g
b3B0aW9ucyAmIG1fb2xkVmFsdWVGbGFnOyB9Ci0KLSAgICBIYXNoTWFwPFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIqLCBNdXRhdGlvblJlY29yZERlbGl2ZXJ5T3B0aW9ucz4gbV9vYnNlcnZlcnM7Ci0g
ICAgTXV0YXRpb25SZWNvcmREZWxpdmVyeU9wdGlvbnMgbV9vbGRWYWx1ZUZsYWc7Ci19OwotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>