<?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>90832</bug_id>
          
          <creation_ts>2012-07-09 16:06:56 -0700</creation_ts>
          <short_desc>IndexedDB: ASSERT hit calling open from callback in Worker</short_desc>
          <delta_ts>2012-07-12 08:38:38 -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>WebCore Misc.</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>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88338</dependson>
          <blocked>90310</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Charles Wei">charles.wei</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>charles.wei</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>jochen</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665270</commentid>
    <comment_count>0</comment_count>
      <attachid>151342</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-09 16:06:56 -0700</bug_when>
    <thetext>Created attachment 151342
Layout Test repro - HTML file

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

&gt; Source/WebCore/workers/WorkerThread.cpp:198
&gt; +    return m_startupData-&gt;m_groupSettings.get();

m_startupData is cleared after the initial script evaluation but before the event loop is executed. This means that any calls to IDBFactory methods that access this (e.g. open) that occur in a callback will dereference null here.

I&apos;m hitting this trying to rebase 90310 on top of this patch; it doesn&apos;t look like tests with multiple open() calls from workers were tested against this patch.

...

To repro, drop the attachments into LayoutTests/storage/indexeddb/open-twice-workers.html and LayoutTests/storage/indexeddb/resources/open-twice.js - it should crash (hitting assert).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665274</commentid>
    <comment_count>1</comment_count>
      <attachid>151343</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-09 16:07:42 -0700</bug_when>
    <thetext>Created attachment 151343
Layout Test repro - JS file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665275</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-09 16:09:01 -0700</bug_when>
    <thetext>&gt; To repro, drop the attachments into LayoutTests/storage/indexeddb/open-twice-workers.html and LayoutTests/storage/indexeddb/resources/open-twice.js - it should crash (hitting assert).

By which I mean: save the attachments out as those two files, and execute via new-run-webkit-tests (etc). (No dragging-and-dropping involved.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666055</commentid>
    <comment_count>3</comment_count>
      <attachid>151524</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-10 14:12:10 -0700</bug_when>
    <thetext>Created attachment 151524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666057</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-10 14:15:09 -0700</bug_when>
    <thetext>I took a stab at fixing this.

An alternate (and much shorter) fix would be to just move the m_startupData.clear() line after runEventLoop() inside WorkerThread::workerThread() but that seems to violate the spirit of the surrounding code. 

Opinions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666238</commentid>
    <comment_count>5</comment_count>
      <attachid>151524</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-10 18:29:10 -0700</bug_when>
    <thetext>Comment on attachment 151524
Patch

LGTM

This fix is more involved than your alternative but this one feels safer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666542</commentid>
    <comment_count>6</comment_count>
      <attachid>151524</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-07-11 02:11:13 -0700</bug_when>
    <thetext>Comment on attachment 151524
Patch

You cached the GroupSettings in the WorkerThread as a data member instead of the StartupData,  that looks good. you might also be able keep the API WorkerThread::groupSettings(),  which gets the GroupSetting from m_groupSettings instead of from startupData().  This way,  you don&apos;t need to change so many things in WorkerContext, SharedWorkerContext,  IDBFactory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666852</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-11 10:27:10 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 151524 [details])
&gt; You cached the GroupSettings in the WorkerThread as a data member instead of the StartupData,  that looks good. you might also be able keep the API WorkerThread::groupSettings(),  which gets the GroupSetting from m_groupSettings instead of from startupData().  This way,  you don&apos;t need to change so many things in WorkerContext, SharedWorkerContext,  IDBFactory.

I pass the GroupSettings all the way through to the context which caches it. It could be cached on the thread instead which would reduce the size of the patch, but other properties (e.g. URL, userAgent, etc) are cached on the context not the thread so it seemed appropriate to follow the same pattern.

abarth@, jochen@ or anyone else - opinions? r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667120</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-11 15:18:02 -0700</bug_when>
    <thetext>Adding haraken@ who may also have opinions and has reviewed worker code in the past.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667362</commentid>
    <comment_count>9</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-07-11 20:29:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 151524 [details] [details])
