<?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>187564</bug_id>
          
          <creation_ts>2018-07-11 14:41:55 -0700</creation_ts>
          <short_desc>IndexedDB: database file of subframe cannot be removed</short_desc>
          <delta_ts>2022-02-12 21:27:22 -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>WebKit API</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>amylwnas</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1441259</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-11 14:41:55 -0700</bug_when>
    <thetext>Steps to reproduce:
1. Visit a website(e.g. google.com) with subframe that loads content from another domain(e.g. ads.com) and uses IndexedDB.
2. Call removeDataOfTypes function to remove IndexedDB.
IndexedDB files at PathToIndexedDB/https_google.com_0/https_ads.com_0/DBName/ are not deleted; files at PathToIndexedDB/https_google.com_0/DBName/ are deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441264</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-11 15:47:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/41649536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441265</commentid>
    <comment_count>2</comment_count>
      <attachid>344784</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-11 15:57:29 -0700</bug_when>
    <thetext>Created attachment 344784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441309</commentid>
    <comment_count>3</comment_count>
      <attachid>344784</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-07-11 17:43:56 -0700</bug_when>
    <thetext>Comment on attachment 344784
Patch

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

&gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:1018
&gt; +				935786CD20F6A2910000CDFC /* IndexedDB.sqlite3 in Copy Resources */,
&gt; +				935786CE20F6A2A10000CDFC /* IndexedDB.sqlite3-shm in Copy Resources */,
&gt; +				935786CC20F6A2700000CDFC /* IndexedDB.sqlite3-wal in Copy Resources */,

Looks like your patch is missing these files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441384</commentid>
    <comment_count>4</comment_count>
      <attachid>344819</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-11 20:52:33 -0700</bug_when>
    <thetext>Created attachment 344819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441385</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-11 20:53:22 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Comment on attachment 344784 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=344784&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:1018
&gt; &gt; +				935786CD20F6A2910000CDFC /* IndexedDB.sqlite3 in Copy Resources */,
&gt; &gt; +				935786CE20F6A2A10000CDFC /* IndexedDB.sqlite3-shm in Copy Resources */,
&gt; &gt; +				935786CC20F6A2700000CDFC /* IndexedDB.sqlite3-wal in Copy Resources */,
&gt; 
&gt; Looks like your patch is missing these files.

Wops! Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441560</commentid>
    <comment_count>6</comment_count>
      <attachid>344819</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-12 10:22:57 -0700</bug_when>
    <thetext>Comment on attachment 344819
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        IDBServer should delete database files recursively to make sure all files are removed.

LGTM.

Let&apos;s say that we have the following IDB databases:
IDB1: top level frame origin A with subframe origin A
IDB2: top level frame origin A with subframe origin B
IDB3: top level frame origin B with subframe origin A.
IDB4: top level frame origin B with subframe origin C.

When user asks to delete all databases from origin A, we should probably delete IDB1, IDB2 and IDB3.

Before the patch, it seems we were deleting IDB1.
After the patch, we are also deleting IDB2.
Is that right? What about IDB3?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441607</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-12 11:42:31 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Comment on attachment 344819 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=344819&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        IDBServer should delete database files recursively to make sure all files are removed.
&gt; 
&gt; LGTM.
&gt; 
&gt; Let&apos;s say that we have the following IDB databases:
&gt; IDB1: top level frame origin A with subframe origin A
&gt; IDB2: top level frame origin A with subframe origin B
&gt; IDB3: top level frame origin B with subframe origin A.
&gt; IDB4: top level frame origin B with subframe origin C.
&gt; 
&gt; When user asks to delete all databases from origin A, we should probably
&gt; delete IDB1, IDB2 and IDB3.
&gt; 
&gt; Before the patch, it seems we were deleting IDB1.
&gt; After the patch, we are also deleting IDB2.
&gt; Is that right? What about IDB3?

Correct!

IDB3 won&apos;t get deleted. We classify the IndexedDB data record by their top level domain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441624</commentid>
    <comment_count>8</comment_count>
      <attachid>344819</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-12 12:14:39 -0700</bug_when>
    <thetext>Comment on attachment 344819
Patch

Clearing flags on attachment: 344819

Committed r233777: &lt;https://trac.webkit.org/changeset/233777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441625</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-12 12:14:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441666</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-12 14:19:04 -0700</bug_when>
    <thetext>&gt; &gt; Let&apos;s say that we have the following IDB databases:
&gt; &gt; IDB1: top level frame origin A with subframe origin A
&gt; &gt; IDB2: top level frame origin A with subframe origin B
&gt; &gt; IDB3: top level frame origin B with subframe origin A.
&gt; &gt; IDB4: top level frame origin B with subframe origin C.
&gt; &gt; 
&gt; &gt; When user asks to delete all databases from origin A, we should probably
&gt; &gt; delete IDB1, IDB2 and IDB3.
&gt; &gt; 
&gt; &gt; Before the patch, it seems we were deleting IDB1.
&gt; &gt; After the patch, we are also deleting IDB2.
&gt; &gt; Is that right? What about IDB3?
&gt; 
&gt; Correct!
&gt; 
&gt; IDB3 won&apos;t get deleted. We classify the IndexedDB data record by their top
&gt; level domain.

