<?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>71134</bug_id>
          
          <creation_ts>2011-10-28 12:36:37 -0700</creation_ts>
          <short_desc>De-virtualize JSObject::defineGetter</short_desc>
          <delta_ts>2011-10-31 17:31:17 -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>JavaScriptCore</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>70960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492611</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-28 12:36:37 -0700</bug_when>
    <thetext>We&apos;re de-virtualizing JSObject. defineGetter is a virtual method in JSObject.  Thus, we need to de-virtualize defineGetter.  We&apos;ll put it in the MethodTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492639</commentid>
    <comment_count>1</comment_count>
      <attachid>112902</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-28 13:34:49 -0700</bug_when>
    <thetext>Created attachment 112902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492817</commentid>
    <comment_count>2</comment_count>
      <attachid>112902</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-28 17:24:44 -0700</bug_when>
    <thetext>Comment on attachment 112902
Patch

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

&gt; Source/WebKit/qt/Api/qwebframe.cpp:517
&gt; -    window-&gt;defineGetter(exec, propertyName.get()-&gt;identifier(&amp;exec-&gt;globalData()), ::toJS(function),
&gt; +    window-&gt;methodTable()-&gt;defineGetter(window, exec, propertyName.get()-&gt;identifier(&amp;exec-&gt;globalData()), ::toJS(function),
&gt;                           JSC::ReadOnly | JSC::DontEnum | JSC::DontDelete);

Not to everyone on the project: Here is an example of why we don’t line up subsequent lines of multiline statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493535</commentid>
    <comment_count>3</comment_count>
      <attachid>112902</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 15:24:37 -0700</bug_when>
    <thetext>Comment on attachment 112902
Patch

Clearing flags on attachment: 112902

Committed r98889: &lt;http://trac.webkit.org/changeset/98889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493536</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 15:24:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493584</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-31 16:05:28 -0700</bug_when>
    <thetext>It broke the interpreter build. Build log from Qt SH4 buildbot:

../../../Source/JavaScriptCore/interpreter/Interpreter.cpp:4992:115: error: too few arguments to function

Could you fix the build please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493664</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-31 17:31:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It broke the interpreter build. Build log from Qt SH4 buildbot:
&gt; 
&gt; ../../../Source/JavaScriptCore/interpreter/Interpreter.cpp:4992:115: error: too few arguments to function
&gt; 
&gt; Could you fix the build please?

Buildfix landed in http://trac.webkit.org/changeset/98916</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112902</attachid>
            <date>2011-10-28 13:34:49 -0700</date>
            <delta_ts>2011-10-31 15:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71134-20111028133447.patch</filename>
            <type>text/plain</type>
            <size>28938</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI4
OWVkYmEyNWFiM2M2OTZmZDkyYWNmM2QwMmY4NmUzYTk0NDFiYjMuLmZjNThiMTJhNTNkYTkwOWVm
YTI5NTlhOWQ4YTg0ODJiYmQ1MDk4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM2IEBACisyMDExLTEwLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6ZGVmaW5lR2V0dGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGRlZmlu
ZUdldHRlciB0byB0aGUgTWV0aG9kVGFibGUuICBSZXBsYWNlZCBhbGwgdmlydHVhbCB2ZXJzaW9u
cyBvZiBkZWZpbmVHZXR0ZXIKKyAgICAgICAgd2l0aCBzdGF0aWMgdmVyc2lvbnMuICBSZXBsYWNl
ZCBhbGwgY2FsbCBzaXRlcyB3aXRoIGxvb2t1cHMgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9u
OjpkZWZpbmVHZXR0ZXIpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
OgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9DbGFzc0luZm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6ZGVmaW5lR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZGVmaW5lR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
T2JqZWN0OjpkZWZpbmVHZXR0ZXIpOgorICAgICAgICAoSlNDOjpwdXREZXNjcmlwdG9yKToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIpOgor
CiAyMDExLTEwLTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4aW5nIHdpbmRvd3MgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MGY1NDA4ZjRiYTFh
MTc3MWQ2ZjFlOGE3YzVjMjViMGQ2ZmIwNTIxLi5mNzdkYjBjOWQ3Mzc4MDZhZmFkODhmMzg1OTVi
ZTY5ZWZlYjEwNWE2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTAtMjggIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0
dWFsaXplIEpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIEFkZGVkIGRlZmlu
ZUdldHRlciB0byB0aGUgTWV0aG9kVGFibGUuICBSZXBsYWNlZCBhbGwgdmlydHVhbCB2ZXJzaW9u
cyBvZiBkZWZpbmVHZXR0ZXIKKyAgICAgICAgd2l0aCBzdGF0aWMgdmVyc2lvbnMuICBSZXBsYWNl
ZCBhbGwgY2FsbCBzaXRlcyB3aXRoIGxvb2t1cHMgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3c6OmRlZmluZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpk
ZWZpbmVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTTG9jYXRpb246OmRlZmluZUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0xv
Y2F0aW9uUHJvdG90eXBlOjpkZWZpbmVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorCiAyMDEx
LTEwLTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMjYyMjA1PiBBbGxvdyBjb2x1bW4gcHJvZ3Jlc3Npb24gdG8gYmUgaW5kZXBl
bmRlbnQgb2Ygd3JpdGluZyBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDc0MmZmZWMzOGY5NjI1NTA1
M2EyODAzOGMxMmE5Nzk3ODQzNWRiYTUuLjA1YzQ2ODRmYWIyMmI2MzI1NmNjYTkzMTFiYjgzN2Rm
ODkwOGI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMjggIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0
dWFsaXplIEpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZGVmaW5lR2V0dGVyIHRvIHRoZSBNZXRob2RUYWJs
ZS4gIFJlcGxhY2VkIGFsbCB2aXJ0dWFsIHZlcnNpb25zIG9mIGRlZmluZUdldHRlcgorICAgICAg
ICB3aXRoIHN0YXRpYyB2ZXJzaW9ucy4gIFJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHdpdGggbG9v
a3VwcyBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoK
KyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OmFkZFF0U2VuZGVyVG9HbG9iYWxPYmplY3QpOgor
CiAyMDExLTEwLTI2ICBaYWxhbiBCdWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KIAogICAgICAg
ICBOYW1lIHZpZXdwb3J0IGNoYW5nZSBldmVudCBjb25zaXN0ZW50bHkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCA5ZGIzNWVmNGYzOWE2OWQ5MDUzNzc1N2E4
MGE2ZGJhMTcyNzIyMjEyLi5kMDA2Y2Y3NDBhNTU5ZmI0NTg2MzBiODZlNWYzOTJkMzI3MmJkMWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTE2MSw3ICsx
NjEsNyBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pTQzEzU2FtcGxp
bmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9jRWlpCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgotX19aTjNKU0MxNEpTR2xvYmFsT2Jq
ZWN0MTJkZWZpbmVHZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhK
U09iamVjdEVqCitfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOEpT
T2JqZWN0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVMyX2oKIF9fWk4zSlNDMTRK
U0dsb2JhbE9iamVjdDEyZGVmaW5lU2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVBOU184SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNjbGVhclJhcmVE
YXRhRVBOU182SlNDZWxsRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNpdENoaWxkcmVu
RVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQpAQCAtMzAxLDcgKzMwMSw3IEBAIF9fWk4z
SlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVn
Z2VyRDJFdgogX19aTjNKU0M4SlNPYmplY3QxMHB1dEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBO
U185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRVMzXwotX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdl
dHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagorX19aTjNKU0M4SlNP
YmplY3QxMmRlZmluZUdldHRlckVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
UzFfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmxvb2t1cEdldHRlckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTJsb29rdXBT
ZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGY5YzMyZDRlYjY5
NWQzMmU5MDFiNmI0OWE0YzBjYjc3NDY3YjIwNWMuLjlhMWRjOGYwOGNjOGNkYWI0MTAwYmVhY2Mw
NTIxMWM4Mzc3Mjc5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCkBAIC0xMzMsOSArMTMzLDkgQEAgRVhQT1JUUwogICAgID9kZWNy
ZW1lbnRAUmVmQ291bnRlZExlYWtDb3VudGVyQFdURkBAUUFFWFhaCiAgICAgP2RlZmF1bHRBdHRy
aWJ1dGVzQFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQDBJQQogICAgID9kZWZhdWx0VmFsdWVASlNP
YmplY3RASlNDQEBVQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJAVzRQcmVmZXJyZWRQcmlt
aXRpdmVUeXBlQDJAQFoKLSAgICA/ZGVmaW5lR2V0dGVyQEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBQQVZKU09iamVjdEAyQElAWgotICAgID9k
ZWZpbmVHZXR0ZXJASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQFBBVjEyQElAWgogICAgID9kZWZpbmVPd25Qcm9wZXJ0eUBKU09iamVjdEBKU0NAQFVBRV9O
UEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQF9O
QFoKKyAgICA/ZGVmaW5lR2V0dGVyQEpTR2xvYmFsT2JqZWN0QEpTQ0BAU0FYUEFWSlNPYmplY3RA
MkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAMElAWgorICAgID9kZWZpbmVHZXR0ZXJA
SlNPYmplY3RASlNDQEBTQVhQQVYxMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAMElA
WgogICAgID9kZWZpbmVTZXR0ZXJASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRl
QDJAQUJWSWRlbnRpZmllckAyQFBBVkpTT2JqZWN0QDJASUBaCiAgICAgP2RlZmluZVNldHRlckBK
U09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAUEFWMTJASUBa
CiAgICAgP2RlbGV0ZU93bmVkUHRyQFdURkBAWUFYUEFVSEJJVE1BUF9fQEBAWgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApp
bmRleCBiNDU5ODk0ZDJhZjY5OGY1NDE4MzM1YzNmOTQ0NzdlOWFmNGE3N2Q2Li5iYjM2N2MyZWRk
OWJhOWI4YjBlM2Y3MmM5YjhmNzIzYzZiODI4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtOTMsOSArOTMs
MTAgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWYKICAgICByZXR1cm4gbV9hY3RpdmF0aW9uLT5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsK
IH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlZmlu
ZUdldHRlcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKQogewotICAgIG1fYWN0aXZhdGlvbi0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5
TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0dHJpYnV0ZXMpOworICAgIERlYnVnZ2VyQWN0aXZhdGlv
biogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KG9iamVjdCk7
CisgICAgdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5tZXRob2RUYWJsZSgpLT5kZWZpbmVHZXR0
ZXIodGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246
OmRlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
CmluZGV4IDQ1NjdmYWUxMzBkZjEyMzIzNzRmYzZjM2NkMWExOWI1YzQ2MzMwYzQuLjFmMDkwN2Mw
MDk0ZTM1YzBlNTdjZmRkNWFmODA2MjY1ZDc1YTIwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOworICAgICAgICBzdGF0aWMgdm9pZCBkZWZpbmVHZXR0ZXIoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5j
dGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVT
ZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVj
dCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFs
IEpTVmFsdWUgbG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBTZXR0ZXIoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDBjNTEyNzA3ZjJkYmNk
MzkzNjFjNTAzNGJkMzEyZWRlOTM2ODM3NTguLmNiZTYwODExNTZjOTdmODk2ZmExZmZlNmIyZmY4
YWQ1NTdiMDBhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcApAQCAtNDk4OSw3ICs0OTg5LDcgQEAgc2tpcF9pZF9jdXN0b21fc2Vs
ZjoKICAgICAgICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChjYWxsRnJhbWUtPnIoYmFz
ZSkuanNWYWx1ZSgpKTsKICAgICAgICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlk
ZW50aWZpZXIocHJvcGVydHkpOwogICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5yKGZ1bmN0aW9u
KS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7Ci0gICAgICAgIGJhc2VPYmotPmRlZmluZUdldHRlcihj
YWxsRnJhbWUsIGlkZW50LCBhc09iamVjdChjYWxsRnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUo
KSkpOworICAgICAgICBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5kZWZpbmVHZXR0ZXIoYmFzZU9i
aiwgY2FsbEZyYW1lLCBpZGVudCwgYXNPYmplY3QoY2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1Zh
bHVlKCkpKTsKIAogICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9wdXRfZ2V0dGVyKTsK
ICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcAppbmRleCA5MzM1MTZlMjBiMzI3MTJkOWVjYTk3MDM3MWQxNzE4NWRiNWM4MTg3Li5h
MTgwMjFmMDhmN2VlNDI3ZjExOWQ2MmIxY2MzNzk4NmJkYTU1ZWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMzc0Nyw3ICszNzQ3LDcgQEAgREVGSU5FX1NUVUJf
RlVOQ1RJT04odm9pZCwgb3BfcHV0X2dldHRlcikKICAgICBBU1NFUlQoc3RhY2tGcmFtZS5hcmdz
WzBdLmpzVmFsdWUoKS5pc09iamVjdCgpKTsKICAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2Jq
ZWN0KHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkpOwogICAgIEFTU0VSVChzdGFja0ZyYW1l
LmFyZ3NbMl0uanNWYWx1ZSgpLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPmRlZmluZUdldHRl
cihjYWxsRnJhbWUsIHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCksIGFzT2JqZWN0KHN0
YWNrRnJhbWUuYXJnc1syXS5qc1ZhbHVlKCkpKTsKKyAgICBiYXNlT2JqLT5tZXRob2RUYWJsZSgp
LT5kZWZpbmVHZXR0ZXIoYmFzZU9iaiwgY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRl
bnRpZmllcigpLCBhc09iamVjdChzdGFja0ZyYW1lLmFyZ3NbMl0uanNWYWx1ZSgpKSwgMCk7CiB9
CiAKIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9zZXR0ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IDUxYjliM2VmM2Y5MjE4NWNiMjBi
ODBkOGQxM2RjNjRkZWUyMTUyZWEuLmQyMTg2ODc5MzgwNTBjMGUyMTE1ZDBmYjRlMWNiOTkxYmQy
YTUzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5m
by5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC02
MSw2ICs2MSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgSlNPYmplY3Qq
ICgqVG9UaGlzT2JqZWN0RnVuY3Rpb25QdHIpKEpTQ2VsbCosIEV4ZWNTdGF0ZSopOwogICAgICAg
ICBUb1RoaXNPYmplY3RGdW5jdGlvblB0ciB0b1RoaXNPYmplY3Q7CisKKyAgICAgICAgdHlwZWRl
ZiB2b2lkICgqRGVmaW5lR2V0dGVyRnVuY3Rpb25QdHIpKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTT2JqZWN0KiwgdW5zaWduZWQpOworICAgICAgICBEZWZpbmVH
ZXR0ZXJGdW5jdGlvblB0ciBkZWZpbmVHZXR0ZXI7CiAgICAgfTsKIAogI2RlZmluZSBDUkVBVEVf
TUVNQkVSX0NIRUNLRVIobWVtYmVyKSBcCkBAIC05Myw2ICs5Niw3IEBAIHN0cnVjdCBNZW1iZXJD
aGVjayMjbWVtYmVyIHsgXAogICAgICAgICAmQ2xhc3NOYW1lOjpnZXRPd25Qcm9wZXJ0eVNsb3Qs
IFwKICAgICAgICAgJkNsYXNzTmFtZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCwgXAogICAg
ICAgICAmQ2xhc3NOYW1lOjp0b1RoaXNPYmplY3QsIFwKKyAgICAgICAgJkNsYXNzTmFtZTo6ZGVm
aW5lR2V0dGVyLCBcCiAgICAgfSwgXAogICAgIHNpemVvZihDbGFzc05hbWUpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDExYWVjMzRiMDQ3NDJiZGRmMGY5
MTU3MjZlZjc3Y2JkODNkNzU0MjUuLmYzZjcyMjdiNjFhOGU4YzA0ZjFiMzQ0NWE2NzlhYjBlZDBm
MTQwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTU4
LDQgKzE1OCw5IEBAIHZvaWQgc2xvd1ZhbGlkYXRlQ2VsbChKU0NlbGwqIGNlbGwpCiAgICAgQVNT
RVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChjZWxsKTsKIH0KIAordm9pZCBKU0NlbGw6OmRlZmlu
ZUdldHRlcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU09iamVj
dCosIHVuc2lnbmVkKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggODMw
ZTdjYTcwMDU4OTcwYzdjNDhiOTFhNTk5YjMxNWJkMDhmMTA1Ny4uOTJiMTY2MGFkZmJhOGE5ODQw
M2Y2YjlmODQzNGQwNTFhMjg3NmMwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgKQEAgLTEzMiw2ICsxMzIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gQmFz
ZSBpbXBsZW1lbnRhdGlvbjsgZm9yIG5vbi1vYmplY3QgY2xhc3NlcyBpbXBsZW1lbnRzIGdldFBy
b3BlcnR5U2xvdC4KICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KworICAgICAgICAvLyBEdW1teSBpbXBsZW1lbnRhdGlvbnMgb2Ygb3ZlcnJpZGUtYWJsZSBzdGF0
aWMgZnVuY3Rpb25zIGZvciBjbGFzc2VzIHRvIHB1dCBpbiB0aGVpciBNZXRob2RUYWJsZQorICAg
ICAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBkZWZpbmVHZXR0ZXIoSlNP
YmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNPYmplY3QqLCB1bnNpZ25l
ZCk7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fc3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IDliZTAyOTA3MzQ2NDI4OGJjZTU1NmUwY2E3ZGQwOWRkODg0
Mjc5YjMuLjVkYzM4MTJjZGRjNjhmNDMwYTM0MGQ3MzdlMjZmN2IzYTBhN2U1MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE2
MywxMSArMTYzLDEyIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgfQogfQogCi12b2lk
IEpTR2xvYmFsT2JqZWN0OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKQordm9pZCBKU0dsb2JhbE9iamVjdDo6ZGVmaW5lR2V0dGVyKEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09i
amVjdCogZ2V0dGVyRnVuYywgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKKyAgICBKU0dsb2JhbE9i
amVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4ob2JqZWN0KTsK
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBpZiAoIXN5bWJvbFRhYmxlR2V0KHByb3BlcnR5
TmFtZSwgc2xvdCkpCi0gICAgICAgIEpTVmFyaWFibGVPYmplY3Q6OmRlZmluZUdldHRlcihleGVj
LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmMsIGF0dHJpYnV0ZXMpOworICAgIGlmICghdGhpc09i
amVjdC0+c3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgSlNWYXJp
YWJsZU9iamVjdDo6ZGVmaW5lR2V0dGVyKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
Z2V0dGVyRnVuYywgYXR0cmlidXRlcyk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmRlZmlu
ZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIHNldHRlckZ1bmMsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzMzEzM2YyOTc1NTkz
MjcwYWU0ZTkzMDBhZjEzNzNkM2Q3Y2I3ZGUxLi5mNmNlOGRmYzliNDZiMjRmOWY4NWIyNzMyZTlk
NTU3MmM1NDNmOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTE4OSw3ICsxODksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmMsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpOworICAgICAgICBzdGF0aWMgdm9pZCBkZWZpbmVHZXR0ZXIoSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0
ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmlu
ZVNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KiBzZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAogICAgICAgICAvLyBXZSB1
c2UgdGhpcyBpbiB0aGUgY29kZSBnZW5lcmF0b3IgYXMgd2UgcGVyZm9ybSBzeW1ib2wgdGFibGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBmNWNjOGQz
ZDFmY2JhNWNmMTk5YWZkZTM2ZDNmMmI4ZDU1NGUwMjYzLi45OGNkMDg0YmI4YmI5ZGNkNjM5MGRi
N2I5NmMwMTE2NDA3N2RkZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCkBAIC0zNDgsMTYgKzM0OCwxNiBAQCBjb25zdCBIYXNoRW50cnkqIEpTT2JqZWN0
OjpmaW5kUHJvcGVydHlIYXNoRW50cnkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaQog
ICAgIHJldHVybiAwOwogfQogCi12b2lkIEpTT2JqZWN0OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKK3ZvaWQgSlNPYmplY3Q6OmRlZmluZUdldHRl
cihKU09iamVjdCogdGhpc09iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmli
dXRlcykKIHsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS51
bmRlcnNjb3JlUHJvdG8pIHsKICAgICAgICAgLy8gRGVmaW5pbmcgYSBnZXR0ZXIgZm9yIF9fcHJv
dG9fXyBpcyBzaWxlbnRseSBpZ25vcmVkLgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
SlNWYWx1ZSBvYmplY3QgPSBnZXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5h
bWUpOworICAgIEpTVmFsdWUgb2JqZWN0ID0gdGhpc09iamVjdC0+Z2V0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsKICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC5pc0dl
dHRlclNldHRlcigpKSB7Ci0gICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+aGFzR2V0dGVyU2V0
dGVyUHJvcGVydGllcygpKTsKKyAgICAgICAgQVNTRVJUKHRoaXNPYmplY3QtPnN0cnVjdHVyZSgp
LT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpOwogICAgICAgICBhc0dldHRlclNldHRlcihv
YmplY3QpLT5zZXRHZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBnZXR0ZXJGdW5jdGlvbik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNjUsMTcgKzM2NSwxNyBAQCB2b2lkIEpTT2JqZWN0
OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTTwogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERh
dGEoKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRl
clNldHRlciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKGV4ZWMpOwotICAgIHB1dERpcmVjdEludGVy
bmFsKGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgZ2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzIHwg
R2V0dGVyLCB0cnVlLCBzbG90LCAwKTsKKyAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RJbnRlcm5h
bChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGdldHRlclNldHRlciwgYXR0cmlidXRlcyB8IEdl
dHRlciwgdHJ1ZSwgc2xvdCwgMCk7CiAKICAgICAvLyBwdXREaXJlY3Qgd2lsbCBjaGFuZ2Ugb3Vy
IFN0cnVjdHVyZSBpZiB3ZSBhZGQgYSBuZXcgcHJvcGVydHkuIEZvcgogICAgIC8vIGdldHRlcnMg
YW5kIHNldHRlcnMsIHRob3VnaCwgd2UgYWxzbyBuZWVkIHRvIGNoYW5nZSBvdXIgU3RydWN0dXJl
CiAgICAgLy8gaWYgd2Ugb3ZlcnJpZGUgYW4gZXhpc3Rpbmcgbm9uLWdldHRlciBvciBub24tc2V0
dGVyLgogICAgIGlmIChzbG90LnR5cGUoKSAhPSBQdXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5
KSB7Ci0gICAgICAgIGlmICghc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQotICAgICAgICAg
ICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgU3RydWN0dXJlOjpnZXR0ZXJTZXR0
ZXJUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpKSk7CisgICAgICAgIGlmICghdGhp
c09iamVjdC0+c3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQorICAgICAgICAgICAgdGhpc09i
amVjdC0+c2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgU3RydWN0dXJlOjpnZXR0ZXJT
ZXR0ZXJUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXNPYmplY3QtPnN0cnVjdHVyZSgpKSk7CiAg
ICAgfQogCi0gICAgc3RydWN0dXJlKCktPnNldEhhc0dldHRlclNldHRlclByb3BlcnRpZXModHJ1
ZSk7CisgICAgdGhpc09iamVjdC0+c3RydWN0dXJlKCktPnNldEhhc0dldHRlclNldHRlclByb3Bl
cnRpZXModHJ1ZSk7CiAgICAgZ2V0dGVyU2V0dGVyLT5zZXRHZXR0ZXIoZ2xvYmFsRGF0YSwgZ2V0
dGVyRnVuY3Rpb24pOwogfQogCkBAIC03MjksNyArNzI5LDcgQEAgc3RhdGljIGJvb2wgcHV0RGVz
Y3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0YXJnZXQsIGNvbnN0IElkZW50aWZp
ZXImIHAKICAgICB9CiAgICAgYXR0cmlidXRlcyAmPSB+UmVhZE9ubHk7CiAgICAgaWYgKGRlc2Ny
aXB0b3IuZ2V0dGVyKCkgJiYgZGVzY3JpcHRvci5nZXR0ZXIoKS5pc09iamVjdCgpKQotICAgICAg
ICB0YXJnZXQtPmRlZmluZUdldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUsIGFzT2JqZWN0KGRlc2Ny
aXB0b3IuZ2V0dGVyKCkpLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgdGFyZ2V0LT5tZXRob2RUYWJs
ZSgpLT5kZWZpbmVHZXR0ZXIodGFyZ2V0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGFzT2JqZWN0KGRl
c2NyaXB0b3IuZ2V0dGVyKCkpLCBhdHRyaWJ1dGVzKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoZGVzY3JpcHRvci5zZXR0ZXIo
KSAmJiBkZXNjcmlwdG9yLnNldHRlcigpLmlzT2JqZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA5MTY5Y2YxOGU4N2M5ZjZiN2VmYjBhMGNmYzVlZmY0
ODQ1Y2M1YzBmLi40OTAzNDU2ODc1MDJiNTQ5YjBlZTE4ZDMzZGY2MTI5ODJiN2Y1MGYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE4NSw3ICsxODUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaWxsR2V0dGVyUHJvcGVydHlTbG90KFBy
b3BlcnR5U2xvdCYsIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKTsKICAgICAg
ICAgdm9pZCBpbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEdldHRlclNldHRlciosIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJp
YnV0ZXMgPSAwKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZGVmaW5lR2V0dGVyKEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAwKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRlZmluZVNldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyA9IDApOwog
ICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgbG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBsb29rdXBT
ZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4
IDE5ZGEzM2Q2MGE4OTkzODE0MjRlM2MwNTkyNzJhZGMyMDU5YWU0OTMuLmQ1NjkxMGJmMDBkYzZh
NDhhNjJhZTEyZWNkZWRlNTdkNWE3ZjI0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBpZiAoZ2V0Q2FsbERhdGEo
ZXhlYy0+YXJndW1lbnQoMSksIGNhbGxEYXRhKSA9PSBDYWxsVHlwZU5vbmUpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgImludmFsaWQg
Z2V0dGVyIHVzYWdlIikpOwotICAgIHRoaXNPYmplY3QtPmRlZmluZUdldHRlcihleGVjLCBJZGVu
dGlmaWVyKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSwgYXNPYmplY3Qo
ZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5kZWZp
bmVHZXR0ZXIodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBleGVjLT5hcmd1bWVu
dCgwKS50b1N0cmluZyhleGVjKSksIGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDEpKSwgMCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDYzMzAw
YjViMWI1ZWYxYzhkODUwZjNlZWEyMGY3NmQ0ZWQzOWY0ZDYuLjViOWNkODA4YTViM2I5ZjBhOWI0
YzE1NzI1ZTRhNWI1MGI2MjUzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTM4NCwxNyArMzg0LDE4IEBAIHZvaWQgSlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVyCiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRvdzo6ZGVmaW5lR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCit2b2lkIEpTRE9NV2luZG93OjpkZWZp
bmVHZXR0ZXIoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0
cmlidXRlcykKIHsKKyAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpT
RE9NV2luZG93Kj4ob2JqZWN0KTsKICAgICAvLyBPbmx5IGFsbG93IGRlZmluaW5nIGdldHRlcnMg
YnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20o
ZXhlYykpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBEb24ndCBhbGxvdyBzaGFkb3dpbmcgbG9jYXRpb24gdXNp
bmcgZGVmaW5lR2V0dGVyLgogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gImxvY2F0aW9uIikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQmFzZTo6ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyRnVuY3Rpb24sIGF0dHJpYnV0ZXMpOworICAgIEJhc2U6OmRlZmluZUdldHRlcih0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVz
KTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvdzo6ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24s
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDQzZTI0YWI2NGVjZjAxYWZkODBmZWJlMjYzOTNjMDMw
MjBiZWY3MzkuLjkwYjk3YmNkOGI3YzJlZmFiZTUyNTYwZjI2MTNhZWY4MTU0MjFjMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0x
NDMsOSArMTQzLDEwIEBAIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwCiAgICAgbV93aW5kb3ctPmdl
dE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQg
SlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZUdldHRlcihKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewotICAg
IG1fd2luZG93LT5kZWZpbmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlv
biwgYXR0cmlidXRlcyk7CisgICAgSlNET01XaW5kb3dTaGVsbCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihvYmplY3QpOworICAgIHRoaXNPYmplY3QtPm1fd2lu
ZG93LT5tZXRob2RUYWJsZSgpLT5kZWZpbmVHZXR0ZXIodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0
KCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0dHJpYnV0ZXMpOwogfQog
CiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCmluZGV4IDU0NGE0MWE1YzEyNjE1ODMwOTYyNGM3MDkwZGM4NTMyNGRhZDc4
MDUuLmY4MzBiNjg0ODAwZjcyNmFlYjI3YjVjYjUyZTI0OGI5MGQ5OTA0ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTg3LDcgKzg3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9k
ZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5
TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhjbHVkZURvbnRF
bnVtUHJvcGVydGllcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOworICAgICAgICBzdGF0
aWMgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1
bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmlu
ZVNldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTT2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3Jp
cHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBs
b29rdXBHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0
aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0
b20uY3BwCmluZGV4IDc3NTA5NTNmNDgzMGZjMmE3ZjIxZThiM2MwYTI5OGYyYjRiYTZjNzkuLmI3
ZmVhOWY3NmJkMDI1YTM5ZThiNjA1NTAzOWZiZTU4MDI3ZTViYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC0xNjksMTEgKzE2OSwx
MSBAQCB2b2lkIEpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydAogICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFt
ZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQgSlNMb2NhdGlvbjo6ZGVm
aW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCit2b2lkIEpT
TG9jYXRpb246OmRlZmluZUdldHRlcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9u
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLnRvU3RyaW5nIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkudmFsdWVPZikKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmRlZmluZUdldHRl
cihleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKKyAgICBC
YXNlOjpkZWZpbmVHZXR0ZXIob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0
aW9uLCBhdHRyaWJ1dGVzKTsKIH0KIAogdm9pZCBKU0xvY2F0aW9uOjpzZXRIcmVmKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTI4MCwxMSArMjgwLDExIEBAIGJvb2wgSlNMb2Nh
dGlvblByb3RvdHlwZTo6cHV0RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0CiAgICAgcmV0dXJuIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlO
YW1lcygpLnRvU3RyaW5nIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
dmFsdWVPZik7CiB9CiAKLXZvaWQgSlNMb2NhdGlvblByb3RvdHlwZTo6ZGVmaW5lR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
Z2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCit2b2lkIEpTTG9jYXRpb25Qcm90
b3R5cGU6OmRlZmluZUdldHRlcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLnRvU3RyaW5nIHx8IHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkudmFsdWVPZikKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmRlZmluZUdldHRlcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKKyAgICBCYXNl
OjpkZWZpbmVHZXR0ZXIob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9u
LCBhdHRyaWJ1dGVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBlODVl
MGFjMDhjNmY2ZjA1ZTdhZmYyYTM4OTE0NWNlZDdlNjZhMjJhLi4yZTY2ODViODNjMjQzYmEzMjQx
ZDcwYWJlNDE3NmEyMDdhOTlmZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODM5LDcgKzgzOSw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgIH0KIAogICAgICMgQ3VzdG9tIGRlZmluZUdldHRlciBmdW5jdGlvbgot
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21EZWZpbmVHZXR0ZXIifTsKKyAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIGRlZmluZUdldHRlcihKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRGVmaW5l
R2V0dGVyIn07CiAKICAgICAjIEN1c3RvbSBkZWZpbmVTZXR0ZXIgZnVuY3Rpb24KICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0ZXIoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVj
dCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpO1xuIikgaWYgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRGVmaW5lU2V0dGVyIn07CkBAIC0xMDU3LDcg
KzEwNTcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICB9CiAKICAgICAjIEN1c3RvbSBkZWZp
bmVHZXR0ZXIgZnVuY3Rpb24KLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
dm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
UHJvdG90eXBlRGVmaW5lR2V0dGVyIn07CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRl
ckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIlxucHJpdmF0ZTpcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBK
U0M6OkpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IH1cbiIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggNTdmMjRiODcxZTUyNDdkNDVmZjE4ZGEyMTlk
ZGJiOThmZjU5MzM5Yi4uY2IzYzdhZTZjNGVmNWFiNzQ2MmZjZDcxOTFjYTIxMTgyZjhkYmExOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBR
V2ViRnJhbWVQcml2YXRlOjphZGRRdFNlbmRlclRvR2xvYmFsT2JqZWN0KCkKICAgICBKU09iamVj
dFJlZiBmdW5jdGlvbiA9IEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQs
IHByb3BlcnR5TmFtZS5nZXQoKSwgcXRTZW5kZXJDYWxsYmFjayk7CiAKICAgICAvLyBKU0MgcHVi
bGljIEFQSSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBhIEdldHRlciBmb3IgYSBwcm9wZXJ0eSBv
ZiBhIGdpdmVuIG9iamVjdCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYxMzc0LgotICAgIHdpbmRvdy0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZS5nZXQo
KS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFsRGF0YSgpKSwgOjp0b0pTKGZ1bmN0aW9uKSwKKyAg
ICB3aW5kb3ctPm1ldGhvZFRhYmxlKCktPmRlZmluZUdldHRlcih3aW5kb3csIGV4ZWMsIHByb3Bl
cnR5TmFtZS5nZXQoKS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFsRGF0YSgpKSwgOjp0b0pTKGZ1
bmN0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBKU0M6OlJlYWRPbmx5IHwgSlNDOjpE
b250RW51bSB8IEpTQzo6RG9udERlbGV0ZSk7CiB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>