<?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>63529</bug_id>
          
          <creation_ts>2011-06-28 06:26:45 -0700</creation_ts>
          <short_desc>SVGAnimatedType should support SVGBoolean animation</short_desc>
          <delta_ts>2011-06-28 23:59:05 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>428837</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-28 06:26:45 -0700</bug_when>
    <thetext>SVGAnimatedType should support SVGBoolean animation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428845</commentid>
    <comment_count>1</comment_count>
      <attachid>98908</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-28 06:41:24 -0700</bug_when>
    <thetext>Created attachment 98908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428846</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 06:44:11 -0700</bug_when>
    <thetext>Attachment 98908 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/svg/SVGAnimatedBoolean.h:50:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:50:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:51:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:51:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:53:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:53:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.h:53:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:42:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:42:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:51:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:51:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:62:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:62:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WebCore/svg/SVGAnimatedBoolean.cpp:62:  The parameter type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Total errors found: 14 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428855</commentid>
    <comment_count>3</comment_count>
      <attachid>98908</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-28 07:03:22 -0700</bug_when>
    <thetext>Comment on attachment 98908
Patch

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

r=me. Don&apos;t forget the mac-wk2/qt-wk2/etc. Skipped list update! Otherwhise ossy will complain :-)

&gt; Source/WebCore/svg/SVGAnimatedBoolean.cpp:36
&gt; +    DEFINE_STATIC_LOCAL(const AtomicString, trueString, (&quot;true&quot;));

Why AtomicString here?? Use String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429453</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-28 23:59:05 -0700</bug_when>
    <thetext>Committed r89993: &lt;http://trac.webkit.org/changeset/89993&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98908</attachid>
            <date>2011-06-28 06:41:24 -0700</date>
            <delta_ts>2011-06-28 07:03:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63529-20110628154120.patch</filename>
            <type>text/plain</type>
            <size>29741</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5OTIyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDYtMjggIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRlZFR5cGUgc2hvdWxkIHN1cHBvcnQgU1ZHQm9vbGVh
biBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYzNTI5CisKKyAgICAgICAgRm9sbG93IHVwIG9mICJTVkdBbmltYXRpb24gc2hvdWxkIHVz
ZSBkaXJlY3QgdW5pdCBhbmltYXRpb24gZm9yIFNWR0xlbmd0aCI6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTM2OAorICAgICAgICBUaGlzIHBhdGNoIGNvbnRpbnVl
cyB0aGUgY29udmVyc2lvbiB0byB0aGUgbmV3IGNvbmNlcHQgb2YgU1ZHQW5pbWF0b3JGYWN0b3J5
IHdpdGggU1ZHQm9vbGVhbi4KKyAgICAgICAgCisgICAgICAgIFRoZSBuZXcgYW5pbWF0b3IgZG9l
cyBub3QgYWZmZWN0IGFueSBiZWhhdmlvciwgc2luY2UgaXQgd2FzIGFuaW1hdGVkIHdpdGggU1ZH
QW5pbWF0ZWRTdHJpbmcgYmVmb3JlLiBUaGUgbmV3IGFuaW1hdG9yIGlzIHN0aWxsIG5lZWRlZAor
ICAgICAgICB0byBzdXBwb3J0IGFuaW1WYWwgYW5kIGJhc2VWYWwgbGF0ZXIuCisKKyAgICAgICAg
VGVzdDogc3ZnL2FuaW1hdGlvbnMvc3ZnYm9vbGVhbi1hbmltYXRpb24tMS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBmaWxlIHRvIGJ1aWxkIHN5c3RlbS4KKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbGxJ
bk9uZS5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6IE1h
a2UgdXNlIG9mIEFuaW1hdGVkQm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVF
bGVtZW50OjpkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFzZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNU
b1RhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRl
RGlzdGFuY2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwOiBBZGRlZC4g
TmV3IGFuaW1hdG9yIGZvciBTVkdCb29sZWFuLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3I6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxh
dGVGcm9tQW5kVG9WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFu
Y2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0
b3IpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBVc2UgYm9vbCBmb3IgU1ZH
Qm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAqIHN2Zy9T
VkdBbmltYXRlZFR5cGUuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5Lmg6IE5l
dyBjcmF0ZSBmdW5jdGlvbiBmb3IgU1ZHQW5pbWF0ZWRTVkdCb29sZWFuQW5pbWF0b3IuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZSk6CisKIDIwMTEtMDYtMjcg
IEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDg5ODMzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTE2NTcsNiArMTY1Nyw3IEBAIElGIChFTkFCTEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQW5n
bGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAogICAgICAgICBz
dmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKKyAgICAgICAgc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5j
cHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlZExlbmd0aC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gODk4MzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIzLDYg
KzM0MjMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFu
Z2xlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCBcCisJU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkQ29sb3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5oIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDg5ODMzKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01NzA4LDYgKzU3MDgsNyBAQAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3Zn
L1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwJywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCcsCiAg
ICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwJywKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODk4MzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzMzMSw2ICszMzMxLDcg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAgIHN2Zy9T
VkdBbmdsZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5j
cHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAorICAgICAgICAg
ICAgICBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdB
bmltYXRlZENvbG9yLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5j
cHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiA4OTgzMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTM1LDYgKzkzNSw3IEBACiAJCTQzMUEy
RjlEMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMUEyRjlC
MTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcCAq
LzsgfTsKIAkJNDMxQTJGRDcxM0I3NzA3QTAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzFB
MkZENjEzQjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCAqLzsgfTsK
IAkJNDMxQTMwMjExM0I4OURDQzAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzFBMzAyMDEzQjg5RENDMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmNwcCAqLzsgfTsKKwkJNDMxQTMwODgxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkQm9v
bGVhbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzFBMzA4NzEzQjhGOTc4MDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCAqLzsgfTsK
IAkJNDMzMUFDNzgxM0I2ODcwMDAwQTlFNUFFIC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMxQUM3NzEz
QjY4NzAwMDBBOUU1QUUgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCAqLzsgfTsKIAkJNDM1
OEU4NkExMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNThFODY3MTM2MEEy
MTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCTQzNThF
ODZCMTM2MEEyMTYwMEU0NzQ4QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4NjgxMzYwQTIx
NjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0gKi87IH07CkBAIC03Mzk5
LDYgKzc0MDAsNyBAQAogCQk0MzFBMkY5QjEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDMxQTJGRDYxM0I3NzA3QTAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmlt
YXRlZExlbmd0aExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzFBMzAy
MDEzQjg5RENDMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMUEzMDg3MTNC
OEY5NzgwMDc3OTFFNCAvKiBTVkdBbmltYXRlZEJvb2xlYW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDMzMUFDNzcxM0I2ODcwMDAwQTlFNUFFIC8qIFNWR0FuaW1hdGVk
TnVtYmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdB
bmltYXRlZE51bWJlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4
RTg2NzEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY4MTM2MEEyMTYwMEU0NzQ4QyAv
KiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Mzk5LDYgKzE3NDAxLDcgQEAKIAkJCQk0MzYyQzdCODEzQUM2
RjFBMDAzNDRCRUIgLyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8sCiAJCQkJMDg3Qjg0OTUxMjcy
Q0VDNzAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLywKIAkJCQlCMjIyNzdFNjBEMDBC
RjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgKi8sCisJCQkJNDMxQTMwODcxM0I4
Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgKi8sCiAJCQkJMDg1Nzk3MDgx
Mjc4Mzk0QzAwQThFQzVGIC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5oICovLAogCQkJCUIyMjI3N0U3
MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaWRsICovLAogCQkJCTQzQTYy
NUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLywKQEAgLTI1ODQ3
LDYgKzI1ODUwLDcgQEAKIAkJCQk0MzFBMkY5RDEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzFBMkZENzEz
Qjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQzMUEzMDIxMTNCODlEQ0MwMDc3OTFFNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDMxQTMwODgxM0I4Rjk3ODAwNzc5MUU0
IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsbEluT25lLmNwcAkocmV2aXNpb24gODk4MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiU1ZHQW5nbGUuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuY3BwIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
Qm9vbGVhbi5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRDb2xvci5jcHAiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5j
cHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDg5ODMzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA0LDExICsxMDQsMTIgQEAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
IFNWR0FuaW1hdGVFbGVtZW50OgogICAgIGlmICh0eXBlID09IEFuaW1hdGVkVW5rbm93biB8fCAo
aGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZUNvbG9yVGFnKSAmJiB0eXBlICE9IEFuaW1hdGVk
Q29sb3IpKQogICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOwogCi0gICAgLy8gRklYTUU6
IEFuaW1hdG9yIGZvciBBbmltYXRlZEJvb2xlYW4gYW5kIEFuaW1hdGVkRW51bWVyYXRpb24gbWlz
c2luZy4KKyAgICAvLyBGSVhNRTogQW5pbWF0b3IgZm9yIEFuaW1hdGVkRW51bWVyYXRpb24gbWlz
c2luZy4KICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAg
ICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOwogICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgorICAg
ICAgICByZXR1cm4gQW5pbWF0ZWRCb29sZWFuOwogICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlv
bjoKICAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJp
bmc7CkBAIC0xNjMsNiArMTY0LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRl
QW5pbWF0ZQogICAgICAgICByZXR1cm47CiAgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSkgewogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKKyAgICBjYXNlIEFuaW1hdGVkQm9vbGVh
bjoKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAg
ICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKQEAgLTIzMiw2ICsyMzQsNyBAQCBib29sIFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7CiAgICAg
c3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgewogICAgIGNhc2UgQW5pbWF0ZWRBbmds
ZToKKyAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAg
ICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKQEAg
LTI2Miw2ICsyNjUsNyBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5k
CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0
ZVR5cGUodGFyZ2V0RWxlbWVudCk7CiAgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlw
ZSkgewogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKKyAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoK
ICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAgICBj
YXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKQEAgLTI5MSw2ICsyOTUsNyBAQCB2b2lkIFNWR0FuaW1h
dGVFbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUg
PSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7CiAgICAgc3dp
dGNoIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSkgewogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToK
KyAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6CiAgICAg
Y2FzZSBBbmltYXRlZExlbmd0aDoKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKQEAgLTMx
OSw2ICszMjQsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhCiAg
ICAgU3RyaW5nIHZhbHVlVG9BcHBseTsKICAgICBzd2l0Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFu
OgogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgpAQCAtMzQ3LDYgKzM1Myw3IEBAIGZsb2F0IFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICBtX2FuaW1hdGVkQXR0cmlidXRlVHlw
ZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRFbGVtZW50KTsKICAgICBz
d2l0Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xl
OgorICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAg
ICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRCb29sZWFuLmgiCisKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVt
ZW50LCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKKyAgICA6IFNWR0FuaW1hdGVkVHlwZUFu
aW1hdG9yKEFuaW1hdGVkQm9vbGVhbiwgYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQp
Cit7Cit9CisKK1Bhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJ1ZVN0cmluZywgKCJ0
cnVlIikpOworICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IGFuaW10ZWRUeXBlID0gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKG5ldyBib29sKTsKKyAgICBhbmltdGVkVHlwZS0+Ym9v
bGVhbigpID0gc3RyaW5nID09IHRydWVTdHJpbmc7CisgICAgcmV0dXJuIGFuaW10ZWRUeXBlLnJl
bGVhc2UoKTsKK30KKwordm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRl
RnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiB0b1N0cmluZykKK3sKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgQVNTRVJU
KG1fYW5pbWF0aW9uRWxlbWVudCk7CisgICAgCisgICAgZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJp
bmcoZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKHRvU3RyaW5nKTsK
K30KKwordm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFuZEJ5
VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmlu
ZykKK3sKKyAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CisgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CisgICAgCisgICAgLy8gTm90IHNwZWNpZmllZCB3aGF0IHRvIGRvIG9uICdi
eSctYW5pbWF0aW9ucyB3aXRoIGJvb2xlYW4uIEZhbGxiYWNrIHRvICd0byctYW5pbWF0aW9uIHJp
Z2h0IG5vdy4gCisgICAgZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7Cisg
ICAgdG8gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGJ5U3RyaW5nKTsKK30KKwordm9pZCBTVkdBbmlt
YXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50
YWdlLCB1bnNpZ25lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdB
bmltYXRlZFR5cGU+JiB0bywgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkKQorewor
ICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOworICAgIEFTU0VSVChtX2NvbnRleHRFbGVt
ZW50KTsKKyAgICBTVkdBbmltYXRlRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCA9IHN0YXRpY19j
YXN0PFNWR0FuaW1hdGVFbGVtZW50Kj4obV9hbmltYXRpb25FbGVtZW50KTsKKyAgICAKKyAgICBB
bmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUgPSBhbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCk7CisgICAgYm9vbCYgYW5pbWF0ZVN0cmluZyA9IGFuaW1hdGVkLT5ib29sZWFuKCk7Cisg
ICAgaWYgKChhbmltYXRpb25Nb2RlID09IEZyb21Ub0FuaW1hdGlvbiAmJiBwZXJjZW50YWdlID4g
MC41KSB8fCBhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uIHx8IHBlcmNlbnRhZ2UgPT0gMSkK
KyAgICAgICAgYW5pbWF0ZVN0cmluZyA9IHRvLT5ib29sZWFuKCk7CisgICAgZWxzZQorICAgICAg
ICBhbmltYXRlU3RyaW5nID0gZnJvbS0+Ym9vbGVhbigpOworfQorCitmbG9hdCBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikKK3sKKyAgICAvLyBObyBwYWNlZCBhbmltYXRpb25zIGZvciBib29sZWFuLgorICAg
IHJldHVybiAtMTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNW
R19BTklNQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5o
CShyZXZpc2lvbiA4OTgzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xl
YW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaWYgRU5BQkxFKFNWRykK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oIgorI2luY2x1ZGUg
IlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzQsNiArMzUsMjYgQEAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdBbmltYXRlZEJvbwog
I2RlZmluZSBERUZJTkVfQU5JTUFURURfQk9PTEVBTihPd25lclR5cGUsIERPTUF0dHJpYnV0ZSwg
VXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAogREVGSU5FX0FOSU1BVEVEX1BST1BFUlRZ
KE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBET01BdHRyaWJ1dGUubG9jYWxOYW1lKCksIFNWR0Fu
aW1hdGVkQm9vbGVhbiwgYm9vbCwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkKIAorICAg
IAorI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorY2xhc3MgU1ZHQW5pbWF0aW9uRWxlbWVudDsK
KworY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3IgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IgeworICAgIAorcHVibGljOgorICAgIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1h
dG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7CisgICAgdmlydHVhbCB+U1ZH
QW5pbWF0ZWRCb29sZWFuQW5pbWF0b3IoKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFBhc3NPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNW
R0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFs
dWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZyk7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKTsKKyAgICB2aXJ0
dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25l
ZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBl
PiYgdG9WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkVmFsdWUpOworICAg
IHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKK307CisjZW5kaWYgLy8gRU5BQkxFKFNWR19BTklN
QVRJT04pCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkocmV2aXNpb24gODk4
MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDgsNiArNDgsOSBAQCBTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUo
KQogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICAgICAgZGVsZXRlIG1fZGF0YS5hbmdsZTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CisgICAgICAgIGRlbGV0
ZSBtX2RhdGEuYm9vbGVhbjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbmltYXRlZENvbG9y
OgogICAgICAgICBkZWxldGUgbV9kYXRhLmNvbG9yOwogICAgICAgICBicmVhazsKQEAgLTk1LDYg
Kzk4LDE0IEBAIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFQKICAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlLnJlbGVhc2UoKTsKIH0KIAorUGFzc093blB0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihib29sKiBib29sZWFuKQorewor
ICAgIEFTU0VSVChib29sZWFuKTsKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBhbmltYXRl
ZFR5cGUgPSBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkQm9vbGVhbikpOwor
ICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmJvb2xlYW4gPSBib29sZWFuOworICAgIHJldHVybiBh
bmltYXRlZFR5cGUucmVsZWFzZSgpOworfQorCiBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihDb2xvciogY29sb3IpCiB7CiAgICAgQVNTRVJU
KGNvbG9yKTsKQEAgLTE4OSw2ICsyMDAsMTIgQEAgU1ZHQW5nbGUmIFNWR0FuaW1hdGVkVHlwZTo6
YW5nbGUoKQogICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlOwogfQogCitib29sJiBTVkdBbmltYXRl
ZFR5cGU6OmJvb2xlYW4oKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFu
KTsKKyAgICByZXR1cm4gKm1fZGF0YS5ib29sZWFuOworfQorCiBDb2xvciYgU1ZHQW5pbWF0ZWRU
eXBlOjpjb2xvcigpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKQEAg
LTI2MSw2ICsyNzgsOSBAQCBTdHJpbmcgU1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkK
ICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgICAgIEFTU0VSVChtX2RhdGEuYW5nbGUpOwog
ICAgICAgICByZXR1cm4gbV9kYXRhLmFuZ2xlLT52YWx1ZUFzU3RyaW5nKCk7CisgICAgY2FzZSBB
bmltYXRlZEJvb2xlYW46CisgICAgICAgIEFTU0VSVChtX2RhdGEuYm9vbGVhbik7CisgICAgICAg
IHJldHVybiAqbV9kYXRhLmJvb2xlYW4gPyAidHJ1ZSIgOiAiZmFsc2UiOwogICAgIGNhc2UgQW5p
bWF0ZWRDb2xvcjoKICAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7CiAgICAgICAgIHJldHVy
biBtX2RhdGEuY29sb3ItPnNlcmlhbGl6ZWQoKTsKQEAgLTMxMyw2ICszMzMsMTAgQEAgYm9vbCBT
VkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoYwogICAgICAgICBBU1NFUlQobV9kYXRh
LmFuZ2xlKTsKICAgICAgICAgbV9kYXRhLmFuZ2xlLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLCBl
Yyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgorICAgICAgICBB
U1NFUlQobV9kYXRhLmJvb2xlYW4pOworICAgICAgICAqbV9kYXRhLmJvb2xlYW4gPSB2YWx1ZSA9
PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2U7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0
ZWRDb2xvcjoKICAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7CiAgICAgICAgICptX2RhdGEu
Y29sb3IgPSB2YWx1ZS5pc0VtcHR5KCkgPyBDb2xvcigpIDogU1ZHQ29sb3I6OmNvbG9yRnJvbVJH
QkNvbG9yU3RyaW5nKHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
LmgJKHJldmlzaW9uIDg5ODMzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5TVkdBbmltYXRlZFR5cGUoKTsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4gY3JlYXRlQW5nbGUoU1ZHQW5nbGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oYm9vbCopOwogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQ29sb3IoQ29sb3IqKTsKICAgICBzdGF0aWMgUGFzc093
blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aChTVkdMZW5ndGgqKTsKICAgICBzdGF0
aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aExpc3QoU1ZHTGVuZ3Ro
TGlzdCopOwpAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIFNWR0FuZ2xlJiBhbmds
ZSgpOworICAgIGJvb2wmIGJvb2xlYW4oKTsKICAgICBDb2xvciYgY29sb3IoKTsKICAgICBTVkdM
ZW5ndGgmIGxlbmd0aCgpOwogICAgIFNWR0xlbmd0aExpc3QmIGxlbmd0aExpc3QoKTsKQEAgLTg2
LDYgKzg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIFNWR0FuZ2xlKiBhbmds
ZTsKKyAgICAgICAgYm9vbCogYm9vbGVhbjsKICAgICAgICAgQ29sb3IqIGNvbG9yOwogICAgICAg
ICBTVkdMZW5ndGgqIGxlbmd0aDsKICAgICAgICAgU1ZHTGVuZ3RoTGlzdCogbGVuZ3RoTGlzdDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgJKHJldmlzaW9uIDg5
ODMzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZH
X0FOSU1BVElPTikKICNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmgiCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRDb2xvci5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmgiCkBAIC0zNyw3ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ7Ci0gICAgCisKIGNsYXNzIFNWR0FuaW1hdG9yRmFjdG9yeSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+IGNyZWF0
ZShTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIGF0dHJpYnV0ZVR5cGUpCkBAIC00NSwx
NiArNDYsMTggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAKLSAgICAgICAgLy8gRklYTUU6IEFkZCBh
bmltYXRpb24gc3VwcG9ydCBmb3IgYWxsIFNWRyB1bml0cy4KICAgICAgICAgc3dpdGNoIChhdHRy
aWJ1dGVUeXBlKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICAgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yKGFuaW1hdGlvbkVsZW1l
bnQsIGNvbnRleHRFbGVtZW50KSk7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgorICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcihh
bmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkpOwogICAgICAgICBjYXNlIEFuaW1hdGVk
Q29sb3I6CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkQ29sb3JB
bmltYXRvcihhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkpOwogICAgICAgICBjYXNl
IEFuaW1hdGVkTGVuZ3RoOgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yKGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KSk7CiAg
ICAgICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcihhbmltYXRpb25FbGVtZW50LCBj
b250ZXh0RWxlbWVudCkpOworICAgICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjogLy8gSW50ZWdl
ciBpcyBhbmltYXRlZCBhcyBOdW1iZXIgcmlnaHQgbm93LgogICAgICAgICBjYXNlIEFuaW1hdGVk
TnVtYmVyOgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZE51bWJl
ckFuaW1hdG9yKGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KSk7CiAgICAgICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXJMaXN0OgpAQCAtNzEsMTAgKzc0LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3IoYW5pbWF0
aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpKTsKICAgICAgICAgY2FzZSBBbmltYXRlZFN0cmlu
ZzoKICAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRTdHJpbmdBbmlt
YXRvcihhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkpOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOiAvLyBGSVhNRTogSW1w
bGVtZW50YXRpb24gbmVlZGVkLgorICAgICAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDog
Ly8gRklYTUU6IEltcGxlbWVudGF0aW9uIG5lZWRlZC4KKyAgICAgICAgY2FzZSBBbmltYXRlZFVu
a25vd246CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4OTkyMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDExLTA2LTI4ICBEaXJrIFNjaHVsemUgIDxr
cml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU1ZHQW5pbWF0ZWRUeXBlIHNob3VsZCBzdXBwb3J0IFNWR0Jvb2xlYW4gYW5pbWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUy
OQorICAgICAgICAKKyAgICAgICAgVGVzdCBhbmltYXRpb24gb2YgU1ZHQm9vbGVhbi4gQWRkIHRo
ZSB0ZXN0IHRvIHRoZSBza2lwIGxpc3Qgb2Ygd2syLgorICAgICAgICBDb252ZXJ0IGFuaW1hdGUt
bnVtYmVyLWNhbGNNb2RlLWRpc2NyZXRlLWtleVRpbWVzIHRvIGNvbW1vbiBzdHlsZSwgbm8gY2hh
bmdlCisgICAgICAgIG9uIHRoZSB0ZXN0IGl0c2VsZi4KKworICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLW51bWJlci1j
YWxjTW9kZS1kaXNjcmV0ZS1rZXlUaW1lcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2Fu
aW1hdGlvbnMvYW5pbWF0ZS1udW1iZXItY2FsY01vZGUtZGlzY3JldGUta2V5VGltZXMuaHRtbDoK
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYm9vbGVhbi1hbmltYXRp
b24tMS5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgor
ICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnYm9vbGVhbi1hbmltYXRpb24tMS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2Jvb2xlYW4tYW5pbWF0aW9uLTEuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDYtMjcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAkocmV2aXNpb24gODk4MzMpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTQ1Myw2ICs0NTMsNyBA
QCBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10CiBzdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1yYWQuaHRtbAogc3ZnL2FuaW1hdGlvbnMvc3Zn
YW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuaHRtbAogc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUt
YW5pbWF0aW9uLXJhZC10by1ncmFkLmh0bWwKK3N2Zy9hbmltYXRpb25zL3N2Z2Jvb2xlYW4tYW5p
bWF0aW9uLTEuaHRtbAogc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RoLWFuaW1hdGlvbi1MZW5ndGhN
b2RlSGVpZ2h0Lmh0bWwKIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZU90aGVyLmh0bWwKIHN2Zy9hbmltYXRpb25zL3N2Z2xlbmd0aC1hbmltYXRpb24tTGVuZ3Ro
TW9kZVdpZHRoLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUt
bnVtYmVyLWNhbGNNb2RlLWRpc2NyZXRlLWtleVRpbWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLW51bWJlci1jYWxjTW9kZS1k
aXNjcmV0ZS1rZXlUaW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDg5ODMyKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1udW1iZXItY2FsY01vZGUtZGlzY3JldGUta2V5
VGltZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorU1ZHIDEu
MSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCiBQQVNTIHJlY3QueC5iYXNlVmFsLnZhbHVlIGlz
IDEwMAogUEFTUyByZWN0LnguYmFzZVZhbC52YWx1ZSBpcyAyMDAKIFBBU1MgcmVjdC54LmJhc2VW
YWwudmFsdWUgaXMgMzAwCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LW51bWJlci1jYWxjTW9kZS1kaXNjcmV0ZS1rZXlUaW1lcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtbnVtYmVyLWNhbGNNb2RlLWRpc2NyZXRl
LWtleVRpbWVzLmh0bWwJKHJldmlzaW9uIDg5ODMyKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1udW1iZXItY2FsY01vZGUtZGlzY3JldGUta2V5VGltZXMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENh
c2UuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFu
aW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLW51bWJlci1j
YWxjTW9kZS1kaXNjcmV0ZS1rZXlUaW1lcy5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdib29sZWFuLWFuaW1hdGlvbi0xLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdib29sZWFu
LWFuaW1hdGlvbi0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2Jvb2xlYW4tYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE1IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisK
K1Rlc3QgJ3RvJyBhbmltYXRpb24gb2YgU1ZHQm9vbGVhbi4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZmVDb252b2x2ZU1hdHJpeC5wcmVzZXJ2ZUFscGhhLmFuaW1WYWwg
aXMgZmFsc2UKK1BBU1MgZmVDb252b2x2ZU1hdHJpeC5wcmVzZXJ2ZUFscGhhLmFuaW1WYWwgaXMg
ZmFsc2UKK1BBU1MgZmVDb252b2x2ZU1hdHJpeC5wcmVzZXJ2ZUFscGhhLmFuaW1WYWwgaXMgdHJ1
ZQorUEFTUyBmZUNvbnZvbHZlTWF0cml4LnByZXNlcnZlQWxwaGEuYW5pbVZhbCBpcyBmYWxzZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2Jvb2xlYW4tYW5pbWF0aW9uLTEuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdib29sZWFuLWFuaW1h
dGlvbi0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdib29sZWFuLWFuaW1hdGlvbi0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvc3ZnYm9vbGVhbi1hbmltYXRpb24tMS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnYm9vbGVhbi1hbmltYXRpb24tMS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYm9vbGVhbi1hbmltYXRpb24tMS5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdib29s
ZWFuLWFuaW1hdGlvbi0xLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACitkZXNjcmlw
dGlvbigiVGVzdCAndG8nIGFuaW1hdGlvbiBvZiBTVkdCb29sZWFuLiIpOworY3JlYXRlU1ZHVGVz
dENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGRlZnMgPSBjcmVhdGVTVkdF
bGVtZW50KCJkZWZzIik7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChkZWZzKTsKKwordmFy
IGZpbHRlciA9IGNyZWF0ZVNWR0VsZW1lbnQoImZpbHRlciIpOworZmlsdGVyLnNldEF0dHJpYnV0
ZSgiaWQiLCAiZmlsdGVyIik7CitkZWZzLmFwcGVuZENoaWxkKGZpbHRlcik7CisKK3ZhciBmZUNv
bnZvbHZlTWF0cml4ID0gY3JlYXRlU1ZHRWxlbWVudCgiZmVDb252b2x2ZU1hdHJpeCIpOworZmVD
b252b2x2ZU1hdHJpeC5zZXRBdHRyaWJ1dGUoImlkIiwgImVmZmVjdCIpOworZmVDb252b2x2ZU1h
dHJpeC5zZXRBdHRyaWJ1dGUoImtlcm5lbE1hdHJpeCIsICIwIDAgMCAgIDAgMSAwICAgMCAwIDAi
KTsKK2ZlQ29udm9sdmVNYXRyaXguc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFscGhhIiwgImZhbHNl
Iik7CitmaWx0ZXIuYXBwZW5kQ2hpbGQoZmVDb252b2x2ZU1hdHJpeCk7CisKK3ZhciByZWN0ID0g
Y3JlYXRlU1ZHRWxlbWVudCgicmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInJlY3Qi
KTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoImZpbHRlciIsICJ1cmwoI2ZpbHRlcikiKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVu
ZENoaWxkKHJlY3QpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUi
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInByZXNlcnZlQWxwaGEiKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJiZWdpbiIsICJyZWN0LmNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICJmYWxzZSIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgInRydWUiKTsKK2ZlQ29udm9sdmVNYXRyaXguYXBwZW5k
Q2hpbGQoYW5pbWF0ZSk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1w
bGUxKCkgeworCXNob3VsZEJlKCJmZUNvbnZvbHZlTWF0cml4LnByZXNlcnZlQWxwaGEuYW5pbVZh
bCIsICJmYWxzZSIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworCXNob3VsZEJlKCJmZUNv
bnZvbHZlTWF0cml4LnByZXNlcnZlQWxwaGEuYW5pbVZhbCIsICJmYWxzZSIpOworfQorCitmdW5j
dGlvbiBzYW1wbGUzKCkgeworCXNob3VsZEJlKCJmZUNvbnZvbHZlTWF0cml4LnByZXNlcnZlQWxw
aGEuYW5pbVZhbCIsICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUs
IGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAg
ICAiZWZmZWN0Iiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAiZWZm
ZWN0Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAiZWZmZWN0Iiwg
c2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAiZWZmZWN0Iiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="93279"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>