<?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>147872</bug_id>
          
          <creation_ts>2015-08-11 00:16:21 -0700</creation_ts>
          <short_desc>[Content Filtering] REGRESSION (r182356): Provisional URL is incorrect in didReceiveServerRedirectForProvisionalLoadForFrame when Content Filtering is enabled</short_desc>
          <delta_ts>2015-08-23 23:48:50 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</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>
          <dependson>147871</dependson>
    
    <dependson>148317</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>aestes</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116507</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-11 00:16:21 -0700</bug_when>
    <thetext>When Content Filtering is enabled and a server redirect occurs, the provisional URL does is not updated to the redirect URL when didReceiveServerRedirectForProvisionalLoadForFrame is sent to the load delegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116508</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-11 00:18:05 -0700</bug_when>
    <thetext>rdar://problem/22044000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120208</commentid>
    <comment_count>2</comment_count>
      <attachid>259742</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 17:40:11 -0700</bug_when>
    <thetext>Created attachment 259742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120212</commentid>
    <comment_count>3</comment_count>
      <attachid>259742</attachid>
    <who name="">mitz</who>
    <bug_when>2015-08-23 18:12:22 -0700</bug_when>
    <thetext>Comment on attachment 259742
Patch

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

&gt; Tools/TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:32
&gt; +LD_RUNPATH_SEARCH_PATHS = &quot;@loader_path/../../..&quot;;

Is this number of ../ right for iOS as well?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:38
&gt; +static bool isDone = false;

Don’t have to initialize to false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120229</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 22:36:42 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 259742 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259742&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:32
&gt; &gt; +LD_RUNPATH_SEARCH_PATHS = &quot;@loader_path/../../..&quot;;
&gt; 
&gt; Is this number of ../ right for iOS as well?

Nope, it&apos;s not. Good catch.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:38
&gt; &gt; +static bool isDone = false;
&gt; 
&gt; Don’t have to initialize to false.

Ok. Thanks again for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120238</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 23:48:50 -0700</bug_when>
    <thetext>Committed r188851: &lt;http://trac.webkit.org/changeset/188851&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259742</attachid>
            <date>2015-08-23 17:40:11 -0700</date>
            <delta_ts>2015-08-23 18:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147872-20150823174003.patch</filename>
            <type>text/plain</type>
            <size>29544</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNlNTI4ODNiNWVmOGYy