We should probably file a bug and find a fix to delete IDB3 as well.
I believe we are already doing this clean-up for Cache API and Service Worker registrations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441745</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2018-07-12 17:43:32 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #10)
&gt; &gt; &gt; Let&apos;s say that we have the following IDB databases:
&gt; &gt; &gt; IDB1: top level frame origin A with subframe origin A
&gt; &gt; &gt; IDB2: top level frame origin A with subframe origin B
&gt; &gt; &gt; IDB3: top level frame origin B with subframe origin A.
&gt; &gt; &gt; IDB4: top level frame origin B with subframe origin C.
&gt; &gt; &gt; 
&gt; &gt; &gt; When user asks to delete all databases from origin A, we should probably
&gt; &gt; &gt; delete IDB1, IDB2 and IDB3.
&gt; &gt; &gt; 
&gt; &gt; &gt; Before the patch, it seems we were deleting IDB1.
&gt; &gt; &gt; After the patch, we are also deleting IDB2.
&gt; &gt; &gt; Is that right? What about IDB3?
&gt; &gt; 
&gt; &gt; Correct!
&gt; &gt; 
&gt; &gt; IDB3 won&apos;t get deleted. We classify the IndexedDB data record by their top
&gt; &gt; level domain.
&gt; 
&gt; We should probably file a bug and find a fix to delete IDB3 as well.
&gt; I believe we are already doing this clean-up for Cache API and Service
&gt; Worker registrations.

Sure. Created a new bug for tracking: https://bugs.webkit.org/show_bug.cgi?id=187631.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840921</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-02-12 21:27:22 -0800</bug_when>
    <thetext>*** Bug 188164 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344784</attachid>
            <date>2018-07-11 15:57:29 -0700</date>
            <delta_ts>2018-07-11 20:52:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187564-20180711155727.patch</filename>
            <type>text/plain</type>
            <size>10110</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkyYmE1N2MyZDcwMTY2