&gt; &gt; You cached the GroupSettings in the WorkerThread as a data member instead of the StartupData,  that looks good. you might also be able keep the API WorkerThread::groupSettings(),  which gets the GroupSetting from m_groupSettings instead of from startupData().  This way,  you don&apos;t need to change so many things in WorkerContext, SharedWorkerContext,  IDBFactory.
&gt; 
&gt; I pass the GroupSettings all the way through to the context which caches it. It could be cached on the thread instead which would reduce the size of the patch, but other properties (e.g. URL, userAgent, etc) are cached on the context not the thread so it seemed appropriate to follow the same pattern.
&gt; 
&gt; abarth@, jochen@ or anyone else - opinions? r?

Ok, Sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667436</commentid>
    <comment_count>10</comment_count>
      <attachid>151524</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-11 23:24:21 -0700</bug_when>
    <thetext>Comment on attachment 151524
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667818</commentid>
    <comment_count>11</comment_count>
      <attachid>151524</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 08:38:33 -0700</bug_when>
    <thetext>Comment on attachment 151524
Patch

Clearing flags on attachment: 151524

Committed r122463: &lt;http://trac.webkit.org/changeset/122463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667819</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 08:38:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151342</attachid>
            <date>2012-07-09 16:06:56 -0700</date>
            <delta_ts>2012-07-09 16:06:56 -0700</delta_ts>
            <desc>Layout Test repro - HTML file</desc>
            <filename>open-twice-workers.html</filename>
            <type>text/html</type>
            <size>273</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9z
Y3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxzY3JpcHQ+c3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9vcGVu
LXR3aWNlLmpzJyk7PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151343</attachid>
            <date>2012-07-09 16:07:42 -0700</date>
            <delta_ts>2012-07-09 16:07:42 -0700</delta_ts>
            <desc>Layout Test repro - JS file</desc>
            <filename>open-twice.js</filename>
            <type>application/javascript</type>
            <size>637</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJl
ZC5qcycpOwp9CgpkZXNjcmlwdGlvbigiVGVzdCBvcGVuaW5nIHR3aWNlIik7CgpmdW5jdGlvbiB0
ZXN0KCkKewogICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKCiAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4oJ29wZW4tdHdpY2UxJykiKTsKICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOwogICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQW5vdGhl
cjsKfTsKCmZ1bmN0aW9uIG9wZW5Bbm90aGVyKCkKewogICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKCdvcGVuLXR3aWNlMicpIik7CiAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZmluaXNoSlNUZXN0Owp9
Cgp0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151524</attachid>
            <date>2012-07-10 14:12:10 -0700</date>
            <delta_ts>2012-07-12 08:38:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90832-20120710141209.patch</filename>
            <type>text/plain</type>
            <size>22327</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE1YjhjYTI3MGVhYzJh
