<?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>108533</bug_id>
          
          <creation_ts>2013-01-31 14:49:02 -0800</creation_ts>
          <short_desc>Abstraction for hiding enum class</short_desc>
          <delta_ts>2013-01-31 15:52:06 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mrowe</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>821986</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-31 14:49:02 -0800</bug_when>
    <thetext>In https://bugs.webkit.org/show_bug.cgi?id=108279, I introduced a TypeSafeEnum template to do the job of &quot;enum class&quot; because we cannot require C++11 support yet.  We should provide an abstraction so that we can use the C++ enum class when available.

The proposed solution is to introduce 2 macros: ENUM_CLASS_BEGIN() and ENUM_CLASS_END().  With this approach, the following:

     enum class MyEnums {
         Value1,
         Value2,
         ...
         ValueN
     };

 ... will be expressed like this:

     ENUM_CLASS_BEGIN(MyEnums) {
         Value1,
         Value2,
         ...
         ValueN
     } ENUM_CLASS_END(MyEnums);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822021</commentid>
    <comment_count>1</comment_count>
      <attachid>185879</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-31 15:18:49 -0800</bug_when>
    <thetext>Created attachment 185879
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822027</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 15:20:42 -0800</bug_when>
    <thetext>Attachment 185879 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Compiler.h&apos;, u&apos;Source/WTF/wtf/EnumClass.h&apos;, u&apos;Source/WTF/wtf/TypeSafeEnum.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/webdatabase/DatabaseError.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/EnumClass.h:114:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WTF/wtf/EnumClass.h:121:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/Modules/webdatabase/DatabaseError.h:35:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 5 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>822029</commentid>
    <comment_count>3</comment_count>
      <attachid>185879</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-31 15:22:41 -0800</bug_when>
    <thetext>Comment on attachment 185879
the patch.

The style checker is mistaking my EnumClass name as an enum, and its complaint is invalid.  May I have a review please?  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822040</commentid>
    <comment_count>4</comment_count>
      <attachid>185879</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-31 15:33:37 -0800</bug_when>
    <thetext>Comment on attachment 185879
the patch.

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

&gt; Source/WTF/wtf/EnumClass.h:92
&gt; +    ALWAYS_INLINE EnumClass() : m_value(static_cast&lt;Value&gt;(0)) { }
&gt; +    ALWAYS_INLINE EnumClass(Value value) : m_value(value) { }

Thinking some more about this, I don&apos;t think it&apos;s a good idea to have a default value. 

In C++11, MyEnum value1 would just get a random value, and we don&apos;t want that to differ between C++11 and C++98.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822059</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-31 15:52:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 185879 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185879&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/EnumClass.h:92
&gt; &gt; +    ALWAYS_INLINE EnumClass() : m_value(static_cast&lt;Value&gt;(0)) { }
&gt; &gt; +    ALWAYS_INLINE EnumClass(Value value) : m_value(value) { }
&gt; 
&gt; Thinking some more about this, I don&apos;t think it&apos;s a good idea to have a default value. 
&gt; 
&gt; In C++11, MyEnum value1 would just get a random value, and we don&apos;t want that to differ between C++11 and C++98.

Thanks for the review.  Changed the default constructor to not initialize the value.  Landed in r141499: &lt;http://trac.webkit.org/changeset/141499&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185879</attachid>
            <date>2013-01-31 15:18:49 -0800</date>
            <delta_ts>2013-01-31 15:33:36 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-108533.patch</filename>
            <type>text/plain</type>
            <size>14761</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNDE0OTEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTMxICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBBYnN0cmFjdGlvbiBmb3IgaGlkaW5nIGVudW0gY2xhc3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg1MzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9D