ODQxZDNhMjk4MDk4MWZhNDEzMGU2ODBhZi4uYWM1OTk5ZWY0MWY2Y2FjNGQ1ZTI5NGY4NTZiYzY1
YWI4YjRkYTE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA3LTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogZGF0YWJh
c2UgZmlsZSBvZiBzdWJmcmFtZSBjYW5ub3QgYmUgcmVtb3ZlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NTY0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIEluZGV4ZWREQiwgaWYgb3BlbmluZ09y
aWdpbiBpcyBkaWZmZXJlbnQgZnJvbSBtYWluRnJhbWVPcmlnaW4sIHRoZXJlIHdpbGwgYmUgYW5v
dGhlciAKKyAgICAgICAgbGF5ZXIgaW4gdGhlIGRhdGFiYXNlIGZpbGUgcGF0aC4gCisgICAgICAg
IElEQlNlcnZlciBzaG91bGQgZGVsZXRlIGRhdGFiYXNlIGZpbGVzIHJlY3Vyc2l2ZWx5IHRvIG1h
a2Ugc3VyZSBhbGwgZmlsZXMgYXJlIHJlbW92ZWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBtb2Rp
ZmllZCB0ZXN0OiBXZWJLaXQuV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnJlbW92ZUFsbERhdGFiYXNlc0Zvck9yaWdpblBhdGgpOgorCiAyMDE4
LTA3LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjMzNTUyKTogRmluZCBoaWdobGlnaHQgaGFzIHdoaXRlIHRleHQgb24geWVs
bG93IGJhY2tncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggYWZlNTc1ZGJlMjAyZWNhNTllMjhmZjE5ZDhk
YzAxODQ5MDY0MWFhMC4uYjhlOTMxYjhjMGUzYmE0NTlhY2MzNDQ2NmY2ZGZjMzdmODJiMTc0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKQEAgLTU0MywxMSArNTQzLDE0IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFu
ZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
CiAKIHN0YXRpYyB2b2lkIHJlbW92ZUFsbERhdGFiYXNlc0Zvck9yaWdpblBhdGgoY29uc3QgU3Ry
aW5nJiBvcmlnaW5QYXRoLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogeworICAgIExPRyhJbmRl
eGVkREIsICJyZW1vdmVBbGxEYXRhYmFzZXNGb3JPcmlnaW5QYXRoIHdpdGggb3JpZ2luUGF0aCAl
cyIsIG9yaWdpblBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJh
c2VQYXRocyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnkob3JpZ2luUGF0aCwgIioiKTsKIAog
ICAgIGZvciAoYXV0byYgZGF0YWJhc2VQYXRoIDogZGF0YWJhc2VQYXRocykgewotICAgICAgICBT
dHJpbmcgZGF0YWJhc2VGaWxlID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KGRhdGFiYXNlUGF0aCwgIkluZGV4ZWREQi5zcWxpdGUzIik7CisgICAgICAgIGlmIChGaWxlU3lz
dGVtOjpmaWxlSXNEaXJlY3RvcnkoZGF0YWJhc2VQYXRoLCBGaWxlU3lzdGVtOjpTaG91bGRGb2xs
b3dTeW1ib2xpY0xpbmtzOjpObykpCisgICAgICAgICAgICByZW1vdmVBbGxEYXRhYmFzZXNGb3JP
cmlnaW5QYXRoKGRhdGFiYXNlUGF0aCwgbW9kaWZpZWRTaW5jZSk7CiAKKyAgICAgICAgU3RyaW5n
IGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRh
YmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyIpOwogICAgICAgICBpZiAobW9kaWZpZWRTaW5j
ZSA+IC1XYWxsVGltZTo6aW5maW5pdHkoKSAmJiBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRhdGFi
YXNlRmlsZSkpIHsKICAgICAgICAgICAgIGF1dG8gbW9kaWZpY2F0aW9uVGltZSA9IEZpbGVTeXN0
ZW06OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKGRhdGFiYXNlRmlsZSk7CiAgICAgICAgICAgICBp
ZiAoIW1vZGlmaWNhdGlvblRpbWUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZmYyNTkwMzZkZjRmNzZlODJhMjk3N2YzYjg2MTIyYTI2NjI0OTUw
MS4uN2YzNWEzZTRmZDQ5MjcwNWE5Nzk5ZmY0MDBmMWNhZjk2NmIyMTFlNSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTA3LTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElu
ZGV4ZWREQjogZGF0YWJhc2UgZmlsZSBvZiBzdWJmcmFtZSBjYW5ub3QgYmUgcmVtb3ZlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NTY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDE4LTA3LTEwICBBYWthc2ggSmFpbiAgPGFha2Fz
aF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkXSBBZGQgYnVpbGQgc3RlcCB0
byBVbkFwcGx5IHBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjYWM5NzE0NTI4MTNh
OTEwMjhlNDRiNzNjNDdmMjJjNmI1MDlmMmIuLjdiOGMxN2U3NDE4MzdlNDI3MDJmNmI0MDg1YTlj
ZWYwNGM5ZGY5MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODQsNiArNTg0LDkgQEAK
IAkJOTMyOUFBMjkxREUzRjgxRTAwM0FCRDA3IC8qIFRleHRCcmVha0l0ZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjlBQTI4MURFM0Y4
MUUwMDNBQkQwNyAvKiBUZXh0QnJlYWtJdGVyYXRvci5jcHAgKi87IH07CiAJCTkzMkFFNTNEMUQz
NzEwNDcwMDVERkZBRiAvKiBmb2N1cy1pbnB1dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQg
LyogZm9jdXMtaW5wdXRzLmh0bWwgKi87IH07CiAJCTkzM0Q2MzFEMUZDQjc2MjAwMDMyRUNENiAv
KiBIYXNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMzRDYzMUIxRkNCNzYxODAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgKi87IH07CisJCTkzNTc4
NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzUyMEY2OUZF
RDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJOTM1Nzg2Q0QyMEY2
QTI5MTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAv
KiBJbmRleGVkREIuc3FsaXRlMyAqLzsgfTsKKwkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8q
IEluZGV4ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERC
LnNxbGl0ZTMtc2htICovOyB9OwogCQk5MzYxMDAyOTE0REM5NUE3MDA2MTM3OUQgLyogbG90cy1v
Zi1pZnJhbWVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5o
dG1sICovOyB9OwogCQk5MzYyNUQyNzFDRDk3NDFDMDA2REMxRjEgLyogbGFyZ2UtdmlkZW8td2l0
aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNjI1RDI2MUNEOTczQUYwMDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRo
b3V0LWF1ZGlvLmh0bWwgKi87IH07CiAJCTkzNkY3MjgwMUNEN0Q5RUMwMDY4QTBGQiAvKiBsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8qIGxhcmdlLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKQEAgLTEwMTAsNiArMTAxMyw5IEBACiAJCQkJRjQx
QUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUY0REVGNkVEMUU5QjREQjYwMDQ4RUY2MSAvKiBpbWFnZS1pbi1s
aW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NUI2M0ZCMUYx
OTdGNEEwMDlEMzhCOSAvKiBpbWFnZS1tYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4ZWREQi5z
cWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5MzU3ODZDQzIwRjZBMjcwMDAw
MENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxs
LTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MUJDRUU0RTFDODRGNTNCMDA0MkM4
MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1MUJDRUU0RjFDODRGNTNCMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE2NTEsNiArMTY1Nyw5IEBACiAJCTkzMjlB
QTI4MURFM0Y4MUUwMDNBQkQwNyAvKiBUZXh0QnJlYWtJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RI
YW5kbGVLZXlEb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
ZE5vdEhhbmRsZUtleURvd24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNE
NjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0g
IkluZGV4ZWREQi5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIklu
ZGV4ZWREQi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNEZB
NUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREIu
c3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NzVDNTUxRDMwMzY2RTAw
MEQ2MDREIC8qIGZvY3VzLWlucHV0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImZvY3VzLWlucHV0cy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2MTAw
MjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImxvdHMtb2YtaWZyYW1lcy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM2MjVEMjYxQ0Q5NzNBRjAwNkRDMUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhv
dXQtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby13
aXRob3V0LWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU2Miw2
ICsyNTcxLDkgQEAKIAkJCQlGNDFBQjk5MzFFRjQ2OTJDMDA4M0ZBMDggLyogaW1hZ2UtYW5kLXRl
eHRhcmVhLmh0bWwgKi8sCiAJCQkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWlu
LWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJRjQ1QjYzRkExRjE5N0YzMzAwOUQzOEI5IC8q
IGltYWdlLW1hcC5odG1sICovLAorCQkJCTkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMyAqLywKKwkJCQk5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhl
ZERCLnNxbGl0ZTMtc2htICovLAorCQkJCTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMy13YWwgKi8sCiAJCQkJNTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIElu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMS5odG1sICovLAogCQkJCTUxQkNFRTRDMUM4NEY1
MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovLAogCQkJCTUxQkNF
RTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRl
RGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQppbmRleCBhOGYwODQ3YTkyYTA3
N2Q1MjU5MWQxNDMwZDc1OGRlNzU0ZjJkYTJlLi4yYTRiNDQ2YjNkNWVmZjU3MjExNWI3MjQyMjMz
ZmRlZDEzNTA3YTUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpA
QCAtMTc4LDYgKzE3OCwxOCBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBh
dGhzKQogICAgIFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+IGRhdGFTdG9yZSA9IFtbV0tX
ZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmdldCgpXTsKICAgICBSZXRhaW5QdHI8TlNTZXQ+IHR5cGVzID0g
YWRvcHROUyhbW05TU2V0IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJ
bmRleGVkREJEYXRhYmFzZXMsIG5pbF0pOwogCisgICAgLy8gU3ViZnJhbWUgb2YgZGlmZmVyZW50
IG9yaWdpbnMgbWF5IGFsc28gY3JlYXRlIEluZGV4ZWREQiBmaWxlcy4KKyAgICBSZXRhaW5QdHI8
TlNVUkw+IHVybDEgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5k
ZXhlZERCIiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHVybDIgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhlZERCIiB3aXRoRXh0ZW5zaW9uOkAi
c3FsaXRlMy1zaG0iIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Cisg
ICAgUmV0YWluUHRyPE5TVVJMPiB1cmwzID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIkluZGV4ZWREQiIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtd2FsIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIAorICAgIFJldGFpblB0cjxO
U1VSTD4gZnJhbWVJREJQYXRoID0gW1tmaWxlSURCUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJodHRwc19hcHBsZS5jb21fMCJdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpA
IldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyJdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6ZnJhbWVJREJQYXRoLmdldCgpIHdpdGhJ
bnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKyAg
ICAKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJs
MS5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoLmdldCgpIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIkluZGV4ZWREQi5zcWxpdGUzIl0gZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMi5nZXQoKSB0b1VSTDpbZnJhbWVJ
REJQYXRoLmdldCgpIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxp
dGUzLXNobSJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBjb3B5SXRlbUF0VVJMOnVybDMuZ2V0KCkgdG9VUkw6W2ZyYW1lSURCUGF0aC5nZXQoKSBVUkxC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpu
aWxdOworICAgIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFtkYXRh
U3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6dHlwZXMuZ2V0KCkgbW9kaWZpZWRTaW5jZTpbTlNEYXRl
IGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpbXSgpIHsKICAgICAgICAgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344819</attachid>
            <date>2018-07-11 20:52:33 -0700</date>
            <delta_ts>2018-07-12 12:14:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187564-20180711205233.patch</filename>
            <type>text/plain</type>
            <size>15746</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkyYmE1N2MyZDcwMTY2