NmVlNThlNDljODkzMzg3YTc1MGJlMTlmMS4uMjU5OTlkNjlhZjMyM2JkYjg3N2ZkODc5MDgwNDA1
NWI2MmY1OWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA3LTEwICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBU1NF
UlQgaGl0IGNhbGxpbmcgb3BlbiBmcm9tIGNhbGxiYWNrIGluIFdvcmtlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHcm91cFNldHRpbmdzIGFyZSB1c2Vk
IHRvIHByb3ZpZGUgdGhlIGJhY2tpbmcgc3RvcmUgcGF0aCBpbiBzb21lCisgICAgICAgIHBvcnRz
LiBBY2Nlc3NpbmcgdGhvc2Ugc2V0dGluZ3MgZnJvbSBhIFdvcmtlciB3YXMgYWRkZWQsIGJ1dCB0
aGUKKyAgICAgICAgYWNjZXNzIHJlZmVyZW5jZWQgdGhyZWFkIHN0YXJ0dXAgZGF0YSB0aGF0IGlz
IGNsZWFyZWQgYmVmb3JlIHRoZQorICAgICAgICBydW4gbG9vcCwgc28gYW4gSURCRmFjdG9yeS5v
cGVuKCkgY2FsbCBleGVjdXRlZCBhc3luY2hyb25vdXNseQorICAgICAgICB3b3VsZCBkZXJlZmVy
ZW5jZSBhIG51bGwgcG9pbnRlci4gUGx1bWIgdGhlIHNldHRpbmdzIHN0YXJ0dXAKKyAgICAgICAg
ZGF0YSBpbnRvIHRoZSBjb250ZXh0IGl0c2VsZiwgbGlrZSBhbGwgb2YgdGhlIG90aGVyIHByb3Bl
cnRpZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi10d2ljZS13b3Jr
ZXJzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6CisgICAgICAgICogd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdv
cmtlckNvbnRleHQ6OkRlZGljYXRlZFdvcmtlckNvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMv
RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29y
a2VyQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKERlZGljYXRlZFdvcmtlckNvbnRleHQpOgor
ICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyQ29udGV4dCk6CisgICAg
ICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKERlZGljYXRl
ZFdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlckNvbnRleHQ6OlNoYXJlZFdvcmtlckNv
bnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFNoYXJl
ZFdvcmtlckNvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyQ29u
dGV4dCk6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAg
KFNoYXJlZFdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
Q29udGV4dDo6Z3JvdXBTZXR0aW5ncyk6CisgICAgICAgIChXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OndvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoK
KyAgICAgICAgKFdvcmtlclRocmVhZCk6CisKIDIwMTItMDctMTAgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjIxNzguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwCmluZGV4IDhiZTlkMWQyNDEwNTdjMmRlODcxMjk0ODQxZjlmYTY5NzRmYWIwNjAu
LjA2NmI0MWZhZDU1MDkwZTdkMGMwZjI1ZDkwNjMzZDIwNzY1NzgzNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0xMDAsNyArMTAw
LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFMKICNpZiBFTkFCTEUoV09SS0VSUykKICAgICBS
ZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJ
REJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7CiAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4
dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KTsKLSAgICBHcm91cFNldHRp
bmdzKiBncm91cFNldHRpbmdzID0gd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPmdyb3VwU2V0dGlu
Z3MoKTsKKyAgICBjb25zdCBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzID0gd29ya2VyQ29u
dGV4dC0+Z3JvdXBTZXR0aW5ncygpOwogICAgIG1fYmFja2VuZC0+b3BlbkZyb21Xb3JrZXIobmFt
ZSwgcmVxdWVzdC5nZXQoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgd29ya2VyQ29udGV4
dCwgZ3JvdXBTZXR0aW5ncyA/IGdyb3VwU2V0dGluZ3MtPmluZGV4ZWREQkRhdGFiYXNlUGF0aCgp
IDogU3RyaW5nKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwCmluZGV4IDIwMmUyOTkw
NzgzZWE4YzgxYzliYzBiMDkzMWEyMWU3ZDNiOTc0MWUuLmYyYjJhNjVmMjgwMjczMjRmNGNmYWIz
YmVkYzcwYzEwNWU3NWE5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0LmNwcApAQCAtNDEsOCArNDEsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLURlZGljYXRlZFdvcmtlckNvbnRleHQ6OkRlZGljYXRlZFdvcmtlckNvbnRleHQo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2Vy
VGhyZWFkKiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkK
LSAgICA6IFdvcmtlckNvbnRleHQodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQorRGVkaWNhdGVkV29ya2VyQ29u
dGV4dDo6RGVkaWNhdGVkV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xp
Y3lUeXBlKQorICAgIDogV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRo
cmVhZCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4
dC5oCmluZGV4IGJlNWJlZmMwMzZlODA1YmNhNDFiNGJjZDczMDdlMTI4OWZjOTRiN2MuLjRmN2My
YzM2ZjJmYzM0ODYzYjZhZjE5NTliZDE3YTE0MjljNjA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oCkBAIC00NCw5ICs0NCw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0IDogcHVi
bGljIFdvcmtlckNvbnRleHQgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3JrZXJD
b250ZXh0IEJhc2U7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtlckNv
bnRleHQ+IGNyZWF0ZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJD
b250ZXh0PiBjcmVhdGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
UGFzc093blB0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgRGVkaWNhdGVkV29ya2VyVGhyZWFk
KiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJDb250
ZXh0KHVybCwgdXNlckFnZW50LCB0aHJlYWQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCBzZXR0aW5ncywgdGhyZWFkLCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdvcmtlckNvbnRleHQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgpOwogICAgIHByaXZh
dGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsK
KyAgICAgICAgRGVkaWNhdGVkV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIERlZGljYXRlZFdvcmtlclRo
cmVhZCosIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkhlYWRlclR5cGUpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApp
bmRleCA2NzhjZTgzMGZiZWNiZjM4MzcwYTdkYzUxODkzMDE3OWYxNTY3Y2E3Li44MWE0ZWRmMmJj
NjRjZWQ4NjVhYjk2NTdiZjA2NDlmYmU1ZWU4YmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC01NCw5ICs1NCw5IEBAIERlZGlj
YXRlZFdvcmtlclRocmVhZDo6fkRlZGljYXRlZFdvcmtlclRocmVhZCgpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8V29ya2VyQ29udGV4dD4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJD
b250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKK1Bhc3NSZWZQdHI8V29ya2VyQ29udGV4
dD4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4g
c2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKIHsKLSAg
ICByZXR1cm4gRGVkaWNhdGVkV29ya2VyQ29udGV4dDo6Y3JlYXRlKHVybCwgdXNlckFnZW50LCB0
aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwor
ICAgIHJldHVybiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGUodXJsLCB1c2VyQWdlbnQs
IHNldHRpbmdzLCB0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUpOwogfQogCiB2b2lkIERlZGljYXRlZFdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29w
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCmlu
ZGV4IDkxZTRjODJkZDQxNzg0OGIyNDI1MzAxYmU0MDgxOTEwZDA4MmM2MjAuLjVhYTEzZDBkMTJl
YzZiMWU1ZDkyMTIxNThkZmY3YjFlMDNkZjA3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIH5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKTsKIAogICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGNyZWF0ZVdv
cmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFk
ZXJUeXBlKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGNyZWF0
ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNz
T3duUHRyPEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bkV2ZW50TG9vcCgpOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuY3BwCmluZGV4IDk0MmJhZjY0MGUzYTMxNDZmMGJj
MWNjMGQyMTNkOWQ1MGMxMTFiYTkuLjY0ZmNlMjIxYjJmNDMzZWIyZjIzMDNkZDllYmJhNDZjZjEz
NjU2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0
LmNwcApAQCAtNTAsOCArNTAsOCBAQCBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlQ29u
bmVjdEV2ZW50KFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQpCiAgICAgcmV0dXJuIGV2ZW50
LnJlbGVhc2UoKTsKIH0KIAotU2hhcmVkV29ya2VyQ29udGV4dDo6U2hhcmVkV29ya2VyQ29udGV4
dChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVR5cGUpCi0gICAgOiBXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCB0
aHJlYWQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkK
K1NoYXJlZFdvcmtlckNvbnRleHQ6OlNoYXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRy
PEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgY29u
c3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQorICAgIDogV29ya2VyQ29udGV4
dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCwgY29udGVudFNlY3VyaXR5UG9saWN5
LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5oCmluZGV4IDVlOGU1
OWJmNjllMzU0ZWY2NWI5NzcxY2MzNjZhYjc1MzMzOTI0MDYuLjBhZTBjMzljYzYwNGRkNWI5OTFl
MTI4MzYwMzE4YWJkZGY3ZjI1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
U2hhcmVkV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyQ29udGV4dC5oCkBAIC00NCw5ICs0NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBTaGFyZWRXb3JrZXJDb250ZXh0IDogcHVibGljIFdvcmtlckNvbnRleHQgewogICAg
IHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3JrZXJDb250ZXh0IEJhc2U7Ci0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdv
cmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5
cGUpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIFNoYXJlZFdvcmtlclRo
cmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyQ29u
dGV4dChuYW1lLCB1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2hhcmVkV29ya2VyQ29udGV4dChuYW1lLCB1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3Ms
IHRocmVhZCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
KSk7CiAgICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+U2hhcmVkV29ya2VyQ29udGV4dCgpOwog
CkBAIC02MSw3ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBTaGFyZWRX
b3JrZXJUaHJlYWQqIHRocmVhZCgpOwogICAgIHByaXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtl
ckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwg
U2hhcmVkV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CisgICAgICAgIFNoYXJlZFdvcmtl
ckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCos
IGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OkhlYWRlclR5cGUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0Nv
bnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBpbnQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDUwYTg5Yzhl
NzZhYzMwZDNjZjJjNTVlYzVlOTQxNTNlZTZkODkxZGUuLmQzOWIzMzUxZGFlZjg5MGE1YWQ4ZGM0
ZmM3ZTk5ODY3MTZhMThkMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlclRocmVhZC5jcHAKQEAgLTUzLDkgKzUzLDkgQEAgU2hhcmVkV29ya2VyVGhyZWFkOjp+U2hh
cmVkV29ya2VyVGhyZWFkKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBTaGFy
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlKQorUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
UGFzc093blB0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50
U2VjdXJpdHlQb2xpY3lUeXBlKQogewotICAgIHJldHVybiBTaGFyZWRXb3JrZXJDb250ZXh0Ojpj
cmVhdGUobV9uYW1lLCB1cmwsIHVzZXJBZ2VudCwgdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5
LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKKyAgICByZXR1cm4gU2hhcmVkV29ya2VyQ29u
dGV4dDo6Y3JlYXRlKG1fbmFtZSwgdXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCB0aGlzLCBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1No
YXJlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJU
aHJlYWQuaAppbmRleCAzYjM1ZWQxMzNkNTRiNjcxMjQzZmMzZTIzNjQ0OGJhNzM4NzllYjI2Li5j
MzQzODI0ZWIxZDRjOTc2NTc1ZjBiNThhNjlmODEwOGJlNzU4NDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB+U2hhcmVkV29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90
ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVX
b3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsK
KyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGNyZWF0ZVdvcmtlckNv
bnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdy
b3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFNo
YXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtl
clRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcAppbmRleCBiMTBjMTQ3MGVkNDhlYjhiODBmOGZjOWEyZTU3OTYxOWYx
OWRkZGNjLi40NWU1ZWJlZGQzMjI3MjcwNWVkYmEwNGFkZDE1NjFiZDM1NTJmNWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTg1LDkgKzg1LDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIH07CiAKLVdvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkKiB0aHJlYWQsIGNvbnN0IFN0
cmluZyYgcG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNl
Y3VyaXR5UG9saWN5VHlwZSkKK1dvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFzc093blB0cjxHcm91cFNldHRpbmdz
PiBzZXR0aW5ncywgV29ya2VyVGhyZWFkKiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgcG9saWN5LCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlw
ZSkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKKyAgICAs
IG1fZ3JvdXBTZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fc2NyaXB0KGFkb3B0UHRyKG5ldyBX
b3JrZXJTY3JpcHRDb250cm9sbGVyKHRoaXMpKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApp
bmRleCAwYjJmNmExZDQ2OWNjNjYxY2RmZTE2YTgyZWFlODZhOTg5ZjEzOWJjLi5hNjNlY2Q4MGYz
ZDZhMDBmMGM4MjYxMTEwZGE0Njg1N2YyMjk5YzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJXb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmgiCkBAIC02OCw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICAgICAg
S1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAorICAgICAgICBjb25zdCBH
cm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgeyByZXR1cm4gbV9ncm91cFNldHRpbmdzLmdl
dCgpOyB9CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBLVVJMJikgY29u
c3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCk7CkBAIC0xMzcsNyArMTM5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIG5vdGlmeU9ic2VydmVyc09m
U3RvcCgpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJDb250ZXh0KGNvbnN0IEtV
UkwmLCBjb25zdCBTdHJpbmcmLCBXb3JrZXJUaHJlYWQqLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICAg
ICAgV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBh
c3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIFdvcmtlclRocmVhZCosIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICAgICAgdm9pZCBhZGRNZXNzYWdlVG9X
b3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CkBAIC0xNjAsNiArMTYyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEtVUkwgbV91cmw7CiAgICAgICAgIFN0
cmluZyBtX3VzZXJBZ2VudDsKKyAgICAgICAgT3duUHRyPEdyb3VwU2V0dGluZ3M+IG1fZ3JvdXBT
ZXR0aW5nczsKIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2Nh
dGlvbjsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2aWdhdG9yPiBtX25hdmlnYXRv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA5YmRlODAwZWIy
ZjgxNTg1M2FlNzVkNTE4OWFkMzg2NTQ2MTcxMTc1Li5iZDAzNTVjNDEzMjRiNmE0MjdjMDVjYjQw
Y2NiYTc5Zjg5MjE4ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiB7
CiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7
Ci0gICAgICAgIG1fd29ya2VyQ29udGV4dCA9IGNyZWF0ZVdvcmtlckNvbnRleHQobV9zdGFydHVw
RGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1cERhdGEtPm1fdXNlckFnZW50LCBtX3N0YXJ0dXBE
YXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlKTsKKyAgICAgICAgbV93b3JrZXJDb250ZXh0ID0gY3JlYXRlV29ya2Vy
Q29udGV4dChtX3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91c2Vy
QWdlbnQsIG1fc3RhcnR1cERhdGEtPm1fZ3JvdXBTZXR0aW5ncy5yZWxlYXNlKCksIG1fc3RhcnR1
cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRhLT5tX2NvbnRlbnRT
ZWN1cml0eVBvbGljeVR5cGUpOwogCiAgICAgICAgIGlmIChtX3J1bkxvb3AudGVybWluYXRlZCgp
KSB7CiAgICAgICAgICAgICAvLyBUaGUgd29ya2VyIHdhcyB0ZXJtaW5hdGVkIGJlZm9yZSB0aGUg
dGhyZWFkIGhhZCBhIGNoYW5jZSB0byBydW4uIFNpbmNlIHRoZSBjb250ZXh0IGRpZG4ndCBleGlz
dCB5ZXQsCkBAIC0xOTMsMTEgKzE5Myw2IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpydW5FdmVudExv
b3AoKQogICAgIG1fcnVuTG9vcC5ydW4obV93b3JrZXJDb250ZXh0LmdldCgpKTsKIH0KIAotR3Jv
dXBTZXR0aW5ncyogV29ya2VyVGhyZWFkOjpncm91cFNldHRpbmdzKCkKLXsKLSAgICByZXR1cm4g
bV9zdGFydHVwRGF0YS0+bV9ncm91cFNldHRpbmdzLmdldCgpOwotfQotCiBjbGFzcyBXb3JrZXJU
aHJlYWRTaHV0ZG93bkZpbmlzaFRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzayB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyVGhyZWFkU2h1dGRv
d25GaW5pc2hUYXNrPiBjcmVhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgK
aW5kZXggNWIxNzUxMzEyMzI4MWY5MWVhZTA1ZGQ1YWNiYTZlYjQ0MjFhYmQyZS4uNjcwZTNjZDFj
YmFmZTViMjg1OGYyOWU0MzQ3Y2QxZTFkOTUwNTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5oCkBAIC02Miw3ICs2Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICAvLyBOdW1iZXIgb2YgYWN0aXZlIHdvcmtlciB0aHJlYWRzLgogICAgICAgICBzdGF0aWMg
dW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKLSAgICAgICAgR3JvdXBTZXR0aW5ncyogZ3Jv
dXBTZXR0aW5ncygpOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKICAgICAgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBnZXROb3RpZmlj
YXRpb25DbGllbnQoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbkNsaWVudDsgfQpAQCAtNzMsNyAr
NzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdvcmtlclRocmVhZChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCAgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKIAogICAgICAg
ICAvLyBGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgd29ya2VyIGNvbnRleHQgZm9y
IHRoZSB0aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBj
cmVhdGVXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6SGVhZGVyVHlwZSkgPSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyQ29u
dGV4dD4gY3JlYXRlV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpID0gMDsKIAog
ICAgICAgICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQu
IERlcml2ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9h
ZnRlciBlbnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkV2
ZW50TG9vcCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGIzN2JjODhlZjliNmQ2ZjczMWNkM2QyZmVmOTEyNGI3NjM0NzBj
NmIuLmY5NDQ5MmEyZjk0NTgzYzNmZjRkMzk2ZTNjMWVkN2JjM2RjNTJlNmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0xMCAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEluZGV4ZWREQjogQVNTRVJUIGhpdCBjYWxsaW5nIG9wZW4gZnJvbSBjYWxs
YmFjayBpbiBXb3JrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkwODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2FsbCBJREJGYWN0b3J5Lm9wZW4oKSB0d2ljZSBmcm9tIGEgd29ya2VyIC0gb25jZSBm
cm9tIHRoZSBpbml0aWFsIHdvcmtlcgorICAgICAgICBzY3JpcHQgZXZhbHVhdGlvbiwgYW5kIG9u
Y2UgaW4gYSBjYWxsYmFjayBhZnRlciB0aGUgd29ya2VyIHRocmVhZCBkYXRhCisgICAgICAgIGhh
cyBiZWVuIHB1cmdlZC4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tdHdpY2Ut
d29ya2Vycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tdHdpY2Utd29ya2Vycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvb3Blbi10d2ljZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKG9wZW5Bbm90aGVyKToKKwogMjAxMi0wNy0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEyMjE3OC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
dHdpY2Utd29ya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLXR3aWNlLXdvcmtlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiOTQyYjQwNjRj
ZTRhMDY3ZmZiYjU1ZTdkNTU3ZmRkYzdkNTBkZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLXR3aWNlLXdvcmtlcnMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1tXb3JrZXJdIFRlc3Qgb3BlbmluZyB0d2ljZQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvb3Blbi10d2lj
ZS5qcworW1dvcmtlcl0gaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CitbV29ya2VyXSAKK1tXb3JrZXJdIGluZGV4ZWREQi5vcGVuKCdvcGVuLXR3
aWNlMScpCitbV29ya2VyXSBpbmRleGVkREIub3Blbignb3Blbi10d2ljZTInKQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tdHdpY2Utd29ya2Vycy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi10d2ljZS13b3JrZXJzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTIwMzdhNDM4ZTM4ZmJjNzEwMjQ4NmJlZTI5ZDM1MGFkOThmMWI3ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tdHdpY2Utd29ya2Vy
cy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PnN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvb3Blbi10d2ljZS5qcycpOzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvb3Blbi10d2ljZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9vcGVuLXR3aWNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkZTcxZThlNDBjNmM5
ZWUyNmM3YjU4YjU0NDVhN2VkOGNlYmY2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb3Blbi10d2ljZS5qcwpAQCAtMCwwICsxLDI2
IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRz
KCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3Qgb3BlbmluZyB0d2ljZSIpOwor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworCisgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdvcGVuLXR3aWNlMScpIik7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlbkFub3RoZXI7Cit9OworCitmdW5jdGlvbiBvcGVuQW5vdGhlcigpCit7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdvcGVuLXR3aWNlMicpIik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZmluaXNoSlNUZXN0OworfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>