ODYzMGUzNjQ0NzNlYmI1ODJkM2I0MmNmOS4uNTg0NTdlMzE1MmZmNjc2NGVmYmZmZDRhZjM2MWM4
OTE0ZGFhZGYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTIzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IFJFR1JFU1NJT04gKHIxODIzNTYpOiBQcm92aXNpb25hbCBVUkwgaXMgaW5jb3JyZWN0IGluIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHdoZW4gQ29u
dGVudCBGaWx0ZXJpbmcgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODcyCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIyMDQ0MDAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzc2Vk
IHRoZSBSZXNvdXJjZUxvYWRlciByZXF1ZXN0IFVSTCBwcmlvciB0byBkaXNwYXRjaFdpbGxTZW5k
UmVxdWVzdCgpIHRvIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKCkuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBDb250ZW50RmlsdGVyaW5nLlNlcnZl
clJlZGlyZWN0CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOiBBZGRlZCBhIFVSTCBhcmd1bWVudCB0byBkaXNwYXRjaERpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpLgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0SW50ZXJuYWwpOiBQYXNzZWQgdGhlIHJlcXVlc3QgVVJMIHRvIGRpc3BhdGNo
RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkuCisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRl
cm5hbHMpOiBTdG9wcGVkIGNhbGxpbmcgTW9ja0NvbnRlbnRGaWx0ZXI6OmVuc3VyZUluc3RhbGxl
ZCgpLgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpzZXRFbmFibGVkKTog
Q2FsbGVkIE1vY2tDb250ZW50RmlsdGVyOjplbnN1cmVJbnN0YWxsZWQoKSB0byBlbnN1cmUgdGhl
CisgICAgICAgIG1vY2sgaXMgaW5zdGFsbGVkIHdoZW5ldmVyIHRoZSBmaWx0ZXIgaXMgZW5hYmxl
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDogRXhwb3J0
ZWQgbWVtYmVyIGZ1bmN0aW9ucyB1c2VkIGJ5IFRlc3RXZWJLaXRBUEkuCisKIDIwMTUtMDgtMjMg
IEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIGJhY2sgaW4gcjE4ODgwMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA5NzdiYmE3NzQx
NzM2NTViNjZkMTdjMDI0MjQ2ODczNGMwM2M4Y2ViLi5kNTE1YzNmMTY3NDQ3ODAyM2ExN2RkOWI4
MTE0NTA4M2EzOWJkYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUt
MDgtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250ZW50
IEZpbHRlcmluZ10gUkVHUkVTU0lPTiAocjE4MjM1Nik6IFByb3Zpc2lvbmFsIFVSTCBpcyBpbmNv
cnJlY3QgaW4gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUgd2hlbiBDb250ZW50IEZpbHRlcmluZyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4NzIKKyAgICAgICAgcmRhcjovL3Byb2Js
ZW0vMjIwNDQwMDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQpOiBTZXQgcHJvdmlzaW9uYWxVUkwgdXNpbmcgdGhlIFVSTCBhcmd1bWVudC4KKwog
MjAxNS0wOC0yMyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgYmFjayBpbiByMTg4ODAzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQwMjA0
ZDIwMmQ0ZWFlMDYyMTkxNWViMGY5NWNhNmNmNGQ4MmQ3YzkuLmYyZGVjOTE3MWY5MTYyM2M0YzJk
MzlhMjJhYTgxNWE1M2FhYmQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0w
OC0yMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRlbnQg
RmlsdGVyaW5nXSBSRUdSRVNTSU9OIChyMTgyMzU2KTogUHJvdmlzaW9uYWwgVVJMIGlzIGluY29y
cmVjdCBpbiBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSB3aGVuIENvbnRlbnQgRmlsdGVyaW5nIGlzIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzg3MgorICAgICAgICByZGFyOi8vcHJvYmxl
bS8yMjA0NDAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgVGhlIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyIHJlcXVlc3QgVVJMIGRv
ZXMgbm90IHJlZmxlY3QgcmVkaXJlY3RzIHdoZW4gY29udGVudCBmaWx0ZXJpbmcgaXMgZW5hYmxl
ZCwgYnV0CisgICAgICAgIHRoZSBVUkwgYXJndW1lbnQgcGFzc2VkIHRvIGRpc3BhdGNoRGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgZG9lcywgc28gdXNlIGl0IGlu
dGVhZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQpOgorICAgICAg
ICBTZW50IERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
IHVzaW5nIHRoZSBVUkwgYXJndW1lbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE1LTA4LTIzICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVHlwbyBmaXggYWZ0ZXIgcjE4ODg0
Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2ZWJkNzE5MmFjNGQ4ZDFjMzQyZjJkNDdlODNkZjc2OTJjZTQ2ZjkwLi4xODA3ZTRj
OTIwMzMyZjVlYmNhNDQ4YzA3OTIwZDUwYzM2MmM4Mjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zOTI0LDcgKzM5MjQsNyBA
QAogCQlBMTlEOTM0QTFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIu
bW0gKi87IH07CiAJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLmggKi87IH07CiAJCUExQjVCMjlFMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmNwcCAqLzsgfTsKLQkJQTFCNUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8qIE1vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExQjVCMjlEMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmggKi87IH07CisJCUExQjVCMjlGMUFBQTg0NkYwMDhCNjA0MiAvKiBNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUI1QjI5RDFBQUE4NDZFMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUExQkY2QjgyMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJGNkI4MDFBQTk2QzdE
MDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuY3BwICovOyB9OwogCQlBMUJGNkI4MzFBQTk2
QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2Nr
Q29udGVudEZpbHRlci5oICovOyB9OwogCQlBMUM3OTcxODE4ODNERDgyMDAwRjVFMUYgLyogRE9N
R2VzdHVyZUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU0RENERDE4ODBGOTAxMDAzRUVEQkIgLyogRE9NR2VzdHVy
ZUV2ZW50LmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOGM1
N2Q2ZTRkYWU2YmU2NDA2MTc5ZmFlYWY0MjRmYzE1ZGI4NDVlZC4uNmU1ZWU3NGJkMGE4MmE4ZGFi
MWFjZGYzODU0NmNlM2UwNTI2ZDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtMjcyLDcgKzI3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hE
aWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50KSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkSGFuZGxlT25sb2Fk
RXZlbnRzKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGUgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKGNvbnN0IFVSTCYpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZENhbmNlbENsaWVudFJlZGlyZWN0KCkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwmLCBkb3VibGUsIGRvdWJs
ZSkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlKCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IGUwNGJiZjViMDhlMTk0ZjY0YTQ1MzU2ZTcyNTZmYWI1YWI4YzZh
ZTkuLmFmZDFiMTAyMTNkYTUxNmYzNDk2Y2MyYjQxZjZiMjMzNzE4NzA3YmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNTQsNyArMTU0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hEaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkgPSAwOwogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygpID0gMDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoY29uc3QgVVJMJikgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpIHsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMjYzM2Y0ZTBjNDU1OTk0YmVk
MmJiM2ZkZjJlYWZmNGE2MjUzMTI4OS4uY2VkYjE4YzA4ZjY0ODNiMzQ4ZDVjMmFkN2Q0OWZkYjAx
NWVmYTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0z
NjIsMTAgKzM2MiwxMCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRl
cm5hbChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlcwogICAgIGlmICghcmVkaXJl
Y3RSZXNwb25zZS5pc051bGwoKSkKICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRl
clN0cmF0ZWd5KCktPnJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5jcm9zc09yaWdpblJlZGlyZWN0
UmVjZWl2ZWQodGhpcywgcmVxdWVzdC51cmwoKSk7CiAKLSAgICBtX3JlcXVlc3QgPSByZXF1ZXN0
OwotCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpICYmICFtX2RvY3VtZW50TG9h
ZGVyLT5pc0NvbW1pdHRlZCgpKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNw
YXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOworICAgICAg
ICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZChtX3JlcXVlc3QudXJsKCkpOworCisgICAgbV9yZXF1ZXN0ID0g
cmVxdWVzdDsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY2FsbGJhY2sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYTE0YWI4ZjliMWYxNTQxN2Y4
ZjVkMGU5ZDY0YWRhMTMxYmQ1Njk2ZC4uNGJhY2Q1NWZlZTNiZTE5NWZhMzA3NGY0YjM3MDM0MmUx
N2I0Y2Y5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTgzLDcgKzE4
Myw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSNpbmNsdWRl
ICJNb2NrQ29udGVudEZpbHRlci5oIgorI2luY2x1ZGUgIk1vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTM1OCwxMCArMzU4LDYg
QEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIGVuYWJsZU1v
Y2tSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKTsKICAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1l
ZGlhVG8oZG9jdW1lbnQtPnBhZ2UoKSwgbmV3IFVzZXJNZWRpYUNsaWVudE1vY2soKSk7CiAjZW5k
aWYKLQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBNb2NrQ29udGVudEZpbHRl
cjo6ZW5zdXJlSW5zdGFsbGVkKCk7Ci0jZW5kaWYKIH0KIAogRG9jdW1lbnQqIEludGVybmFsczo6
Y29udGV4dERvY3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwCmluZGV4IDVlMGEwYjkyZmFkMDU3MjM2ZDc3
MTM2NmM5NjI3MjhmN2RmMmQxMzkuLmE2ZDhmNmRiYmYyMDYyYzFmOTE2NWI4YzRhMTVhOWU4OGQ2
NjU0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZp
bHRlclNldHRpbmdzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudEZp
bHRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oIgorI2luY2x1
ZGUgIk1vY2tDb250ZW50RmlsdGVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDYgKzQ2LDEyIEBAIHZvaWQgTW9ja0NvbnRl
bnRGaWx0ZXJTZXR0aW5nczo6cmVzZXQoKQogICAgIHNpbmdsZXRvbigpID0gTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5ncygpOwogfQogCit2b2lkIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIE1vY2tDb250ZW50RmlsdGVyOjplbnN1cmVJ
bnN0YWxsZWQoKTsKKyAgICBtX2VuYWJsZWQgPSBlbmFibGVkOworfQorCiBjb25zdCBTdHJpbmcm
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnVuYmxvY2tSZXF1ZXN0VVJMKCkgY29uc3QKIHsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1bmJsb2NrUmVxdWVzdFVSTCA9IG1h
a2VTdHJpbmcoQ29udGVudEZpbHRlcjo6dXJsU2NoZW1lKCksICI6Ly8iLCB1bmJsb2NrVVJMSG9z
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmgKaW5kZXggZTdlYTViOGVjOTc3MDBmYTgwYjI2ZDc5ZGQ3YTRiYjg3MzViODRmMy4u
ZDE2MjY4OThlYjI1MzMyMTE3N2UxYTM0NzBlODYxNTIwMjUzNmI4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgcHVibGljOgogICAgICAgICBCbG9jawogICAgIH07CiAKLSAgICBzdGF0aWMgTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzJiBzaW5nbGV0b24oKTsKICAgICBz
dGF0aWMgdm9pZCByZXNldCgpOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1bmJsb2NrVVJMSG9z
dCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siOyB9CiAKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGVyZWYoKSB7IH0KIAogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZW5hYmxlZDsgfQotICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9l
bmFibGVkID0gZW5hYmxlZDsgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldEVuYWJs
ZWQoYm9vbCk7CiAKICAgICBjb25zdCBTdHJpbmcmIGJsb2NrZWRTdHJpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2Jsb2NrZWRTdHJpbmc7IH0KICAgICB2b2lkIHNldEJsb2NrZWRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBibG9ja2VkU3RyaW5nKSB7IG1fYmxvY2tlZFN0cmluZyA9IGJsb2NrZWRTdHJpbmc7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGNkMWYyNGJhOWMzM2FhM2RiNjBmMGJhMWQzNTY1ZWI3YWZm
NDUwNzkuLjRhOTU1Y2I5NDdlNTFkNDVlMmQ5ODVmZDZmYTUxNDhhMWM1YTdkODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTlNDYWNoZWRV
UkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJD
b3JlOjpVUkwmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxD
bGllbnRSZWRpcmVjdCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFs
LCBkb3VibGUgZmlyZURhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCAwMWMxNjllNmE4NmU2MTBhODJmNGI2YTc4Y2FhMmI0MWEyMjY4OGY5Li4yMjJhZjE2N2I4MTc2
NzA0MTFlOGFkYmZkOGM2NTFmYmJiYzY5YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNTc4LDkg
KzU3OCw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkSGFuZGxlT25s
b2FkRXZlbnRzKCkKICAgICAgICAgQ2FsbEZyYW1lTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9u
cy0+ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZTopLCBtX3dlYkZyYW1lLmdldCgp
KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoY29u
c3QgVVJMJiB1cmwpCiB7Ci0gICAgbV93ZWJGcmFtZS0+X3ByaXZhdGUtPnByb3Zpc2lvbmFsVVJM
ID0gY29yZShtX3dlYkZyYW1lLmdldCgpKS0+bG9hZGVyKCkucHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcigpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+cHJvdmlz
aW9uYWxVUkwgPSB1cmwuc3RyaW5nKCk7CiAKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2Vi
VmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICAgICBXZWJGcmFtZUxvYWREZWxlZ2F0ZUltcGxlbWVu
dGF0aW9uQ2FjaGUqIGltcGxlbWVudGF0aW9ucyA9IFdlYlZpZXdHZXRGcmFtZUxvYWREZWxlZ2F0
ZUltcGxlbWVudGF0aW9ucyh3ZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggZjkwNjM5NmQ3ZDFiZTAwYTYyN2EyMDY2MjczZTgxZTUxNTNmZGU5NC4uMDgzNzVi
YTI1MzYzZGU5OGZhZGRhMzQyZGVjY2QxOWE2ODlkNmE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTI3OCwyMSArMjc4LDIwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKICAgICB3ZWJQYWdlLT5pbmpl
Y3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKHdl
YlBhZ2UsIG1fZnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZChjb25zdCBVUkwmIHVybCkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
V2ViRG9jdW1lbnRMb2FkZXImIGRvY3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8V2ViRG9jdW1l
bnRMb2FkZXImPigqbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXIoKSk7Ci0gICAgY29uc3QgU3RyaW5nJiB1cmwgPSBkb2N1bWVudExvYWRlci51
cmwoKS5zdHJpbmcoKTsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCiAgICAg
Ly8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxl
TG9hZGVyQ2xpZW50KCkuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUod2ViUGFnZSwgbV9mcmFtZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRo
ZSBVSVByb2Nlc3MuCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1l
LT5mcmFtZUlEKCksIGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgpLCB1cmwsIFVzZXJEYXRh
KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRh
dGEuZ2V0KCkpLmdldCgpKSkpOworICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
bV9mcmFtZS0+ZnJhbWVJRCgpLCBkb2N1bWVudExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLnN0
cmluZygpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3Rz
VG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTg4NjlhOTVhOWU4MDhkNDg3MDE4NDdjMzAyZWNhOGVh
YzAwMDZiOS4uZDExMWRmYThlMDA2NzIxYjRjOWQ0NjY1ZDRjMjdmMGU0MzcxODc1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKSBvdmVycmlkZTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6
VVJMJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlUHJvdmlz
aW9uYWxVUkwoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxD
bGllbnRSZWRpcmVjdCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFs
LCBkb3VibGUgZmlyZURhdGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ0ZmU1MjNlMDA1MGE5NTE1YzA1YWYzNTNkYTgyMmVm
NzQzMjUzNWUuLjZhNTM4ZTBlODY0OGI2NTMyY2I0Y2EyOGM4Y2UxZTYwNjI4NjMxNDQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
NSBAQAogMjAxNS0wOC0yMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAg
ICAgW0NvbnRlbnQgRmlsdGVyaW5nXSBSRUdSRVNTSU9OIChyMTgyMzU2KTogUHJvdmlzaW9uYWwg
VVJMIGlzIGluY29ycmVjdCBpbiBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSB3aGVuIENvbnRlbnQgRmlsdGVyaW5nIGlzIGVuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzg3MgorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS8yMjA0NDAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgYW4gQVBJIHRlc3QuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNjb25maWc6IExp
bmtlZCBsaWJXZWJDb3JlVGVzdFN1cHBvcnQgaW4gb3JkZXIgdG8gdXNlIE1vY2tDb250ZW50Rmls
dGVyLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0NvbnRlbnRGaWx0ZXJpbmcubW06IEFkZGVkLgorICAgICAgICAoLVtTZXJ2ZXJSZWRpcmVjdE5h
dmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOl0p
OiBFeHBlY3QgdGhlIGluaXRpYWwgcmVxdWVzdCBVUkwuCisgICAgICAgICgtW1NlcnZlclJlZGly
ZWN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOl0pOiBFeHBlY3QgdGhlIHJlZGlyZWN0IFVSTC4KKyAgICAg
ICAgKC1bU2VydmVyUmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRDb21taXRO
YXZpZ2F0aW9uOl0pOgorICAgICAgICAoVEVTVCk6IFRlc3RlZCB0aGF0IC1bV0tXZWJWaWV3IFVS
TF0gaXMgdXBkYXRlZCBhZnRlciBhIHJlZGlyZWN0IHdoZW4gY29udGVudCBmaWx0ZXJpbmcgaXMg
ZW5hYmxlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Db250
ZW50RmlsdGVyaW5nUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbU2VydmVyUmVkaXJlY3RQ
bHVnSW4gaW5pdGlhbGl6ZV0pOiBFbmFibGUgTW9ja0NvbnRlbnRGaWx0ZXIuCisKKzIwMTUtMDgt
MjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIEZpeGVkIHRoZSAz
Mi1iaXQgTWFjIGJ1aWxkIGFmdGVyIHIxODg4NDQuCiAKICAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZwpp
bmRleCA1MzliZDNkOGJhZDM4N2E3ZGRhMmI1NDA2ZjM0NGExMGFjZTE4MTlkLi4zZWNkNjVjNjQ4
MTNlMjQ3N2Q4M2ZjZjNkNzM5ZTUxMjhhZDNmMzc2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9XZWJQcm9jZXNzUGx1Z0luLnhjY29uZmln
CkBAIC0yNyw0ICsyNyw2IEBAIElORk9QTElTVF9GSUxFID0gY29jb2EvV2ViUHJvY2Vzc1BsdWdJ
bi9JbmZvLnBsaXN0OwogUFJPRFVDVF9OQU1FID0gVGVzdFdlYktpdEFQSTsKIEVYRUNVVEFCTEVf
U1VGRklYID0gLmJ1bmRsZTsKIFdSQVBQRVJfRVhURU5TSU9OID0gd2tidW5kbGU7Ci1PVEhFUl9M
REZMQUdTID0gJChpbmhlcml0ZWQpIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29y
ayBXZWJLaXQ7CitIRUFERVJfU0VBUkNIX1BBVEhTID0gJChpbmhlcml0ZWQpICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9XZWJDb3JlVGVzdFN1cHBvcnQ7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0
ZWQpIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3Jl
VGVzdFN1cHBvcnQ7CitMRF9SVU5QQVRIX1NFQVJDSF9QQVRIUyA9ICJAbG9hZGVyX3BhdGgvLi4v
Li4vLi4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzEwMDRiMDJmNDBjMGZiZjE4NmRj
YTNjMmIzNDJiNzQ1ZDI3MGY5Li4zYThiMTE1MTE2N2VkZjNjZTE1MTBlNTRmODM1YjFmNDVkYTUz
ZjA3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY5LDYgKzI2OSw4IEBACiAJCUExM0VC
QkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUUxQjg3NDM2RjAw
MDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi87IH07CiAJCUExM0VCQkIxMUI4
NzQzODAwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1
bmRsZVBhcmFtZXRlcnMubW0gKi87IH07CiAJCUExNEZDNTg1MUI4OTczOTEwMEQxMDdFQiAvKiBX
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi87IH07CisJCUExNEZDNTg4MUI4OTkxQkYwMEQxMDdF
QiAvKiBDb250ZW50RmlsdGVyaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTE0RkM1ODYxQjg5OTFCNjAwRDEwN0VCIC8qIENvbnRlbnRGaWx0ZXJp
bmcubW0gKi87IH07CisJCUExNEZDNThCMUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVy
aW5nUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTE0RkM1ODkxQjg5OTI3MTAwRDEwN0VCIC8qIENvbnRlbnRGaWx0ZXJpbmdQbHVnSW4ubW0g
Ki87IH07CiAJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRl
V2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTdBMzRGMTE2QUY2OUUyMDBDMjUwMUYgLyogUGFnZVZpc2li
aWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi87IH07CiAJCUE1RTIwMjc1MTVCMjFG
NkUwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RTIwMjcwMTVCMjE4
MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5odG1sICovOyB9OwogCQlC
NTVBRDFENTE3OUYzQjMwMDBBQzE0OTQgLyogUHJldmVudEltYWdlTG9hZFdpdGhBdXRvUmVzaXpp
bmdfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEI1NUFEMUQzMTc5RjNBQkYwMEFDMTQ5NCAvKiBQcmV2ZW50SW1hZ2VMb2FkV2l0aEF1dG9S
ZXNpemluZ19CdW5kbGUuY3BwICovOyB9OwpAQCAtNjM5LDYgKzY0MSw4IEBACiAJCUExM0VCQkFF
MUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8q
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTRGQzU4NDFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUExNEZDNTg2MUI4OTkxQjYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGVudEZpbHRlcmluZy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE0RkM1ODkxQjg5OTI3MTAwRDEwN0VC
IC8qIENvbnRlbnRGaWx0ZXJpbmdQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFGREZEMkUxOUMyODhCQjAwNTE0OEE0IC8qIFdLSW1h
Z2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1N0EzNEVGMTZBRjY3NzIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRl
V2l0aFdpbmRvd0NoYW5nZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04ODksNiArODkzLDggQEAKIAkJCQk3Q0VGQTk2NDFBQzBCOUUy
MDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSAqLywKIAkJCQlBMTNF
QkJBQzFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKIAkJCQlBMTNF
QkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLywKKwkJ
CQlBMTRGQzU4NjFCODk5MUI2MDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZy5tbSAqLywKKwkJ
CQlBMTRGQzU4OTFCODk5MjcxMDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZ1BsdWdJbi5tbSAq
LywKIAkJCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8sCiAJCQkJ
MkQxRkUwQUYxQUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLywKIAkJCQkz
N0QzNkVENjFBRjQyRUNEMDBCQUY1RDkgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcubW0gKi8s
CkBAIC0xNjAzLDYgKzE2MDksNyBAQAogCQkJCTdDQ0U3RjNDMUE0MTFCOEUwMDQ0N0M0QyAvKiBN
ZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAxMUE0MTFBRTYwMDQ0
N0M0QyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjI0MUE0MTFBRjYwMDQ0N0M0QyAvKiBOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTE0RkM1ODgxQjg5OTFCRjAwRDEwN0VCIC8qIENvbnRlbnRGaWx0ZXJpbmcubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0YwMjFBNDExQUU2MDA0NDdDNEMgLyogTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAzMUE0MTFBRTYwMDQ0
N0M0QyAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0YwNDFBNDExQUU2MDA0NDdDNEMgLyogTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTczNiw2ICsxNzQz
LDcgQEAKIAkJCQlBMTNFQkJBQTFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUExM0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQ
YXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAw
MDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQlB
MTRGQzU4QjFCODk5MjcxMDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZ1BsdWdJbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvQ29udGVudEZpbHRlcmluZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0NvbnRlbnRGaWx0ZXJpbmcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRlMzc4MTk4ZmI3NjI4
ODZmMjllODU1ZTAxYmY5OWM1ZWVlNGM0ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0NvbnRlbnRGaWx0ZXJpbmcubW0KQEAgLTAsMCAr
MSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RQcm90
b2NvbC5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBib29sIGlzRG9uZSA9IGZhbHNlOwor
CitAaW50ZXJmYWNlIFNlcnZlclJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3Qg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gU2VydmVyUmVk
aXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZp
Z2F0aW9uCit7CisgICAgRVhQRUNUX1dLX1NUUkVRKHdlYlZpZXcuVVJMLmFic29sdXRlU3RyaW5n
LCBAImh0dHA6Ly9yZWRpcmVjdC8/cGFzcyIpOworfQorCistICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAgRVhQRUNUX1dLX1NUUkVR
KHdlYlZpZXcuVVJMLmFic29sdXRlU3RyaW5nLCBAImh0dHA6Ly9wYXNzLyIpOworfQorCistICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlvbjooV0tO
YXZpZ2F0aW9uICopbmF2aWdhdGlvbgoreworICAgIGlzRG9uZSA9IHRydWU7Cit9CisKK0BlbmQK
KworVEVTVChDb250ZW50RmlsdGVyaW5nLCBTZXJ2ZXJSZWRpcmVjdCkKK3sKKyAgICBbTlNVUkxQ
cm90b2NvbCByZWdpc3RlckNsYXNzOltUZXN0UHJvdG9jb2wgY2xhc3NdXTsKKyAgICBbV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyIHJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6W1Rl
c3RQcm90b2NvbCBzY2hlbWVdXTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IHJldGFpblB0
cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB0ZXN0d2Via2l0YXBpX2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIlNlcnZlclJlZGlyZWN0UGx1Z0luIl0pOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmln
YXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTZXJ2ZXJSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZp
Z2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vcmVkaXJl
Y3Q/cGFzcyJdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisg
ICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciB1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9t
UHJvdG9jb2w6W1Rlc3RQcm90b2NvbCBzY2hlbWVdXTsKKyAgICBbTlNVUkxQcm90b2NvbCB1bnJl
Z2lzdGVyQ2xhc3M6W1Rlc3RQcm90b2NvbCBjbGFzc11dOworfQorCisjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0NvbnRlbnRGaWx0ZXJpbmdQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9Db250ZW50RmlsdGVyaW5nUGx1Z0luLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzYWNk
NTIxNDgyNzQ5NTlhNmQ4MmQzZDIwM2Q5NjQ4MjVkMjYzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Db250ZW50RmlsdGVyaW5nUGx1
Z0luLm1tCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIk1vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW4uaD4KKworQGludGVyZmFj
ZSBTZXJ2ZXJSZWRpcmVjdFBsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4+CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBTZXJ2ZXJSZWRpcmVjdFBsdWdJbgorCisrICh2b2lkKWlu
aXRpYWxpemUKK3sKKyAgICB1c2luZyBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzID0gV2ViQ29y
ZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKKyAgICB1c2luZyBEZWNpc2lvbiA9IE1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uOworICAgIHVzaW5nIERlY2lzaW9uUG9pbnQg
PSBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjpEZWNpc2lvblBvaW50OworICAgIE1vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3MmIHNldHRpbmdzID0gTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6
c2luZ2xldG9uKCk7CisgICAgc2V0dGluZ3Muc2V0RW5hYmxlZCh0cnVlKTsKKyAgICBzZXR0aW5n
cy5zZXREZWNpc2lvbihEZWNpc2lvbjo6QWxsb3cpOworICAgIHNldHRpbmdzLnNldERlY2lzaW9u
UG9pbnQoRGVjaXNpb25Qb2ludDo6QWZ0ZXJBZGREYXRhKTsKK30KKworQGVuZAorCisjZW5kaWYg
Ly8gV0tfQVBJX0VOQUJMRUQK
</data>
<flag name="review"
          id="284935"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>