ODQxZDNhMjk4MDk4MWZhNDEzMGU2ODBhZi4uYWM1OTk5ZWY0MWY2Y2FjNGQ1ZTI5NGY4NTZiYzY1
YWI4YjRkYTE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA3LTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogZGF0YWJh
c2UgZmlsZSBvZiBzdWJmcmFtZSBjYW5ub3QgYmUgcmVtb3ZlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NTY0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIEluZGV4ZWREQiwgaWYgb3BlbmluZ09y
aWdpbiBpcyBkaWZmZXJlbnQgZnJvbSBtYWluRnJhbWVPcmlnaW4sIHRoZXJlIHdpbGwgYmUgYW5v
dGhlciAKKyAgICAgICAgbGF5ZXIgaW4gdGhlIGRhdGFiYXNlIGZpbGUgcGF0aC4gCisgICAgICAg
IElEQlNlcnZlciBzaG91bGQgZGVsZXRlIGRhdGFiYXNlIGZpbGVzIHJlY3Vyc2l2ZWx5IHRvIG1h
a2Ugc3VyZSBhbGwgZmlsZXMgYXJlIHJlbW92ZWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBtb2Rp
ZmllZCB0ZXN0OiBXZWJLaXQuV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnJlbW92ZUFsbERhdGFiYXNlc0Zvck9yaWdpblBhdGgpOgorCiAyMDE4
LTA3LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjMzNTUyKTogRmluZCBoaWdobGlnaHQgaGFzIHdoaXRlIHRleHQgb24geWVs
bG93IGJhY2tncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggYWZlNTc1ZGJlMjAyZWNhNTllMjhmZjE5ZDhk
YzAxODQ5MDY0MWFhMC4uYjhlOTMxYjhjMGUzYmE0NTlhY2MzNDQ2NmY2ZGZjMzdmODJiMTc0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKQEAgLTU0MywxMSArNTQzLDE0IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFu
ZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
CiAKIHN0YXRpYyB2b2lkIHJlbW92ZUFsbERhdGFiYXNlc0Zvck9yaWdpblBhdGgoY29uc3QgU3Ry
aW5nJiBvcmlnaW5QYXRoLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogeworICAgIExPRyhJbmRl
eGVkREIsICJyZW1vdmVBbGxEYXRhYmFzZXNGb3JPcmlnaW5QYXRoIHdpdGggb3JpZ2luUGF0aCAl
cyIsIG9yaWdpblBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgVmVjdG9yPFN0cmluZz4gZGF0YWJh
c2VQYXRocyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnkob3JpZ2luUGF0aCwgIioiKTsKIAog
ICAgIGZvciAoYXV0byYgZGF0YWJhc2VQYXRoIDogZGF0YWJhc2VQYXRocykgewotICAgICAgICBT
dHJpbmcgZGF0YWJhc2VGaWxlID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KGRhdGFiYXNlUGF0aCwgIkluZGV4ZWREQi5zcWxpdGUzIik7CisgICAgICAgIGlmIChGaWxlU3lz
dGVtOjpmaWxlSXNEaXJlY3RvcnkoZGF0YWJhc2VQYXRoLCBGaWxlU3lzdGVtOjpTaG91bGRGb2xs
b3dTeW1ib2xpY0xpbmtzOjpObykpCisgICAgICAgICAgICByZW1vdmVBbGxEYXRhYmFzZXNGb3JP
cmlnaW5QYXRoKGRhdGFiYXNlUGF0aCwgbW9kaWZpZWRTaW5jZSk7CiAKKyAgICAgICAgU3RyaW5n
IGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRh
YmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyIpOwogICAgICAgICBpZiAobW9kaWZpZWRTaW5j
ZSA+IC1XYWxsVGltZTo6aW5maW5pdHkoKSAmJiBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRhdGFi
YXNlRmlsZSkpIHsKICAgICAgICAgICAgIGF1dG8gbW9kaWZpY2F0aW9uVGltZSA9IEZpbGVTeXN0
ZW06OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKGRhdGFiYXNlRmlsZSk7CiAgICAgICAgICAgICBp
ZiAoIW1vZGlmaWNhdGlvblRpbWUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZmYyNTkwMzZkZjRmNzZlODJhMjk3N2YzYjg2MTIyYTI2NjI0OTUw
MS4uN2YzNWEzZTRmZDQ5MjcwNWE5Nzk5ZmY0MDBmMWNhZjk2NmIyMTFlNSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE4LTA3LTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElu
ZGV4ZWREQjogZGF0YWJhc2UgZmlsZSBvZiBzdWJmcmFtZSBjYW5ub3QgYmUgcmVtb3ZlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NTY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDE4LTA3LTEwICBBYWthc2ggSmFpbiAgPGFha2Fz
aF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkXSBBZGQgYnVpbGQgc3RlcCB0
byBVbkFwcGx5IHBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjYWM5NzE0NTI4MTNh
OTEwMjhlNDRiNzNjNDdmMjJjNmI1MDlmMmIuLjdiOGMxN2U3NDE4MzdlNDI3MDJmNmI0MDg1YTlj
ZWYwNGM5ZGY5MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODQsNiArNTg0LDkgQEAK
IAkJOTMyOUFBMjkxREUzRjgxRTAwM0FCRDA3IC8qIFRleHRCcmVha0l0ZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjlBQTI4MURFM0Y4
MUUwMDNBQkQwNyAvKiBUZXh0QnJlYWtJdGVyYXRvci5jcHAgKi87IH07CiAJCTkzMkFFNTNEMUQz
NzEwNDcwMDVERkZBRiAvKiBmb2N1cy1pbnB1dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQg
LyogZm9jdXMtaW5wdXRzLmh0bWwgKi87IH07CiAJCTkzM0Q2MzFEMUZDQjc2MjAwMDMyRUNENiAv
KiBIYXNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMzRDYzMUIxRkNCNzYxODAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgKi87IH07CisJCTkzNTc4
NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzUyMEY2OUZF
RDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJOTM1Nzg2Q0QyMEY2
QTI5MTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAv
KiBJbmRleGVkREIuc3FsaXRlMyAqLzsgfTsKKwkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8q
IEluZGV4ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERC
LnNxbGl0ZTMtc2htICovOyB9OwogCQk5MzYxMDAyOTE0REM5NUE3MDA2MTM3OUQgLyogbG90cy1v
Zi1pZnJhbWVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5o
dG1sICovOyB9OwogCQk5MzYyNUQyNzFDRDk3NDFDMDA2REMxRjEgLyogbGFyZ2UtdmlkZW8td2l0
aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNjI1RDI2MUNEOTczQUYwMDZEQzFGMSAvKiBsYXJnZS12aWRlby13aXRo
b3V0LWF1ZGlvLmh0bWwgKi87IH07CiAJCTkzNkY3MjgwMUNEN0Q5RUMwMDY4QTBGQiAvKiBsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8qIGxhcmdlLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKQEAgLTEwMTAsNiArMTAxMyw5IEBACiAJCQkJRjQx
QUI5QTUxRUY0Njk2QjAwODNGQTA4IC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUY0REVGNkVEMUU5QjREQjYwMDQ4RUY2MSAvKiBpbWFnZS1pbi1s
aW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NUI2M0ZCMUYx
OTdGNEEwMDlEMzhCOSAvKiBpbWFnZS1tYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4ZWREQi5z
cWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5MzU3ODZDQzIwRjZBMjcwMDAw
MENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxs
LTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MUJDRUU0RTFDODRGNTNCMDA0MkM4
MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1MUJDRUU0RjFDODRGNTNCMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE2NTEsNiArMTY1Nyw5IEBACiAJCTkzMjlB
QTI4MURFM0Y4MUUwMDNBQkQwNyAvKiBUZXh0QnJlYWtJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RI
YW5kbGVLZXlEb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
ZE5vdEhhbmRsZUtleURvd24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNE
NjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0g
IkluZGV4ZWREQi5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIklu
ZGV4ZWREQi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNEZB
NUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREIu
c3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NzVDNTUxRDMwMzY2RTAw
MEQ2MDREIC8qIGZvY3VzLWlucHV0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImZvY3VzLWlucHV0cy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2MTAw
MjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImxvdHMtb2YtaWZyYW1lcy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM2MjVEMjYxQ0Q5NzNBRjAwNkRDMUYxIC8qIGxhcmdlLXZpZGVvLXdpdGhv
dXQtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby13
aXRob3V0LWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU2Miw2
ICsyNTcxLDkgQEAKIAkJCQlGNDFBQjk5MzFFRjQ2OTJDMDA4M0ZBMDggLyogaW1hZ2UtYW5kLXRl
eHRhcmVhLmh0bWwgKi8sCiAJCQkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWlu
LWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJRjQ1QjYzRkExRjE5N0YzMzAwOUQzOEI5IC8q
IGltYWdlLW1hcC5odG1sICovLAorCQkJCTkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMyAqLywKKwkJCQk5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhl
ZERCLnNxbGl0ZTMtc2htICovLAorCQkJCTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMy13YWwgKi8sCiAJCQkJNTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIElu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMS5odG1sICovLAogCQkJCTUxQkNFRTRDMUM4NEY1
MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovLAogCQkJCTUxQkNF
RTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVk
REIuc3FsaXRlMyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCLnNxbGl0ZTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY5OWNiODc5MTVmMGEzOTQxZWU2YTgwZGYyNmQ1NTE1
NGQxODdiZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDA5Ngp6Y21XRnpedk50cVJZPVAoJTF0
YSRGbEc+N1V9OW8kUCo3bENVfEB0fEFWb0d7V1lBTS07MDArSEFscjtsamlWdGoKbjhVbXZzRmQ3
MSpBdXQqT3FhaVJGMDszQD84VW12c0ZkNzEqQXV0Kk82b3ZvKiQ+OWRJCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQi5zcWxpdGUzLXNobSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvSW5kZXhlZERCLnNxbGl0ZTMtc2htCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3Njc5NzBjMmY4ZDA2
YjYxMDQxODAwMDk3ODQ2MTZlYWIyZTY1ZjgKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyNzY4
CnpjbWVJKklaOHg5NUMtNkstKnchX2VUJSg8a3dAP3hNajk5aDJGMz0wSHhXRjZVfSZIaEBGSDMq
dC1NR3UoVilLewp6ZGFCO2clJWk+byliIXNEcWh2MTZLdCU1Iz53S1E4PWopNTd5UEw7X15PS3wz
dilraWBge0IhJSZDYD9xRllvNzEKemVQJXlELSNlKmFmMHVsQjRDWDB5c01nX0hNYHw2ZGJ1ODw2
b3s5UUFuUlRsNiheK1RvJSt9e1JTTT42XiU9TEJtCnpyPCZKPDAwOUM3Mm9OQVpmQipwazFQQmx5
SyE1LU4wdDUmVUFWN2NzMFJqWEY1RmtLKzAwOUM3Mm9OQVpmQipwawp6MVBCbHlLITUtTjB0NSZV
QVY3Y3MwUmpYRjVGa0x7UFhxPlgqVGhKUzx0Qi0jKzw+dFZFN0FYeF9qKEN8e30oOXgKelIpaiND
MCVnMDk1TksxTj85dmhmWjM+al9hWUNSP2Z3S0VoMigmM3NIaVFhK0hVLUxWVHBgZT1LLW1mezFs
a25uCnojWVN3IVBWN2I1QC03NWc1fTEkOCpwQSZPfDNufUorN2VpN1loMlMzPW07IXpkTSR5cjFl
Vih4KlIldlcwO2A9fgppT1EwPSp3WUo3SkVyRWB9ZFoqVkNBVjdjczBSalhGNUZrTEhaR2pKRFVN
ZVg3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQi5zcWxpdGUzLXdhbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCLnNxbGl0ZTMtd2FsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM4MjNmOWMwYmE2NGE5NDIxODkxMjQ4YzQ5NTM0NzkzZDExYzYxMDYKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDE0NDIzMgp6Y21lSSpkdSZAKjlsLUl9UFY2TDM7YDlOb2hea3h8Ul4hQ29h
NXEtMVVDUSFzaWl6Vy1pUE5UfEJYeUQrKWxDfD0KendvfT9ea0gjeVRTZkAodHAmX0lSQ0x4NGNL
eCheKjNRZW1KUF9AIz0jd2dNZGdeOTdFbVRBKDJfK3U0UDtoZ0o3Cno/KUJvPk5rPG1rP15ULXxV
O0Vua2V5Ozc8PWxwKVp2KytARHZUWGdrWXMkKiUlakJ8aEk8KH52aUtqYlBaOWUzMwp6eSFgOSRp
JlpCNWRkdTdJejFqVEg8MGw4VTF0Sk1tOElRKkhnJWlyMVZyI1J4Pl4/O2l3Pjc4IyVneTg+dz1k
VVAKenNVTzw/PWBQUkpHPyg0fSNVcilpOGsze0JPI0VYKDAwOUlMS21ZKio1SV9JezFRMC1Bbkc0
SmVtfjc2NTIyPTlrCnpNMGpMVT9OPiptdjlXbWltJHs/ZypCMF9BcHw8dmJQZjQjLW54WjNuKXpR
UjJBe3RadW9yKnNnQEBANj9FNVk4Nwp6NSohUSFsLXs3eShIcmF2XyZZKk1TRFFjSlE2fCpHTzJ7
YDk2NipzMmQ1OFlhX0hOKEtgOEdLaW99NTxheUZwQ2IKelF7Q2hEXzR8OTtgZ2JiZ2pAPCVYYDx8
Y2FGTD9STitpeUtOX1MlbytjbExCdyFaSlRFPj5kSUxBYjxiQDJxMXN9CnowdGdfMDAwSWN5Z24l
SmxWMUdrc2B+S3NyOHc8bj5TYWdwa2B4Tz0pRkpQe19BbVJuWTQ7Qk92S21ZKio1SV9Jewp6MVEw
Kn4wUihQQlY3Si1rYlR5Yn1ZOW11KT5ZPzwyeTxnWTFxKH00emdaXiFVVmpNbyQ9Xk0lbj59JDde
cXhXK1UKel5sUVdUP3ZqbGNrbCpud25SdFAhUSRPREgrUyFfX1lJIWJGc1J1VzRSQGY4KTFRMCp+
MFIjfDAwMDlJTEttWSoqCnptYnJpLVVmfSUyJnohc1pRdjdvVDtzeH5hMGtVNX5lfGJVbTF1Vjc0
dzBIc1dpdjxBJDVJX0l7MVEwKn4wUiN9Wgp6KWRpQjlFTW07dFdqZVoxT0pMVXpjSSheYWhFI1Vf
SEErKU40dl8wSSQ+KyZyVSVKJXkxP0oxXmJ9VGh+VShFNWkKemk1SkxRdiFHQ1kwcntRMkpRRlhW
UFNuLUQ4dChjd14jeU1BdzxDQHAwUiN8MDAwOUlMS21ZKio1SjJELTVpckNICnpZKEUhVGQ5d013
cVhwc3hEcyhubHprPUBhZzVtfHJZZHpfQjBudVBWMDA5SUxLbVkqKjVJX0l7MWVVcUwxTGFvZAp6
OVdLKiFZRSlqQXlSSHF8PnFxVkAocXNDbUVPen1oVDNlPkY+c0ttR3E3Sj5BY21iXj5LaykpZkpS
Z0RsaiRlXzkKejd1YXoxe0ZkWF96d3M5SjEoeH1uNXhhKX4wdGdfMDAwSWFnZkIqc3JBYmBMcEJW
ZFJaYyV9UF4pYD8kK3shPGBjCnp6XlojXyp7YHRaYFRgWC0mdCY1VE0zViZwMVEwKn4wUiN8MDAw
OUlMa09ES0d0KnwrN3lVakVjKllmUCFDIS1fagp6SWBPKXUpc1NWY3lUVU1PZTFHKHQjbXBLJUF8
N0l9S2FpUl5LNXRJR258T2YqbUlebytvfTUtd3N2Vyg3S3dDKTYKejFKSyN0P2MxczNNZk5EZjNv
TFFHZmMlYmMmQlAxVDlRZC1gLUBQX1RlRjVIIzVrTFJ8MVEwKn4wUiN8MDAwOUlMCnp4RnJNKEBk
NXwhQUZhOG9feEZZQjNzbVczV1dVMVY7c3Q3c2x+dmomYm55Y0FpSkdBcm0rcm80QjdndF8ycTFz
fQp6MHRnXmJZNjNHR3R1fCs0cWJiPiU5Uzg0PE9zYTc/KnNWMmU5fiVTTFJ4M0AjamJ8KEFzbzYj
SGRQaUB0RTh5PTQKekRQM0MxX1BCVk1WMGQ0OD1yLT9JWk41OGpkbj5JQFUhJG9rQjZJNUYyUFB2
NGJ2UWhvaC0jT0l2LT5+MUE9fDktCnorS1N1Nm84Nj5Sb054SmBjbWRgazcpPVokcUFge0UyI1Nj
V05Dam8mZU5sVXFMaH0qVzxjbHM3RkwzKE8rTlY5JAp6JH1ffFpORUg/WTVJX0l7MVEwKn4wUiN8
MDAwOUlfVU8/LU4layZIVTtJRFc3e1kzOHZLYygocSQpOSUpNUNIQGIKekttWSoqNUlfSXsxUTAq
fjBWeURKMDspM28wez1Ke3l1YWJudV8qbGxKVUl8UjAwOUlMS21ZKio1SV9JezFRNTYtCnoxUHR7
QlA3VCN3LT9aeis5Uj1uaXU8Sy1HOT5TdlEzc2hHPl5zKUteKWVxU3t5OEVZejAwSWFnZkIqc3JB
Vy01MAp6R3daOHQmWHlLYWEpcCp+RkdgaG5oRDlxSlNOJjd0KFZVQ2JoVUVMNEU0MnlXM3pVPGVE
fF4xKipCNUIoQE9jem4KejxAQ0lueTYpQyR0OC1nUnpCSyFzVF5qYzB0Z3VzR1YyK1htKUU5YDIj
a0hyZUpHc2VYYkdscm5xdHE5bXpDaUt3CnpIezVpNjBXQ0JqNkVDcDtqYkEqVXltOWAxPkk7PGtB
NzJnKzBSI3wwMDA5SUxLbVkqKjVJX0tkbHo8JWp3YGNrVgp6SzdWIWRKM25pQGR4JCYmbypvRHdm
QipzckFiPGJAMnExc30wdG5tXjApeystQGU5QENQd2pyeVN8RT8wUEE0UGwKejdBYHVFcHRrYmxv
T3VNNUMjemVsWnM7Q2BDSVNjYGZCKnNyQVRUU0M/NllmTz1TTyNGVmR1UmdkKTBLanNTRz5NCnp4
bWFUZUpJfWROWF5NO357JFIrcil6YDF8XzR8OTtgZ2JiYnpNVj9tODFsSi0me0syM08pWS1ASDsq
ISo5X3xZIwp6XzkqUnYtdUM8dD9vczVWYVE+OyQ+XnxxK1BtaSlNZTg/fVNsazt+THpPfW94Y0R+
NT85SlMjTUlWPFd+WVprSigKekgpciEmQCg3cnhrVVJxTjIja3x6TXJZc0duV3UwbTx8KFheZV99
SzcwLUxfSlpPITAyUHJnbmIhUiFZUVNfbU0zCnowMElhZ2ZCKnNyQWI8YkAyJFptWikmLUYxN3g9
PmQpOCMjfT1DNj1QUHtMPU5McWgtbzFRMCp+MFIjfDAwMDlJTAp6S3d3cnQ8XjxHYmBVUzU0YU5t
Y1gkTH5IJnpyWlhJRWQmcmkwMDlJTEttWSoqNUlfSXsxV0gpSVArI0Vxe3YoZlYKei10ZXl2MylC
fkk9c2M9S2Qocmc7PlRIUjU+STtZflNyOSt+MFIje3phZT9HcmJ2OT5YcWhVZlNaRHV3dEZJP294
CnpJfUZNM3NkUkMlK0s/N01QbHxhRkRlb1JkbSZSRjREdGhzYEBSOWk3Uk9HPDRTfiRJM0IqUlpu
Q0wrRzZNQ0A/awp6VGYzPCpQI0I1JjAob0ItYkNybC1vPGU8WV9ncTQ8aD0kdStYPzZNPF5HKHAk
SntjWCszTUNBMCRUcTlJdyZGSVMKeno1dytGXnZeLVZBMTNNeEVKYnwqYDVvVnBpNUdaYlg2XjRm
JmM2M14+STs8a2hmb2Q9MFIjfDAwMDlJTEttWSoqCno1SV9LZGx6PF4jOzlHQ3BkOzFJRGRFfDB8
YyEzbzxKZWhLXj15LXY4PngxKmczc0BodC1KXlJmbmd9MygwMEpjfAp6Rm10Y049M0tZVmwtI0o1
bSt3eyZaJmp6JVNVM0BsI1NJdGc0V3M5VnRDWGUlNHR2aXZCJGdkQzlHI0JFKVR4QWMKemd1KC19
P3RBTDMmWXBHbyM/VENWSXFXckRUdFUxKk5KJG0qQ3RpVTAyd0ZfWjcxfSQxenE3cUZFTCEyWHN6
dUtqCnpGSUY0ZzEjKWh5Ryk7JlhaT0F0aSUwSHtheWY2S087WWt0VUdYRVg4VGRVYHJlaiNVPGhQ
Xm99PkB5cCFUOXtDPgp6UlhnMTUqbXx+TUdhTz1ld2JDPnFNJnQrazB8b1lQdF4tV0glKkc+PVlI
OyFNVylMcit5PE5FPEQ3UU5BYUc5bmYKenNra21OPXxeZm5KRCFme25xNShtSzlsfW5yKkJCbnVH
WmdGPT94bElZRU5IeGErQWc4YmghKitXY3Nicj9RK0FqCnpNMVM4Um9+K29KTkRSYUJNYVBTIW9g
NDtfZmswY3hTTSpTfV9OcHA9QmkmIzApRGFpNmQreXo0VmJAQHFzbnJQUAp6VjYmdnoyN35APmdK
UzJrR28henFKU3BrUklVZyZ1U1VMQzFmWFVgO1hmUCFvKT9VOHBvMkd4NjRKVCNweUQ5dmsKekxW
S1hhQT9GUX5AK2RLTkcjVlN6RGU3azZhZl4/YV8zfFRUQ1NHOXJkKkFKUT5kTThoNkU5RypBR3xw
KjFRMCp+CnowUiN8MDAwOUlMS21ZKipeYTY3MWU/X0tXS3NqXko2U2E2JD5KSTlPWGR7M0MwdGdf
MDAwSWFnZkIqc3JBVypVYgp6U3tGZDNVIVk+d0JVaGdQKW42e2pjbWIyK3tXOV43MXB4I1FLbVkq
KjVJX0l7MVEwKn4wUjthNDF5LTNYRXNoPkYKejVncnJTVEhEb0ZKUUFKcWlvPiN0fEppdGZYN0I1
TjlEWiFpT1J9QFQ8b0tYV3s5ezE/MFIjfDAwMDlJTEttWSoqCno1SV9LZFFWPnthWHtwTlQ3IVpl
TGghPVJ5c2BoPkxAYDtOd1VjbEApQypsUmY0O0JPdkttWSoqNUlfSXsxUTAqfgp6MFIjfE9qc25l
UWk+bzczdHlQdjUtSnk9ZUJNRFdtOFcwdG4pc0U/U0JEJHxIb1kpZ0REcWk0fnoyPDlNUGd4KDgK
em9kc3NjPHViPSpBX2tWQGlEI2I+S21ZKio1SV9JezFRMCp+MFIje3pCdjVhMG5lPUBJPHw1KCtU
JGUyTktmVH1uCno2QiNkSGFoJVpOMTtqNUYxUTAqfjBSI3wwMDA5SUxLbVkqKjVjcElEUiNgLU9m
WHZ0WWJhe1g7ZWQ2JX5lfTRDJAp6ci0hUSF7IVBYVVNSNUIqeXVid18yMHFtaiZ4MGQ/MDBJYWdm
QipzckFiPGJAMnB+e1VWM25tTTh5a0BCR19XaXQKelVmfGw8OCQqKkBlKjE0M0ZIcjd5SFhTYkA4
WX5EUGZCKnNyQWI8YkAycTFzfTB0Z19tQm0lMztFJGJhVTtYfVA2CnpkKTNpfFJ3bHNUPjBPJDVm
dVUhd0MwfnJNKzlsJSEke2xBP0BkOVV2Nys4YE0meDBVPDAwSWFnZkIqc3JBYjxiQAp6MnB+e2NW
NnxudkRZd180ezNoY0N2aHgla0tLa2E3LXlEREwwYFVUY1BYeEM+MDA5SUxLbVkqKjVJX0l7MVEw
O3IKUGU8NHRPeW55JG4+a0lyQmZ6KHkwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IGE4ZjA4NDdhOTJhMDc3ZDUyNTkx
ZDE0MzBkNzU4ZGU3NTRmMmRhMmUuLjJhNGI0NDZiM2Q1ZWZmNTcyMTE1YjcyNDIyMzNmZGVkMTM1
MDdhNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC0xNzgs
NiArMTc4LDE4IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMpCiAg
ICAgUmV0YWluUHRyPFdLV2Vic2l0ZURhdGFTdG9yZT4gZGF0YVN0b3JlID0gW1tXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uZ2V0KCldOwogICAgIFJldGFpblB0cjxOU1NldD4gdHlwZXMgPSBhZG9wdE5T
KFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWRE
QkRhdGFiYXNlcywgbmlsXSk7CiAKKyAgICAvLyBTdWJmcmFtZSBvZiBkaWZmZXJlbnQgb3JpZ2lu
cyBtYXkgYWxzbyBjcmVhdGUgSW5kZXhlZERCIGZpbGVzLgorICAgIFJldGFpblB0cjxOU1VSTD4g
dXJsMSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREIi
IHdpdGhFeHRlbnNpb246QCJzcWxpdGUzIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOworICAgIFJldGFpblB0cjxOU1VSTD4gdXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREIiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUz
LXNobSIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBSZXRh
aW5QdHI8TlNVUkw+IHVybDMgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiSW5kZXhlZERCIiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMy13YWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgCisgICAgUmV0YWluUHRyPE5TVVJMPiBm
cmFtZUlEQlBhdGggPSBbW2ZpbGVJREJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpA
Imh0dHBzX2FwcGxlLmNvbV8wIl0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzIl07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSBjcmVhdGVEaXJlY3RvcnlBdFVSTDpmcmFtZUlEQlBhdGguZ2V0KCkgd2l0aEludGVybWVk
aWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjpuaWxdOworICAgIAorICAg
IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwxLmdldCgp
IHRvVVJMOltmcmFtZUlEQlBhdGguZ2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAi
SW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyLmdldCgpIHRvVVJMOltmcmFtZUlEQlBhdGgu
Z2V0KCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtc2ht
Il0gZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJ
dGVtQXRVUkw6dXJsMy5nZXQoKSB0b1VSTDpbZnJhbWVJREJQYXRoLmdldCgpIFVSTEJ5QXBwZW5k
aW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXdhbCJdIGVycm9yOm5pbF07Cisg
ICAgCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgW2RhdGFTdG9yZSBy
ZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5nZXQoKSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFu
dFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOltdKCkgewogICAgICAgICByZWNlaXZlZFNjcmlwdE1l
c3NhZ2UgPSB0cnVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>