b21waWxlci5oOgorICAgICAgICAqIHd0Zi9FbnVtQ2xhc3MuaDogQ29waWVkIGZyb20gU291cmNl
L1dURi93dGYvVHlwZVNhZmVFbnVtLmguCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpF
bnVtQ2xhc3M6OkVudW1DbGFzcyk6CisgICAgICAgIChXVEY6OkVudW1DbGFzczo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXVEY6OkVudW1DbGFzczo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXVEY6
OkVudW1DbGFzczo6b3BlcmF0b3I8KToKKyAgICAgICAgKFdURjo6RW51bUNsYXNzOjpvcGVyYXRv
cjw9KToKKyAgICAgICAgKFdURjo6RW51bUNsYXNzOjpvcGVyYXRvcj4pOgorICAgICAgICAoV1RG
OjpFbnVtQ2xhc3M6Om9wZXJhdG9yPj0pOgorICAgICAgICAqIHd0Zi9UeXBlU2FmZUVudW0uaDog
UmVtb3ZlZC4KKwogMjAxMy0wMS0zMSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgVmVjdG9yIHNob3VsZCBjb25zdWx0IGFsbG9jYXRvciBhYm91dCBpZGVhbCBz
aXplIHdoZW4gY2hvb3NpbmcgY2FwYWNpdHkuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Db21waWxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgJKHJldmlzaW9uIDE0
MTQ5MSkKKysrIFNvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYy
LDYgKzYyLDcgQEAKICNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0NfU1RBVElDX0FTU0VS
VCBfX2hhc19leHRlbnNpb24oY19zdGF0aWNfYXNzZXJ0KQogI2RlZmluZSBXVEZfQ09NUElMRVJf
U1VQUE9SVFNfQ1hYX09WRVJSSURFX0NPTlRST0wgX19oYXNfZXh0ZW5zaW9uKGN4eF9vdmVycmlk
ZV9jb250cm9sKQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfSEFTX1RSSVZJQUxfREVT
VFJVQ1RPUiBfX2hhc19leHRlbnNpb24oaGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcikKKyNkZWZpbmUg
V1RGX0NPTVBJTEVSX1NVUFBPUlRTX0NYWF9TVFJPTkdfRU5VTVMgX19oYXNfZXh0ZW5zaW9uKGN4
eF9zdHJvbmdfZW51bXMpCiAKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9FbnVtQ2xh
c3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9FbnVtQ2xhc3MuaAkocmV2aXNpb24g
MTQxNDM5KQkoZnJvbSBTb3VyY2UvV1RGL3d0Zi9UeXBlU2FmZUVudW0uaDoxNDE0MzkpCisrKyBT
b3VyY2UvV1RGL3d0Zi9FbnVtQ2xhc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
V1RGX1R5cGVTYWZlRW51bV9oCisjZGVmaW5lIFdURl9UeXBlU2FmZUVudW1faAorCituYW1lc3Bh
Y2UgV1RGIHsKKworLy8gSG93IHRvIGRlZmluZSBhIHR5cGUgc2FmZSBlbnVtIGxpc3QgdXNpbmcg
VHlwZVNhZmVFbnVtPworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisvLyBEZWZpbml0aW9uIHNob3VsZCBiZSBhIHN0cnVjdCB0aGF0IGVu
Y2Fwc3VsYXRlcyBhbiBlbnVtIGxpc3QuCisvLyBUaGUgZW51bSBsaXN0IHNob3VsZCBiZSBuYW1l
cyBFbnVtcy4KKy8vCisvLyBIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZGVmaW5lIGEgdHlw
ZSBzYWZlIGVudW0gbmFtZWQgTXlFbnVtIHVzaW5nCisvLyB0aGUgVHlwZVNhZmVFbnVtIHRlbXBs
YXRlOgorLy8KKy8vICAgICBzdHJ1Y3QgTXlFbnVtRGVmaW5pdGlvbiB7CisvLyAgICAgICAgIGVu
dW0gRW51bXMgeworLy8gICAgICAgICAgICAgVmFsdWVEZWZhdWx0LAorLy8gICAgICAgICAgICAg
VmFsdWUxLAorLy8gICAgICAgICAgICAgLi4uCisvLyAgICAgICAgICAgICBWYWx1ZU4KKy8vICAg
ICAgICAgfTsKKy8vICAgICB9OworLy8gICAgIHR5cGVkZWYgVHlwZVNhZmVFbnVtPE15RW51bURl
ZmluaXRpb24sIE15RW51bURlZmluaXRpb246OlZhbHVlRGVmYXVsdD4gTXlFbnVtOworLy8KKy8v
IFdpdGggdGhhdCwgeW91IGNhbiBub3cgdXNlIE15RW51bSBlbnVtIHZhbHVlcyBhcyBmb2xsb3c6
CisvLworLy8gICAgIE15RW51bSB2YWx1ZTE7IC8vIHZhbHVlMSBpcyBhc3NpZ25lZCBNeUVudW06
OlZhbHVlRGVmYXVsdCBieSBkZWZhdWx0LgorLy8gICAgIE15RW51bSB2YWx1ZTIgPSBNeUVudW06
OlZhbHVlMTsgLy8gdmFsdWUyIGlzIGFzc2lnbmVkIE15RW51bTo6VmFsdWUxOworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgRGVmaW5pdGlvbiwgdHlwZW5hbWUgRGVmaW5pdGlvbjo6RW51bXMgZGVmYXVs
dFZhbHVlPgorY2xhc3MgVHlwZVNhZmVFbnVtIDogcHVibGljIERlZmluaXRpb24geworICAgIHR5
cGVkZWYgZW51bSBEZWZpbml0aW9uOjpFbnVtcyBWYWx1ZTsKK3B1YmxpYzoKKyAgICBBTFdBWVNf
SU5MSU5FIFR5cGVTYWZlRW51bSgpIDogbV92YWx1ZShkZWZhdWx0VmFsdWUpIHsgfQorICAgIEFM
V0FZU19JTkxJTkUgVHlwZVNhZmVFbnVtKFZhbHVlIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsg
fQorCisgICAgQUxXQVlTX0lOTElORSBWYWx1ZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWU7IH0KKworICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFR5cGVTYWZl
RW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9CisgICAgQUxX
QVlTX0lOTElORSBib29sIG9wZXJhdG9yIT0oY29uc3QgVHlwZVNhZmVFbnVtIG90aGVyKSB7IHJl
dHVybiBtX3ZhbHVlICE9IG90aGVyLm1fdmFsdWU7IH0KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wg
b3BlcmF0b3I8KGNvbnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA8IG90
aGVyLm1fdmFsdWU7IH0KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3I8PShjb25zdCBU
eXBlU2FmZUVudW0gb3RoZXIpIHsgcmV0dXJuIG1fdmFsdWUgPD0gb3RoZXIubV92YWx1ZTsgfQor
ICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcj4oY29uc3QgVHlwZVNhZmVFbnVtIG90aGVy
KSB7IHJldHVybiBtX3ZhbHVlID4gb3RoZXIubV92YWx1ZTsgfQorICAgIEFMV0FZU19JTkxJTkUg
Ym9vbCBvcGVyYXRvcj49KGNvbnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1
ZSA+PSBvdGhlci5tX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgVmFsdWUgbV92YWx1ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlR5cGVTYWZlRW51bTsKKworI2Vu
ZGlmIC8vIFdURl9UeXBlU2FmZUVudW1faApJbmRleDogU291cmNlL1dURi93dGYvRW51bUNsYXNz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRW51bUNsYXNzLmgJKHJldmlzaW9uIDE0
MTQzOSkKKysrIFNvdXJjZS9XVEYvd3RmL0VudW1DbGFzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MywxOCArMjMsNTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgV1RGX1R5cGVT
YWZlRW51bV9oCi0jZGVmaW5lIFdURl9UeXBlU2FmZUVudW1faAorI2lmbmRlZiBXVEZfRW51bUNs
YXNzX2gKKyNkZWZpbmUgV1RGX0VudW1DbGFzc19oCisKKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLS8vIEhvdyB0byBkZWZpbmUgYSB0eXBlIHNhZmUgZW51
bSBsaXN0IHVzaW5nIFR5cGVTYWZlRW51bT8KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gSG93IHRvIGRlZmluZSBhIHR5cGUgc2Fm
ZSBlbnVtIGxpc3QgdXNpbmcgdGhlIEVOVU1fQ0xBU1MgbWFjcm9zPworLy8gPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBU
byBnZXQgYW4gZW51bSBsaXN0IGxpa2UgdGhpczoKKy8vCisvLyAgICAgZW51bSBjbGFzcyBNeUVu
dW1zIHsKKy8vICAgICAgICAgVmFsdWUxLAorLy8gICAgICAgICBWYWx1ZTIsCisvLyAgICAgICAg
IC4uLgorLy8gICAgICAgICBWYWx1ZU4KKy8vICAgICB9OworLy8KKy8vIC4uLiB3cml0ZSB0aGlz
OgorLy8KKy8vICAgICBFTlVNX0NMQVNTX0JFR0lOKE15RW51bXMpIHsKKy8vICAgICAgICAgVmFs
dWUxLAorLy8gICAgICAgICBWYWx1ZTIsCisvLyAgICAgICAgIC4uLgorLy8gICAgICAgICBWYWx1
ZU4KKy8vICAgICB9IEVOVU1fQ0xBU1NfRU5EKE15RW51bXMpOworLy8KKy8vIFRoZSBFTlVNX0NM
QVNTIG1hY3JvcyB3aWxsIHVzZSBDKysxMSdzIGVudW0gY2xhc3MgaWYgdGhlIGNvbXBpbGVyIHN1
cHBvcnRzIGl0LgorLy8gT3RoZXJ3aXNlLCBpdCB3aWxsIHVzZSB0aGUgRW51bUNsYXNzIHRlbXBs
YXRlIGJlbG93LgorCisjaWYgQ09NUElMRVJfU1VQUE9SVFMoQ1hYX1NUUk9OR19FTlVNUykKKyNk
ZWZpbmUgRU5VTV9DTEFTU19CRUdJTihfX2VudW1OYW1lKSBcCisgICAgZW51bSBjbGFzcyBfX2Vu
dW1OYW1lCisKKyNkZWZpbmUgRU5VTV9DTEFTU19FTkQoX19lbnVtTmFtZSkKKworI2Vsc2UgLy8g
IUNPTVBJTEVSX1NVUFBPUlRTKENYWF9TVFJPTkdfRU5VTVMpCisKKy8vIEhvdyB0byBkZWZpbmUg
YSB0eXBlIHNhZmUgZW51bSBsaXN0IHVzaW5nIHRoZSBFbnVtQ2xhc3MgdGVtcGxhdGU/CisvLyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAvLyBEZWZpbml0aW9uIHNob3VsZCBiZSBhIHN0cnVjdCB0aGF0IGVuY2Fwc3VsYXRl
cyBhbiBlbnVtIGxpc3QuCiAvLyBUaGUgZW51bSBsaXN0IHNob3VsZCBiZSBuYW1lcyBFbnVtcy4K
IC8vCiAvLyBIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZGVmaW5lIGEgdHlwZSBzYWZlIGVu
dW0gbmFtZWQgTXlFbnVtIHVzaW5nCi0vLyB0aGUgVHlwZVNhZmVFbnVtIHRlbXBsYXRlOgorLy8g
dGhlIEVudW1DbGFzcyB0ZW1wbGF0ZToKIC8vCiAvLyAgICAgc3RydWN0IE15RW51bURlZmluaXRp
b24gewogLy8gICAgICAgICBlbnVtIEVudW1zIHsKQEAgLTQ0LDM1ICs3Nyw0OCBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIC8vICAgICAgICAgICAgIFZhbHVlTgogLy8gICAgICAgICB9OwogLy8gICAgIH07
Ci0vLyAgICAgdHlwZWRlZiBUeXBlU2FmZUVudW08TXlFbnVtRGVmaW5pdGlvbiwgTXlFbnVtRGVm
aW5pdGlvbjo6VmFsdWVEZWZhdWx0PiBNeUVudW07CisvLyAgICAgdHlwZWRlZiBFbnVtQ2xhc3M8
TXlFbnVtRGVmaW5pdGlvbiwgTXlFbnVtRGVmaW5pdGlvbjo6VmFsdWVEZWZhdWx0PiBNeUVudW07
CiAvLwogLy8gV2l0aCB0aGF0LCB5b3UgY2FuIG5vdyB1c2UgTXlFbnVtIGVudW0gdmFsdWVzIGFz
IGZvbGxvdzoKIC8vCiAvLyAgICAgTXlFbnVtIHZhbHVlMTsgLy8gdmFsdWUxIGlzIGFzc2lnbmVk
IE15RW51bTo6VmFsdWVEZWZhdWx0IGJ5IGRlZmF1bHQuCiAvLyAgICAgTXlFbnVtIHZhbHVlMiA9
IE15RW51bTo6VmFsdWUxOyAvLyB2YWx1ZTIgaXMgYXNzaWduZWQgTXlFbnVtOjpWYWx1ZTE7CiAK
LXRlbXBsYXRlIDx0eXBlbmFtZSBEZWZpbml0aW9uLCB0eXBlbmFtZSBEZWZpbml0aW9uOjpFbnVt
cyBkZWZhdWx0VmFsdWU+Ci1jbGFzcyBUeXBlU2FmZUVudW0gOiBwdWJsaWMgRGVmaW5pdGlvbiB7
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVmaW5pdGlvbj4KK2NsYXNzIEVudW1DbGFzcyA6IHB1Ymxp
YyBEZWZpbml0aW9uIHsKICAgICB0eXBlZGVmIGVudW0gRGVmaW5pdGlvbjo6RW51bXMgVmFsdWU7
CiBwdWJsaWM6Ci0gICAgQUxXQVlTX0lOTElORSBUeXBlU2FmZUVudW0oKSA6IG1fdmFsdWUoZGVm
YXVsdFZhbHVlKSB7IH0KLSAgICBBTFdBWVNfSU5MSU5FIFR5cGVTYWZlRW51bShWYWx1ZSB2YWx1
ZSkgOiBtX3ZhbHVlKHZhbHVlKSB7IH0KKyAgICBBTFdBWVNfSU5MSU5FIEVudW1DbGFzcygpIDog
bV92YWx1ZShzdGF0aWNfY2FzdDxWYWx1ZT4oMCkpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgRW51
bUNsYXNzKFZhbHVlIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQogCiAgICAgQUxXQVlTX0lO
TElORSBWYWx1ZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAotICAgIEFMV0FZ
U19JTkxJTkUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1
cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9Ci0gICAgQUxXQVlTX0lOTElORSBib29sIG9w
ZXJhdG9yIT0oY29uc3QgVHlwZVNhZmVFbnVtIG90aGVyKSB7IHJldHVybiBtX3ZhbHVlICE9IG90
aGVyLm1fdmFsdWU7IH0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFR5
cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA8IG90aGVyLm1fdmFsdWU7IH0KLSAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3I8PShjb25zdCBUeXBlU2FmZUVudW0gb3RoZXIp
IHsgcmV0dXJuIG1fdmFsdWUgPD0gb3RoZXIubV92YWx1ZTsgfQotICAgIEFMV0FZU19JTkxJTkUg
Ym9vbCBvcGVyYXRvcj4oY29uc3QgVHlwZVNhZmVFbnVtIG90aGVyKSB7IHJldHVybiBtX3ZhbHVl
ID4gb3RoZXIubV92YWx1ZTsgfQotICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcj49KGNv
bnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA+PSBvdGhlci5tX3ZhbHVl
OyB9CisgICAgQUxXQVlTX0lOTElORSBib29sIG9wZXJhdG9yPT0oY29uc3QgRW51bUNsYXNzIG90
aGVyKSB7IHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7IH0KKyAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgb3BlcmF0b3IhPShjb25zdCBFbnVtQ2xhc3Mgb3RoZXIpIHsgcmV0dXJuIG1fdmFs
dWUgIT0gb3RoZXIubV92YWx1ZTsgfQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcjwo
Y29uc3QgRW51bUNsYXNzIG90aGVyKSB7IHJldHVybiBtX3ZhbHVlIDwgb3RoZXIubV92YWx1ZTsg
fQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IEVudW1DbGFzcyBvdGhl
cikgeyByZXR1cm4gbV92YWx1ZSA8PSBvdGhlci5tX3ZhbHVlOyB9CisgICAgQUxXQVlTX0lOTElO
RSBib29sIG9wZXJhdG9yPihjb25zdCBFbnVtQ2xhc3Mgb3RoZXIpIHsgcmV0dXJuIG1fdmFsdWUg
PiBvdGhlci5tX3ZhbHVlOyB9CisgICAgQUxXQVlTX0lOTElORSBib29sIG9wZXJhdG9yPj0oY29u
c3QgRW51bUNsYXNzIG90aGVyKSB7IHJldHVybiBtX3ZhbHVlID49IG90aGVyLm1fdmFsdWU7IH0K
IAogcHJpdmF0ZToKICAgICBWYWx1ZSBtX3ZhbHVlOwogfTsKIAorI2RlZmluZSBFTlVNX0NMQVNT
X0JFR0lOKF9fZW51bU5hbWUpIFwKKyAgICBzdHJ1Y3QgX19lbnVtTmFtZSAjIyBEZWZpbml0aW9u
IHsgXAorICAgICAgICBlbnVtIEVudW1zCisKKyNkZWZpbmUgRU5VTV9DTEFTU19FTkQoX19lbnVt
TmFtZSkgXAorICAgICAgICA7IFwKKyAgICB9OyBcCisgICAgdHlwZWRlZiBFbnVtQ2xhc3M8IF9f
ZW51bU5hbWUgIyMgRGVmaW5pdGlvbiA+IF9fZW51bU5hbWUKKworI2VuZGlmIC8vICFDT01QSUxF
Ul9TVVBQT1JUUyhDWFhfU1RST05HX0VOVU1TKQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNp
bmcgV1RGOjpUeXBlU2FmZUVudW07CisjaWYgIUNPTVBJTEVSX1NVUFBPUlRTKENYWF9TVFJPTkdf
RU5VTVMpCit1c2luZyBXVEY6OkVudW1DbGFzczsKKyNlbmRpZgogCi0jZW5kaWYgLy8gV1RGX1R5
cGVTYWZlRW51bV9oCisjZW5kaWYgLy8gV1RGX0VudW1DbGFzc19oCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9UeXBlU2FmZUVudW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9UeXBlU2Fm
ZUVudW0uaAkocmV2aXNpb24gMTQxNDkxKQorKysgU291cmNlL1dURi93dGYvVHlwZVNhZmVFbnVt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFdURl9UeXBlU2FmZUVudW1faAotI2Rl
ZmluZSBXVEZfVHlwZVNhZmVFbnVtX2gKLQotbmFtZXNwYWNlIFdURiB7Ci0KLS8vIEhvdyB0byBk
ZWZpbmUgYSB0eXBlIHNhZmUgZW51bSBsaXN0IHVzaW5nIFR5cGVTYWZlRW51bT8KLS8vID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gRGVm
aW5pdGlvbiBzaG91bGQgYmUgYSBzdHJ1Y3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW4gZW51bSBsaXN0
LgotLy8gVGhlIGVudW0gbGlzdCBzaG91bGQgYmUgbmFtZXMgRW51bXMuCi0vLwotLy8gSGVyZSdz
IGFuIGV4YW1wbGUgb2YgaG93IHRvIGRlZmluZSBhIHR5cGUgc2FmZSBlbnVtIG5hbWVkIE15RW51
bSB1c2luZwotLy8gdGhlIFR5cGVTYWZlRW51bSB0ZW1wbGF0ZToKLS8vCi0vLyAgICAgc3RydWN0
IE15RW51bURlZmluaXRpb24gewotLy8gICAgICAgICBlbnVtIEVudW1zIHsKLS8vICAgICAgICAg
ICAgIFZhbHVlRGVmYXVsdCwKLS8vICAgICAgICAgICAgIFZhbHVlMSwKLS8vICAgICAgICAgICAg
IC4uLgotLy8gICAgICAgICAgICAgVmFsdWVOCi0vLyAgICAgICAgIH07Ci0vLyAgICAgfTsKLS8v
ICAgICB0eXBlZGVmIFR5cGVTYWZlRW51bTxNeUVudW1EZWZpbml0aW9uLCBNeUVudW1EZWZpbml0
aW9uOjpWYWx1ZURlZmF1bHQ+IE15RW51bTsKLS8vCi0vLyBXaXRoIHRoYXQsIHlvdSBjYW4gbm93
IHVzZSBNeUVudW0gZW51bSB2YWx1ZXMgYXMgZm9sbG93OgotLy8KLS8vICAgICBNeUVudW0gdmFs
dWUxOyAvLyB2YWx1ZTEgaXMgYXNzaWduZWQgTXlFbnVtOjpWYWx1ZURlZmF1bHQgYnkgZGVmYXVs
dC4KLS8vICAgICBNeUVudW0gdmFsdWUyID0gTXlFbnVtOjpWYWx1ZTE7IC8vIHZhbHVlMiBpcyBh
c3NpZ25lZCBNeUVudW06OlZhbHVlMTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIERlZmluaXRpb24s
IHR5cGVuYW1lIERlZmluaXRpb246OkVudW1zIGRlZmF1bHRWYWx1ZT4KLWNsYXNzIFR5cGVTYWZl
RW51bSA6IHB1YmxpYyBEZWZpbml0aW9uIHsKLSAgICB0eXBlZGVmIGVudW0gRGVmaW5pdGlvbjo6
RW51bXMgVmFsdWU7Ci1wdWJsaWM6Ci0gICAgQUxXQVlTX0lOTElORSBUeXBlU2FmZUVudW0oKSA6
IG1fdmFsdWUoZGVmYXVsdFZhbHVlKSB7IH0KLSAgICBBTFdBWVNfSU5MSU5FIFR5cGVTYWZlRW51
bShWYWx1ZSB2YWx1ZSkgOiBtX3ZhbHVlKHZhbHVlKSB7IH0KLQotICAgIEFMV0FZU19JTkxJTkUg
VmFsdWUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0KLSAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUeXBlU2FmZUVudW0gb3RoZXIpIHsgcmV0dXJuIG1f
dmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQotICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSAhPSBvdGhlci5t
X3ZhbHVlOyB9Ci0gICAgQUxXQVlTX0lOTElORSBib29sIG9wZXJhdG9yPChjb25zdCBUeXBlU2Fm
ZUVudW0gb3RoZXIpIHsgcmV0dXJuIG1fdmFsdWUgPCBvdGhlci5tX3ZhbHVlOyB9Ci0gICAgQUxX
QVlTX0lOTElORSBib29sIG9wZXJhdG9yPD0oY29uc3QgVHlwZVNhZmVFbnVtIG90aGVyKSB7IHJl
dHVybiBtX3ZhbHVlIDw9IG90aGVyLm1fdmFsdWU7IH0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wg
b3BlcmF0b3I+KGNvbnN0IFR5cGVTYWZlRW51bSBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA+IG90
aGVyLm1fdmFsdWU7IH0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3I+PShjb25zdCBU
eXBlU2FmZUVudW0gb3RoZXIpIHsgcmV0dXJuIG1fdmFsdWUgPj0gb3RoZXIubV92YWx1ZTsgfQot
Ci1wcml2YXRlOgotICAgIFZhbHVlIG1fdmFsdWU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYK
LQotdXNpbmcgV1RGOjpUeXBlU2FmZUVudW07Ci0KLSNlbmRpZiAvLyBXVEZfVHlwZVNhZmVFbnVt
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTMxICBNYXJr
IExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBBYnN0cmFjdGlvbiBmb3IgaGlk
aW5nIGVudW0gY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVOVU1fQ0xBU1NfQkVHSU4pOgorCiAy
MDEzLTAxLTMxICBBbnRvbiBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBUZXh0QXV0b3NpemluZzogcmVmYWN0b3IgdGhlIGNsdXN0ZXIgcmVsYXRlZCBtZXRob2QgcGFy
YW1ldGVycyBpbnRvIGEgc2luZ2xlIHN0cnVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VFcnJvci5oCShyZXZpc2lvbiAxNDE0OTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlRXJyb3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsMjEgKzI4LDE3IEBACiAKICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQogCi0jaW5jbHVkZSA8d3RmL1R5cGVTYWZlRW51bS5oPgorI2luY2x1ZGUgPHd0Zi9FbnVt
Q2xhc3MuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgRGF0YWJhc2VFcnJvckRl
ZmluaXRpb24gewotICAgIGVudW0gRW51bXMgewotICAgICAgICBOb25lID0gMCwKLSAgICAgICAg
Q2Fubm90T3BlbkRhdGFiYXNlLAotICAgICAgICBEYXRhYmFzZUlzQmVpbmdEZWxldGVkLAotICAg
ICAgICBEYXRhYmFzZVNpemVFeGNlZWRlZFF1b3RhLAotICAgICAgICBEYXRhYmFzZVNpemVPdmVy
Zmxvd2VkCi0gICAgfTsKLX07Ci0KLXR5cGVkZWYgVHlwZVNhZmVFbnVtPERhdGFiYXNlRXJyb3JE
ZWZpbml0aW9uLCBEYXRhYmFzZUVycm9yRGVmaW5pdGlvbjo6Tm9uZT4gRGF0YWJhc2VFcnJvcjsK
K0VOVU1fQ0xBU1NfQkVHSU4oRGF0YWJhc2VFcnJvcikgeworICAgIE5vbmUgPSAwLAorICAgIENh
bm5vdE9wZW5EYXRhYmFzZSwKKyAgICBEYXRhYmFzZUlzQmVpbmdEZWxldGVkLAorICAgIERhdGFi
YXNlU2l6ZUV4Y2VlZGVkUXVvdGEsCisgICAgRGF0YWJhc2VTaXplT3ZlcmZsb3dlZAorfSBFTlVN
X0NMQVNTX0VORChEYXRhYmFzZUVycm9yKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>
<flag name="review"
          id="205116"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>