<?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>80513</bug_id>
          
          <creation_ts>2012-03-07 07:43:55 -0800</creation_ts>
          <short_desc>Speech JavaScript API: SpeechRecognitionEvent</short_desc>
          <delta_ts>2012-03-12 04:28:24 -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>New Bugs</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>
          <dependson>80424</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>satish</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572881</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-07 07:43:55 -0800</bug_when>
    <thetext>Speech JavaScript API: SpeechRecognitionEvent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572883</commentid>
    <comment_count>1</comment_count>
      <attachid>130625</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-07 07:48:11 -0800</bug_when>
    <thetext>Created attachment 130625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573799</commentid>
    <comment_count>2</comment_count>
      <attachid>130818</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-08 06:33:33 -0800</bug_when>
    <thetext>Created attachment 130818
Patch

Rebase, const-qualify readonly attribute getters, return raw pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574191</commentid>
    <comment_count>3</comment_count>
      <attachid>130818</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-08 14:16:03 -0800</bug_when>
    <thetext>Comment on attachment 130818
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:29
&gt; +    interface [
&gt; +        Conditional=SCRIPTED_SPEECH
&gt; +    ] SpeechRecognitionEvent : Event {

Please use the ConstructorTemplate=Event and InitializedByEventConstructor:

https://trac.webkit.org/wiki/WebKitIDL#ConstructorTemplate

This will generate DOM4-style event constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574193</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-08 14:16:35 -0800</bug_when>
    <thetext>+haraken because of ConstructorTemplate=Event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574194</commentid>
    <comment_count>5</comment_count>
      <attachid>130818</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-08 14:17:27 -0800</bug_when>
    <thetext>Comment on attachment 130818
Patch

Once you have a DOM4-style event constructor, you can write tests that exercise this class.  Note: you should also be able to exercise it with document.createEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574326</commentid>
    <comment_count>6</comment_count>
      <attachid>130818</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-08 15:43:40 -0800</bug_when>
    <thetext>Comment on attachment 130818
Patch

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

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:29
&gt;&gt; +    ] SpeechRecognitionEvent : Event {
&gt; 
&gt; Please use the ConstructorTemplate=Event and InitializedByEventConstructor:
&gt; 
&gt; https://trac.webkit.org/wiki/WebKitIDL#ConstructorTemplate
&gt; 
&gt; This will generate DOM4-style event constructors.

And please add fast/events/constructors/speech-recognition-event-constructors.html for tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574987</commentid>
    <comment_count>7</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-09 10:23:49 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 130818 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130818&amp;action=review
&gt; 

Thanks very much for the input!

&gt; &gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:29
&gt; &gt;&gt; +    ] SpeechRecognitionEvent : Event {
&gt; &gt; 
&gt; &gt; Please use the ConstructorTemplate=Event and InitializedByEventConstructor:
&gt; &gt; 
&gt; &gt; https://trac.webkit.org/wiki/WebKitIDL#ConstructorTemplate
&gt; &gt; 
&gt; &gt; This will generate DOM4-style event constructors.
Done.

&gt; 
&gt; And please add fast/events/constructors/speech-recognition-event-constructors.html for tests.
Done.

New patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574988</commentid>
    <comment_count>8</comment_count>
      <attachid>131057</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-09 10:24:21 -0800</bug_when>
    <thetext>Created attachment 131057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575257</commentid>
    <comment_count>9</comment_count>
      <attachid>131057</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 14:45:23 -0800</bug_when>
    <thetext>Comment on attachment 131057
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:32
&gt; +

You&apos;ve got an extra blank line here.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:70
&gt; +void SpeechRecognitionEvent::initSpeechRecognitionEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, SpeechRecognitionResult* result, SpeechRecognitionError* error, short resultIndex, SpeechRecognitionResultList* resultHistory)

Oh, you can skip these init functions.  DOM4-style events don&apos;t need them because you can just construct the event directly.  We&apos;ve been removing them from the platform.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:42
&gt; +        void initSpeechRecognitionEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
&gt; +                                        in [Optional=DefaultIsUndefined] boolean canBubbleArg,
&gt; +                                        in [Optional=DefaultIsUndefined] boolean cancelableArg,
&gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionResult resultArg,
&gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionError errorArg,
&gt; +                                        in [Optional=DefaultIsUndefined] short resultIndexArg,
&gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionResultList resultHistoryArg);

We should skip this.  Sorry I didn&apos;t notice it in your previous patch.

&gt; LayoutTests/fast/events/constructors/speech-recognition-event-constructor.html:30
&gt; +// Test passing resultIndex in the initializer.
&gt; +shouldBe(&quot;new webkitSpeechRecognitionEvent(&apos;eventType&apos;, { resultIndex: 42 }).resultIndex&quot;, &quot;42&quot;);

I mean, you can also test the other properties, but maybe that&apos;s not worth while.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576063</commentid>
    <comment_count>10</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-12 04:25:56 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 131057 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131057&amp;action=review

Thanks very much for the review!

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:32
&gt; &gt; +
&gt; 
&gt; You&apos;ve got an extra blank line here.
Done.

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:70
&gt; &gt; +void SpeechRecognitionEvent::initSpeechRecognitionEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, SpeechRecognitionResult* result, SpeechRecognitionError* error, short resultIndex, SpeechRecognitionResultList* resultHistory)
&gt; 
&gt; Oh, you can skip these init functions.  DOM4-style events don&apos;t need them because you can just construct the event directly.  We&apos;ve been removing them from the platform.
Done.

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:42
&gt; &gt; +        void initSpeechRecognitionEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] boolean canBubbleArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] boolean cancelableArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionResult resultArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionError errorArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] short resultIndexArg,
&gt; &gt; +                                        in [Optional=DefaultIsUndefined] SpeechRecognitionResultList resultHistoryArg);
&gt; 
&gt; We should skip this.  Sorry I didn&apos;t notice it in your previous patch.
Done.

It wasn&apos;t in the first patch. I copied it from StorageEvent.idl when adding ConstructorTemplate=Event, thinking maybe it was supposed to be there too. Thanks for clarifying.

&gt; &gt; LayoutTests/fast/events/constructors/speech-recognition-event-constructor.html:30
&gt; &gt; +// Test passing resultIndex in the initializer.
&gt; &gt; +shouldBe(&quot;new webkitSpeechRecognitionEvent(&apos;eventType&apos;, { resultIndex: 42 }).resultIndex&quot;, &quot;42&quot;);
&gt; 
&gt; I mean, you can also test the other properties, but maybe that&apos;s not worth while.

The SpeechRecognitionResult, Error and ResultList don&apos;t have constructors, so there&apos;s no straightforward way of testing those properties :/ Maybe I should just add constructors for them.

Also realized I forgot to add this layout test to the Skipped files for the other ports. Doing that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576064</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-03-12 04:28:24 -0700</bug_when>
    <thetext>Committed r110420: &lt;http://trac.webkit.org/changeset/110420&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130625</attachid>
            <date>2012-03-07 07:48:11 -0800</date>
            <delta_ts>2012-03-08 06:33:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80513-20120307154810.patch</filename>
            <type>text/plain</type>
            <size>13669</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjczMTI2ZmNkOWNhNDEx
Nzk2YmRmNzdiZmJkYjhhMTYzNzc2ZTQxOS4uZmQzZjhjZGI3ZGRkOGZkOGE3OGZiMzE5ZjJkNzNl
YjgwNWZlYzg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAzLTA3ICBIYW5z
IFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIEphdmFTY3Jp
cHQgQVBJOiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lgor
ICAgICAgICAoU3BlYzogaHR0cDovL3NwZWVjaC1qYXZhc2NyaXB0LWFwaS1zcGVjLmdvb2dsZWNv
ZGUuY29tL2dpdC9zcGVlY2hhcGkuaHRtbCkKKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGlzIGludGVyZmFjZSBkb2Vzbid0IGhhdmUgYSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgSXQg
d2lsbCBiZSB0ZXN0ZWQgYXMgbW9yZSBvZiB0aGUgQVBJIGdldHMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXZlbnQ6OmNyZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50OjpjcmVhdGVOb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZVJlc3VsdERlbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OnJlc3VsdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRIaXN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKwogMjAxMi0wMy0wNiAgSGFucyBXZW5uYm9y
ZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBKYXZhU2NyaXB0IEFQSTog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSwgUmVzdWx0IGFuZCBSZXN1bHRMaXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNWJmYWJkZWRiMGY2NmIyODYyMzkzMzZkM2YzY2IxOGIy
NDNlODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNDUklQVEVEX1NQRUVDSCkKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6Y3JlYXRlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3Vs
dCwgc2hvcnQgcmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0PiByZXN1bHRIaXN0b3J5KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoUmVj
b2duaXRpb25FdmVudChldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIHJlc3VsdCwgcmVzdWx0SW5k
ZXgsIHJlc3VsdEhpc3RvcnkpKTsKK30KKworUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGVOb01hdGNoKFBhc3NSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3VsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgcmVzdWx0
LCAwLCAwKSk7Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlUmVzdWx0RGVsZXRlZChzaG9ydCByZXN1bHRJbmRleCwg
UGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGV2ZW50TmFt
ZXMoKS5yZXN1bHRkZWxldGVkRXZlbnQsIDAsIHJlc3VsdEluZGV4LCByZXN1bHRIaXN0b3J5KSk7
Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRp
b25FdmVudDo6Y3JlYXRlRXJyb3IoUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBl
cnJvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQo
ZXJyb3IpKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVy
ZmFjZUZvclNwZWVjaFJlY29nbml0aW9uRXZlbnQ7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUs
IFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3VsdCwgc2hvcnQgcmVzdWx0
SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0
b3J5KQorICAgIDogRXZlbnQoZXZlbnROYW1lLCAvKmNhbkJ1YmJsZT0qL2ZhbHNlLCAvKmNhbmNl
bGFibGU9Ki9mYWxzZSkKKyAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICAsIG1fZXJyb3IoMCkK
KyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdEhpc3Rvcnko
cmVzdWx0SGlzdG9yeSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVj
b2duaXRpb25FdmVudChQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yKQor
ICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIC8qY2FuQnViYmxlPSovZmFsc2Us
IC8qY2FuY2VsYWJsZT0qL2ZhbHNlKSAvLyBGSVhNRTogVGhlIHNwZWMgc2hvdWxkIHNheSB3aGV0
aGVyIHRoZXNlIGJ1YmJsZSBvciBub3QuCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwgbV9y
ZXN1bHRJbmRleCgwKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MDZkNjhh
ZWJlYzNiNGMwMmE1OTU5MDI1YzEzODcyZmViODliNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAs
MCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoUmVjb2duaXRpb25FdmVudF9oCisj
ZGVmaW5lIFNwZWVjaFJlY29nbml0aW9uRXZlbnRfaAorCisjaWYgRU5BQkxFKFNDUklQVEVEX1NQ
RUVDSCkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3I7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4g
Y3JlYXRlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+LCBzaG9ydCBy
ZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3Vs
dEhpc3RvcnkpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+
IGNyZWF0ZU5vTWF0Y2goUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4pOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZVJlc3VsdERl
bGV0ZWQoc2hvcnQgcmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0PiByZXN1bHRIaXN0b3J5KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50PiBjcmVhdGVFcnJvcihQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXJy
b3I+KTsKKworICAgIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3VsdCgp
IHsgcmV0dXJuIG1fcmVzdWx0OyB9CisgICAgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPiBlcnJvcigpIHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAgICBzaG9ydCByZXN1bHRJbmRleCgp
IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0gLy8gRklYTUU6IFNwZWMgc2F5cyB0aGlzIHNob3Vs
ZCBiZSBzaG9ydCwgYnV0IG90aGVyIGluZGljZXMgYXJlIHVuc2lnbmVkIGludHMuCisgICAgUGFz
c1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkoKSB7IHJl
dHVybiBtX3Jlc3VsdEhpc3Rvcnk7IH0KKworICAgIC8vIEV2ZW50CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRO
YW1lLCBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Piwgc2hvcnQgcmVzdWx0SW5k
ZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0b3J5
KTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25FcnJvcj4pOworCisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBtX3Jlc3Vs
dDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gbV9lcnJvcjsKKyAgICBzaG9y
dCBtX3Jlc3VsdEluZGV4OworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
IG1fcmVzdWx0SGlzdG9yeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTQ1JJUFRFRF9TUEVFQ0gpCisKKyNlbmRpZiAvLyBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzOGFlOWM0NmI4ZGQwOGJmMGRl
N2M3ZTczYjg5OGNmNWZlZmJjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCittb2R1bGUgZXZlbnRzIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gKKyAgICBdIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBF
dmVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dCByZXN1bHQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIGVycm9yOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgc2hvcnQgcmVzdWx0SW5kZXg7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qg
cmVzdWx0SGlzdG9yeTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDUwNDM3MDIwYzMy
MDU1MzEzYTMwMTlhNGRiZDVlMGUxMjUzNjhjNDguLmVjMDY4ZjdjYjhiZTA5ZTFkZGFkNjAyNjky
NGE4NjU5NWVlOGYyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc2Niw2ICs3NjYsNyBAQAogICAg
ICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmlkbCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dTUUxEYXRh
YmFzZS5pZGwnLApAQCAtMTQxMSw2ICsxNDEyLDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuY3BwJywKICAgICAgICAgICAgICdNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCBhNjE2Zjc0NzZlYWFhMzE4NjRkYjc1ZjkyNDYxYTllNWJmY2YzNmYw
Li44NjA0MjMyMjU3MzQ2OTk3NDY5ZTdkMmIyMzI0YjgwZDU1ODg3NGZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTE4NSw2ICsxODUsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IFwKICAgICBtYWNybyh3ZWJraXRzcGVlY2hjaGFuZ2UpIFwKICAgICBcCisgICAgbWFjcm8oYXVk
aW9zdGFydCkgXAorICAgIG1hY3JvKHNvdW5kc3RhcnQpIFwKKyAgICBtYWNybyhzcGVlY2hzdGFy
dCkgXAorICAgIG1hY3JvKHNwZWVjaGVuZCkgXAorICAgIG1hY3JvKHNvdW5kZW5kKSBcCisgICAg
bWFjcm8oYXVkaW9lbmQpIFwKKyAgICBtYWNybyhyZXN1bHQpIFwKKyAgICBtYWNybyhub21hdGNo
KSBcCisgICAgbWFjcm8ocmVzdWx0ZGVsZXRlZCkgXAorICAgIG1hY3JvKHN0YXJ0KSBcCisgICAg
bWFjcm8oZW5kKSBcCisgICAgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGxvc3QpIFwKICAgICBt
YWNybyh3ZWJnbGNvbnRleHRyZXN0b3JlZCkgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGNyZWF0
aW9uZXJyb3IpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMWI1MDBjZDc5OWE4ZmM0
NmNkYzlhZTc5ZmFlMDgwNmRlMGFhZDFkZC4uZDg2NjExMjQwODBlODFkMTk1OWM4YzA5NTJiNTY5
NjFjN2FlOGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTMxLDYgKzMxLDcgQEAg
QXVkaW9Qcm9jZXNzaW5nRXZlbnQgY29uZGl0aW9uYWw9V0VCX0FVRElPCiBPZmZsaW5lQXVkaW9D
b21wbGV0aW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCX0FVRElPCiBNZWRpYVN0cmVhbUV2ZW50IGNv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTQogU3BlZWNoSW5wdXRFdmVudCBjb25kaXRpb25hbD1JTlBV
VF9TUEVFQ0gKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U0NSSVBURURfU1BF
RUNICiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CiBT
VkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9uYWw9U1ZHCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130818</attachid>
            <date>2012-03-08 06:33:33 -0800</date>
            <delta_ts>2012-03-09 10:24:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80513-20120308143331.patch</filename>
            <type>text/plain</type>
            <size>13678</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxOGNjOWIyM2M0ZDI2
ZGIxZjRkMGI1NjBjNzkwMWE4MjMwNjJkOS4uMTdlMTczMzdiNzdmMzY3NzY4MjBhMDI4NTM0OTEy
OTU4NDYwOWE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAzLTA4ICBIYW5z
IFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIEphdmFTY3Jp
cHQgQVBJOiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lgor
ICAgICAgICAoU3BlYzogaHR0cDovL3NwZWVjaC1qYXZhc2NyaXB0LWFwaS1zcGVjLmdvb2dsZWNv
ZGUuY29tL2dpdC9zcGVlY2hhcGkuaHRtbCkKKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGlzIGludGVyZmFjZSBkb2Vzbid0IGhhdmUgYSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgSXQg
d2lsbCBiZSB0ZXN0ZWQgYXMgbW9yZSBvZiB0aGUgQVBJIGdldHMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXZlbnQ6OmNyZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50OjpjcmVhdGVOb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZVJlc3VsdERlbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OnJlc3VsdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRIaXN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKwogMjAxMi0wMy0wNiAgSGFucyBXZW5uYm9y
ZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBKYXZhU2NyaXB0IEFQSTog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSwgUmVzdWx0IGFuZCBSZXN1bHRMaXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNWJmYWJkZWRiMGY2NmIyODYyMzkzMzZkM2YzY2IxOGIy
NDNlODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNDUklQVEVEX1NQRUVDSCkKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6Y3JlYXRlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3Vs
dCwgc2hvcnQgcmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0PiByZXN1bHRIaXN0b3J5KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoUmVj
b2duaXRpb25FdmVudChldmVudE5hbWVzKCkucmVzdWx0RXZlbnQsIHJlc3VsdCwgcmVzdWx0SW5k
ZXgsIHJlc3VsdEhpc3RvcnkpKTsKK30KKworUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGVOb01hdGNoKFBhc3NSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3VsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgcmVzdWx0
LCAwLCAwKSk7Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlUmVzdWx0RGVsZXRlZChzaG9ydCByZXN1bHRJbmRleCwg
UGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGV2ZW50TmFt
ZXMoKS5yZXN1bHRkZWxldGVkRXZlbnQsIDAsIHJlc3VsdEluZGV4LCByZXN1bHRIaXN0b3J5KSk7
Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRp
b25FdmVudDo6Y3JlYXRlRXJyb3IoUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBl
cnJvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQo
ZXJyb3IpKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVy
ZmFjZUZvclNwZWVjaFJlY29nbml0aW9uRXZlbnQ7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUs
IFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJlc3VsdCwgc2hvcnQgcmVzdWx0
SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0
b3J5KQorICAgIDogRXZlbnQoZXZlbnROYW1lLCAvKmNhbkJ1YmJsZT0qL2ZhbHNlLCAvKmNhbmNl
bGFibGU9Ki9mYWxzZSkKKyAgICAsIG1fcmVzdWx0KHJlc3VsdCkKKyAgICAsIG1fZXJyb3IoMCkK
KyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdEhpc3Rvcnko
cmVzdWx0SGlzdG9yeSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVj
b2duaXRpb25FdmVudChQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yKQor
ICAgIDogRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIC8qY2FuQnViYmxlPSovZmFsc2Us
IC8qY2FuY2VsYWJsZT0qL2ZhbHNlKSAvLyBGSVhNRTogVGhlIHNwZWMgc2hvdWxkIHNheSB3aGV0
aGVyIHRoZXNlIGJ1YmJsZSBvciBub3QuCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwgbV9y
ZXN1bHRJbmRleCgwKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExYTg3MDdk
NjY1ZWNjM2QxOTE3N2VjNDVlZjNjY2M3Y2I1ODE2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAs
MCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoUmVjb2duaXRpb25FdmVudF9oCisj
ZGVmaW5lIFNwZWVjaFJlY29nbml0aW9uRXZlbnRfaAorCisjaWYgRU5BQkxFKFNDUklQVEVEX1NQ
RUVDSCkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3I7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4g
Y3JlYXRlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+LCBzaG9ydCBy
ZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3Vs
dEhpc3RvcnkpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+
IGNyZWF0ZU5vTWF0Y2goUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4pOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZVJlc3VsdERl
bGV0ZWQoc2hvcnQgcmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0PiByZXN1bHRIaXN0b3J5KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50PiBjcmVhdGVFcnJvcihQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXJy
b3I+KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiByZXN1bHQoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3VsdC5nZXQoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IqIGVycm9y
KCkgY29uc3QgeyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQorICAgIHNob3J0IHJlc3VsdEluZGV4
KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRJbmRleDsgfSAvLyBGSVhNRTogU3BlYyBzYXlzIHRo
aXMgc2hvdWxkIGJlIHNob3J0LCBidXQgb3RoZXIgaW5kaWNlcyBhcmUgdW5zaWduZWQgaW50cy4K
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdEhpc3RvcnkoKSBjb25zdCB7
IHJldHVybiBtX3Jlc3VsdEhpc3RvcnkuZ2V0KCk7IH0KKworICAgIC8vIEV2ZW50CisgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsK
KworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnROYW1lLCBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Piwgc2hvcnQg
cmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1
bHRIaXN0b3J5KTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KFBhc3NSZWZQdHI8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4pOworCisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
PiBtX3Jlc3VsdDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gbV9lcnJvcjsK
KyAgICBzaG9ydCBtX3Jlc3VsdEluZGV4OworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+IG1fcmVzdWx0SGlzdG9yeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShTQ1JJUFRFRF9TUEVFQ0gpCisKKyNlbmRpZiAvLyBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzOGFlOWM0NmI4
ZGQwOGJmMGRlN2M3ZTczYjg5OGNmNWZlZmJjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgZXZlbnRzIHsKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gKKyAgICBdIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQgOiBFdmVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCByZXN1bHQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIGVycm9yOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgc2hvcnQgcmVz
dWx0SW5kZXg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QgcmVzdWx0SGlzdG9yeTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDA2
YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdhZDA3N2EuLjUwYmZiMjhmMDFmZDM1YzYy
YjE0N2ZiZWE2Mjc1NzU0NzJlNjI4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc2NSw2ICs3NjUs
NyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5k
b3dTUUxEYXRhYmFzZS5pZGwnLApAQCAtMTQxMCw2ICsxNDExLDggQEAKICAgICAgICAgICAgICdN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuY3BwJywKICAgICAgICAg
ICAgICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgnLAorICAgICAgICAg
ICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBhNjE2Zjc0NzZlYWFhMzE4NjRkYjc1ZjkyNDYxYTll
NWJmY2YzNmYwLi44NjA0MjMyMjU3MzQ2OTk3NDY5ZTdkMmIyMzI0YjgwZDU1ODg3NGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE4NSw2ICsxODUsMTggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIFwKICAgICBtYWNybyh3ZWJraXRzcGVlY2hjaGFuZ2UpIFwKICAgICBcCisgICAg
bWFjcm8oYXVkaW9zdGFydCkgXAorICAgIG1hY3JvKHNvdW5kc3RhcnQpIFwKKyAgICBtYWNybyhz
cGVlY2hzdGFydCkgXAorICAgIG1hY3JvKHNwZWVjaGVuZCkgXAorICAgIG1hY3JvKHNvdW5kZW5k
KSBcCisgICAgbWFjcm8oYXVkaW9lbmQpIFwKKyAgICBtYWNybyhyZXN1bHQpIFwKKyAgICBtYWNy
byhub21hdGNoKSBcCisgICAgbWFjcm8ocmVzdWx0ZGVsZXRlZCkgXAorICAgIG1hY3JvKHN0YXJ0
KSBcCisgICAgbWFjcm8oZW5kKSBcCisgICAgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGxvc3Qp
IFwKICAgICBtYWNybyh3ZWJnbGNvbnRleHRyZXN0b3JlZCkgXAogICAgIG1hY3JvKHdlYmdsY29u
dGV4dGNyZWF0aW9uZXJyb3IpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMWI1MDBj
ZDc5OWE4ZmM0NmNkYzlhZTc5ZmFlMDgwNmRlMGFhZDFkZC4uZDg2NjExMjQwODBlODFkMTk1OWM4
YzA5NTJiNTY5NjFjN2FlOGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTMxLDYg
KzMxLDcgQEAgQXVkaW9Qcm9jZXNzaW5nRXZlbnQgY29uZGl0aW9uYWw9V0VCX0FVRElPCiBPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCX0FVRElPCiBNZWRpYVN0cmVh
bUV2ZW50IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogU3BlZWNoSW5wdXRFdmVudCBjb25kaXRp
b25hbD1JTlBVVF9TUEVFQ0gKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U0NS
SVBURURfU1BFRUNICiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFn
ZUV2ZW50CiBTVkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9uYWw9U1ZHCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131057</attachid>
            <date>2012-03-09 10:24:21 -0800</date>
            <delta_ts>2012-03-09 14:45:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80513-20120309182419.patch</filename>
            <type>text/plain</type>
            <size>27975</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFkY2IzZjVkNTUxNzZl
YmVkNTNhOWU1MGM1M2FiZmI3MWNjOWY0YS4uNmZkMTU5ZjhlYTA0YzY4ZjI1MGUyOWFiZWM1OTcx
Y2RhZGExMDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEyLTAzLTA5ICBIYW5z
IFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgU3BlZWNoIEphdmFTY3Jp
cHQgQVBJOiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lgor
ICAgICAgICAoU3BlYzogaHR0cDovL3NwZWVjaC1qYXZhc2NyaXB0LWFwaS1zcGVjLmdvb2dsZWNv
ZGUuY29tL2dpdC9zcGVlY2hhcGkuaHRtbCkKKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9j
b25zdHJ1Y3RvcnMvc3BlZWNoLXJlY29nbml0aW9uLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKKwor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGw6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5p
dDo6U3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXZlbnQ6OmNyZWF0ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50OjpjcmVhdGVOb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6OmNyZWF0ZVJlc3VsdERlbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6aW5pdFNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6aW50ZXJmYWNlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50SW5pdCk6CisgICAgICAgIChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OnJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpyZXN1bHRIaXN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJraXRTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50RW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvT3B0aW9uc09i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25zT2JqZWN0OjpnZXQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChPcHRpb25zT2JqZWN0KToKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0V2ZW50TmFt
ZXMuaW46CisKKzIwMTItMDMtMDkgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IGFkZCBTcGVlY2hHcmFtbWFyIGFuZCBT
cGVlY2hHcmFtbWFyTGlzdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODA0MTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93U3BlZWNoLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaC5pZGwKaW5kZXggNmQzMGJjNmI1ZDA4NmM4ZWM2MGU3NWEzMGVmYzJjMTM5
MWMyOGY2Yy4uNzAyMDBiMWJlNDY3YmQzZGFlMDU0MGFmN2JmMzZlODc2NWY5MzRlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2guaWRsCkBA
IC0yOSw2ICsyOSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBTdXBwbGVtZW50YWw9RE9N
V2luZG93CiAgICAgXSBET01XaW5kb3dTcGVlY2ggewogICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5h
YmxlZEF0UnVudGltZV0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvbnN0cnVjdG9yIHdlYmtpdFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50
aW1lXSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Q29uc3RydWN0b3Igd2Via2l0U3BlZWNoUmVjb2du
aXRpb25FdmVudDsKICAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFNwZWVj
aEdyYW1tYXJDb25zdHJ1Y3RvciB3ZWJraXRTcGVlY2hHcmFtbWFyOwogICAgICAgICBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3BlZWNoR3JhbW1hckxpc3RDb25zdHJ1Y3RvciB3ZWJr
aXRTcGVlY2hHcmFtbWFyTGlzdDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NWI4YmI1NzQyNmE1ZDYyZmNlYzE3MDBkYjM3YjVkYjVlZmUxOGQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5j
cHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25FdmVu
dEluaXQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0KCkKKyAgICA6IHJlc3VsdEluZGV4KDAp
Cit7Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2du
aXRpb25FdmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQoKSk7Cit9CisKK1Bhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FdmVu
dD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnROYW1lLCBjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGV2ZW50TmFt
ZSwgaW5pdGlhbGl6ZXIpKTsKK30KKworUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGVSZXN1bHQoUGFzc1JlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4gcmVzdWx0LCBzaG9ydCByZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS5yZXN1bHRF
dmVudCwgcmVzdWx0LCByZXN1bHRJbmRleCwgcmVzdWx0SGlzdG9yeSkpOworfQorCitQYXNzUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0
ZU5vTWF0Y2goUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gcmVzdWx0KQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudChldmVudE5hbWVz
KCkubm9tYXRjaEV2ZW50LCByZXN1bHQsIDAsIDApKTsKK30KKworUGFzc1JlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGVSZXN1bHREZWxl
dGVkKHNob3J0IHJlc3VsdEluZGV4LCBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdD4gcmVzdWx0SGlzdG9yeSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQoZXZlbnROYW1lcygpLnJlc3VsdGRlbGV0ZWRFdmVudCwgMCwgcmVzdWx0
SW5kZXgsIHJlc3VsdEhpc3RvcnkpKTsKK30KKworUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGVFcnJvcihQYXNzUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U3BlZWNoUmVjb2duaXRpb25FdmVudChlcnJvcikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmluaXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQqIHJlc3VsdCwgU3BlZWNoUmVjb2duaXRpb25FcnJvciogZXJyb3IsIHNob3J0IHJlc3Vs
dEluZGV4LCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdEhpc3RvcnkpCit7Cisg
ICAgIGlmIChkaXNwYXRjaGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRFdmVudCh0
eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUpOworCisgICAgbV9yZXN1bHQgPSByZXN1bHQ7Cisg
ICAgbV9lcnJvciA9IGVycm9yOworICAgIG1fcmVzdWx0SW5kZXggPSByZXN1bHRJbmRleDsKKyAg
ICBtX3Jlc3VsdEhpc3RvcnkgPSByZXN1bHRIaXN0b3J5OworfQorCitjb25zdCBBdG9taWNTdHJp
bmcmIFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yU3BlZWNoUmVjb2duaXRpb25FdmVudDsK
K30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudCgpCisg
ICAgOiBtX3Jlc3VsdEluZGV4KDApCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNw
ZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2ZW50KGV2
ZW50TmFtZSwgaW5pdGlhbGl6ZXIpCisgICAgLCBtX3Jlc3VsdChpbml0aWFsaXplci5yZXN1bHQp
CisgICAgLCBtX2Vycm9yKGluaXRpYWxpemVyLmVycm9yKQorICAgICwgbV9yZXN1bHRJbmRleChp
bml0aWFsaXplci5yZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0SGlzdG9yeShpbml0aWFsaXpl
ci5yZXN1bHRIaXN0b3J5KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBQYXNzUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiByZXN1bHQsIHNob3J0IHJlc3VsdEluZGV4LCBQYXNz
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gcmVzdWx0SGlzdG9yeSkKKyAgICA6
IEV2ZW50KGV2ZW50TmFtZSwgLypjYW5CdWJibGU9Ki9mYWxzZSwgLypjYW5jZWxhYmxlPSovZmFs
c2UpCisgICAgLCBtX3Jlc3VsdChyZXN1bHQpCisgICAgLCBtX2Vycm9yKDApCisgICAgLCBtX3Jl
c3VsdEluZGV4KHJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRIaXN0b3J5KHJlc3VsdEhpc3Rv
cnkpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZl
bnQoUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvcikKKyAgICA6IEV2ZW50
KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCAvKmNhbkJ1YmJsZT0qL2ZhbHNlLCAvKmNhbmNlbGFi
bGU9Ki9mYWxzZSkgLy8gRklYTUU6IFRoZSBzcGVjIHNob3VsZCBzYXkgd2hldGhlciB0aGVzZSBi
dWJibGUgb3Igbm90LgorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fcmVzdWx0SW5kZXgo
MCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFND
UklQVEVEX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTZjMTUwZjI1OGE2ZWY5NjZh
MTAxZWY4NDIwOTIzOTQ3YTBkOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNwZWVjaFJlY29nbml0aW9uRXZlbnRfaAorI2RlZmluZSBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50X2gKKworI2lmIEVOQUJMRShTQ1JJUFRFRF9TUEVFQ0gpCisKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q7CisK
K3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewor
ICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0KCk7CisKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+IHJlc3VsdDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4gZXJyb3I7CisgICAgc2hvcnQgcmVzdWx0SW5kZXg7CisgICAgUmVmUHRyPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdD4gcmVzdWx0SGlzdG9yeTsKK307CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmLCBj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCYpOworCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+LCBzaG9ydCByZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZU5vTWF0Y2goUGFzc1JlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdD4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFJlY29n
bml0aW9uRXZlbnQ+IGNyZWF0ZVJlc3VsdERlbGV0ZWQoc2hvcnQgcmVzdWx0SW5kZXgsIFBhc3NS
ZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0b3J5KTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGVFcnJvcihQYXNz
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0KiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdC5nZXQoKTsgfQorICAgIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IqIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvci5nZXQo
KTsgfQorICAgIHNob3J0IHJlc3VsdEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRJbmRl
eDsgfSAvLyBGSVhNRTogU3BlYyBzYXlzIHRoaXMgc2hvdWxkIGJlIHNob3J0LCBidXQgb3RoZXIg
aW5kaWNlcyBhcmUgdW5zaWduZWQgaW50cy4KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QqIHJlc3VsdEhpc3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdEhpc3RvcnkuZ2V0KCk7
IH0KKworICAgIHZvaWQgaW5pdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCosIFNwZWVjaFJlY29nbml0aW9uRXJyb3IqLCBzaG9ydCByZXN1bHRJbmRleCwg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KiByZXN1bHRIaXN0b3J5KTsKKworICAgIC8vIEV2
ZW50CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25z
dCBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KCk7Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50SW5pdCYpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+LCBzaG9ydCByZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnQoUGFz
c1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPik7CisKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+IG1fcmVzdWx0OworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPiBtX2Vycm9yOworICAgIHNob3J0IG1fcmVzdWx0SW5kZXg7CisgICAgUmVmUHRyPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4gbV9yZXN1bHRIaXN0b3J5OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNDUklQVEVEX1NQRUVDSCkKKworI2Vu
ZGlmIC8vIFNwZWVjaFJlY29nbml0aW9uRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjA0MTQyNGUwZTYxMjUwZWExNzdkZTQwNTJmMWE5MDBlNDU2ODQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBldmVudHMgeworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwKKyAgICAgICAg
Q29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudAorICAgIF0gU3BlZWNoUmVjb2duaXRpb25FdmVudCA6
IEV2ZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgcmVzdWx0OworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIGVycm9yOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxp
emVkQnlFdmVudENvbnN0cnVjdG9yXSBzaG9ydCByZXN1bHRJbmRleDsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0IHJlc3VsdEhpc3Rvcnk7CisKKyAgICAgICAgdm9pZCBpbml0U3BlZWNo
UmVjb2duaXRpb25FdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgdHlwZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1YmJsZUFyZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBib29sZWFuIGNhbmNlbGFibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0QXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgZXJyb3JBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gc2hvcnQgcmVzdWx0SW5kZXhB
cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdEhp
c3RvcnlBcmcpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWUxMjEyODA4ZDU1NWNj
YzRkOWYwN2I5M2RlMzQxMDMxNjRlMGVmNy4uYTEyYzUzZWVmZWNjZTRhYTQ4OTQ1YzllYTVkZjYy
ZmM5M2Q5MTM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzY3LDYgKzc2Nyw3IEBACiAgICAgICAg
ICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsJywKICAgICAgICAgICAg
ICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5pZGwnLAorICAg
ICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93U1FMRGF0YWJh
c2UuaWRsJywKQEAgLTE0MTYsNiArMTQxNyw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oJywKKyAgICAgICAgICAgICdNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aAppbmRleCA0NTNiMTIxNDEyYWU3YzU4YTBmZjU1Yjg2ODQwNmQ5MmM3YTIwMzJhLi5lZTM4ZDA0
ZTI0NjJkZjhlYjIyZTU5ZWM0MTI5YTg5ZGQ2NGVlMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAt
MTUyLDYgKzE1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzY3JpcHRlZFNwZWVjaEVu
YWJsZWQoKSB7IHJldHVybiBpc1NjcmlwdGVkU3BlZWNoRW5hYmxlZDsgfQogICAgIHN0YXRpYyBi
b29sIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzU2NyaXB0ZWRT
cGVlY2hFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgd2Via2l0U3BlZWNoUmVjb2duaXRpb25F
cnJvckVuYWJsZWQoKSB7IHJldHVybiBpc1NjcmlwdGVkU3BlZWNoRW5hYmxlZDsgfQorICAgIHN0
YXRpYyBib29sIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnRFbmFibGVkKCkgeyByZXR1cm4g
aXNTY3JpcHRlZFNwZWVjaEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJraXRTcGVlY2hH
cmFtbWFyRW5hYmxlZCgpIHsgcmV0dXJuIGlzU2NyaXB0ZWRTcGVlY2hFbmFibGVkOyB9CiAgICAg
c3RhdGljIGJvb2wgd2Via2l0U3BlZWNoR3JhbW1hckxpc3RFbmFibGVkKCkgeyByZXR1cm4gaXNT
Y3JpcHRlZFNwZWVjaEVuYWJsZWQ7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9PcHRpb25zT2JqZWN0LmNwcAppbmRleCBmOGRiOTdlNWEzZDkwMDJhNDQ3NWE3NjllMTFi
YWI1ZTRjMDZlYTQyLi5lOGM3ZGQ5Y2MzN2I1ZDRmYjQ3MTJkM2I5YzVmNGE4YTc2Njk1NmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmNwcApAQCAtNDMs
NiArNDMsMTUgQEAKICNpbmNsdWRlICJWOFRleHRUcmFjay5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoU0NSSVBURURfU1BFRUNIKQorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgIlY4U3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oIgorI2luY2x1ZGUgIlY4U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKyNpbmNsdWRlICJW
OFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogT3B0aW9uc09iamVjdDo6T3B0aW9uc09iamVjdCgpCkBAIC0xNjgsNiArMTc3LDE5
IEBAIGJvb2wgT3B0aW9uc09iamVjdDo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCB1bnNpZ25lZCBz
aG9ydCYgdmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgT3B0aW9uc09i
amVjdDo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBzaG9ydCYgdmFsdWUpIGNvbnN0Cit7CisgICAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhWYWx1ZTsKKyAgICBpZiAoIWdldEtleShrZXksIHY4VmFs
dWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2ODo6TG9jYWw8djg6OkludDMyPiB2
OEludDMyID0gdjhWYWx1ZS0+VG9JbnQzMigpOworICAgIGlmICh2OEludDMyLklzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8c2hvcnQ+KHY4
SW50MzItPlZhbHVlKCkpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIE9wdGlvbnNPYmpl
Y3Q6OmdldChjb25zdCBTdHJpbmcmIGtleSwgdW5zaWduZWQmIHZhbHVlKSBjb25zdAogewogICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CkBAIC0yOTMsNCArMzE1LDU4IEBAIGJvb2wg
T3B0aW9uc09iamVjdDo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8VHJhY2tCYXNlPiYg
dmFsdWUpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTQ1JJUFRFRF9TUEVFQ0gpCiti
b29sIE9wdGlvbnNPYmplY3Q6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPFNwZWVjaFJl
Y29nbml0aW9uRXJyb3I+JiB2YWx1ZSkgY29uc3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVl
PiB2OFZhbHVlOworICAgIGlmICghZ2V0S2V5KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IqIHNvdXJjZSA9IDA7CisgICAg
aWYgKHY4VmFsdWUtPklzT2JqZWN0KCkpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwcGVyID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBzcGVlY2hSZWNvZ25pdGlvbkVycm9yID0gVjhET01X
cmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6R2V0VGVt
cGxhdGUoKSwgd3JhcHBlcik7CisgICAgICAgIGlmICghc3BlZWNoUmVjb2duaXRpb25FcnJvci5J
c0VtcHR5KCkpCisgICAgICAgICAgICBzb3VyY2UgPSBWOFNwZWVjaFJlY29nbml0aW9uRXJyb3I6
OnRvTmF0aXZlKHNwZWVjaFJlY29nbml0aW9uRXJyb3IpOworICAgIH0KKyAgICB2YWx1ZSA9IHNv
dXJjZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBPcHRpb25zT2JqZWN0OjpnZXQoY29u
c3QgU3RyaW5nJiBrZXksIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4mIHZhbHVlKSBj
b25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRL
ZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQqIHNvdXJjZSA9IDA7CisgICAgaWYgKHY4VmFsdWUtPklzT2JqZWN0KCkp
IHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBzcGVlY2hSZWNvZ25pdGlvblJlc3VsdCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBl
cihWOFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpHZXRUZW1wbGF0ZSgpLCB3cmFwcGVyKTsKKyAg
ICAgICAgaWYgKCFzcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5Jc0VtcHR5KCkpCisgICAgICAgICAg
ICBzb3VyY2UgPSBWOFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Ojp0b05hdGl2ZShzcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCk7CisgICAgfQorICAgIHZhbHVlID0gc291cmNlOworICAgIHJldHVybiB0
cnVlOworfQorCitib29sIE9wdGlvbnNPYmplY3Q6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mIHZhbHVlKSBjb25zdAoreworICAgIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0KiBzb3VyY2UgPSAwOworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QodjhWYWx1ZSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gc3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0ID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpHZXRUZW1wbGF0ZSgpLCB3cmFwcGVyKTsKKyAgICAg
ICAgaWYgKCFzcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuSXNFbXB0eSgpKQorICAgICAgICAg
ICAgc291cmNlID0gVjhTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OnRvTmF0aXZlKHNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CisgICAgfQorICAgIHZhbHVlID0gc291cmNlOworICAg
IHJldHVybiB0cnVlOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5oCmluZGV4IDJjN2U4MGEwNzU5
OTMwZmM4YTM2ZWU1ODAyZTc0ZjRlN2MwODlkM2UuLjMyNjAzNzgxNmFjOTFhYzIyOTA4ODRmNmU3
ZmE5ZmRlOTA4NDA3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09w
dGlvbnNPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2Jq
ZWN0LmgKQEAgLTQwLDYgKzQwLDkgQEAgY2xhc3MgRE9NV2luZG93OwogY2xhc3MgSURCS2V5UmFu
Z2U7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25FcnJvcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0OwogCiBjbGFzcyBPcHRpb25zT2JqZWN0IHsKIHB1YmxpYzoK
QEAgLTU3LDYgKzYwLDcgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIGRv
dWJsZSYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGNvbnN0
OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFNjcmlwdFZhbHVlJikgY29uc3Q7CisgICAg
Ym9vbCBnZXQoY29uc3QgU3RyaW5nJiwgc2hvcnQmKSBjb25zdDsKICAgICBib29sIGdldChjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkJikgY29uc3Q7CiAgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQgbG9uZyBsb25nJikgY29uc3Q7CkBAIC02Niw2ICs3MCwxMSBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxU
cmFja0Jhc2U+JikgY29uc3Q7CiAjZW5kaWYKKyNpZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQor
ICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9y
PiYpIGNvbnN0OworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4mKSBjb25zdDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYpIGNvbnN0OworI2VuZGlmCiAgICAgYm9v
bCBnZXQoY29uc3QgU3RyaW5nJiwgSGFzaFNldDxBdG9taWNTdHJpbmc+JikgY29uc3Q7CiAKICAg
ICBib29sIGdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayhjb25zdCBTdHJpbmcmLCBTdHJpbmcm
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGE2MTZmNzQ3NmVhYWEzMTg2NGRi
NzVmOTI0NjFhOWU1YmZjZjM2ZjAuLjg2MDQyMzIyNTczNDY5OTc0NjllN2QyYjIzMjRiODBkNTU4
ODc0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTg1LDYgKzE4NSwxOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgXAogICAgIG1hY3JvKHdlYmtpdHNwZWVjaGNoYW5nZSkgXAog
ICAgIFwKKyAgICBtYWNybyhhdWRpb3N0YXJ0KSBcCisgICAgbWFjcm8oc291bmRzdGFydCkgXAor
ICAgIG1hY3JvKHNwZWVjaHN0YXJ0KSBcCisgICAgbWFjcm8oc3BlZWNoZW5kKSBcCisgICAgbWFj
cm8oc291bmRlbmQpIFwKKyAgICBtYWNybyhhdWRpb2VuZCkgXAorICAgIG1hY3JvKHJlc3VsdCkg
XAorICAgIG1hY3JvKG5vbWF0Y2gpIFwKKyAgICBtYWNybyhyZXN1bHRkZWxldGVkKSBcCisgICAg
bWFjcm8oc3RhcnQpIFwKKyAgICBtYWNybyhlbmQpIFwKKyAgICBcCiAgICAgbWFjcm8od2ViZ2xj
b250ZXh0bG9zdCkgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dHJlc3RvcmVkKSBcCiAgICAgbWFj
cm8od2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvcikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpp
bmRleCAxYjUwMGNkNzk5YThmYzQ2Y2RjOWFlNzlmYWUwODA2ZGUwYWFkMWRkLi5kODY2MTEyNDA4
MGU4MWQxOTU5YzhjMDk1MmI1Njk2MWM3YWU4ZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
bgpAQCAtMzEsNiArMzEsNyBAQCBBdWRpb1Byb2Nlc3NpbmdFdmVudCBjb25kaXRpb25hbD1XRUJf
QVVESU8KIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudCBjb25kaXRpb25hbD1XRUJfQVVESU8K
IE1lZGlhU3RyZWFtRXZlbnQgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBTcGVlY2hJbnB1dEV2
ZW50IGNvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSAorU3BlZWNoUmVjb2duaXRpb25FdmVudCBjb25k
aXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gKIFdlYkdMQ29udGV4dEV2ZW50IGNvbmRpdGlvbmFsPVdF
QkdMCiBTdG9yYWdlRXZlbnQKIFNWR0V2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50LCBjb25kaXRp
b25hbD1TVkcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5ZmU0MmExZDZhMjRiMzBiYTIxZjIxNWViYmIwZDZmZWU4NzFlN2U1
Li5kNTJmMDVlM2NhMmMxM2IzZGZiYWE0NDM5Zjk2YzY1ODJlZTUzOTQ3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMTcgQEAKIDIwMTItMDMtMDkgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFNwZWVjaFJlY29nbml0aW9uRXZlbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTEzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3Qg
Zm9yIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9jb25z
dHJ1Y3RvcnMvc3BlZWNoLXJlY29nbml0aW9uLWV2ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL3NwZWVjaC1yZWNv
Z25pdGlvbi1ldmVudC1jb25zdHJ1Y3Rvci5odG1sOiBBZGRlZC4KKworMjAxMi0wMy0wOSAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFNwZWVjaCBKYXZhU2Ny
aXB0IEFQSTogYWRkIFNwZWVjaEdyYW1tYXIgYW5kIFNwZWVjaEdyYW1tYXJMaXN0CiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQxNwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvc3BlZWNoLXJlY29nbml0
aW9uLWV2ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2NvbnN0cnVjdG9ycy9zcGVlY2gtcmVjb2duaXRpb24tZXZlbnQtY29uc3RydWN0b3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNmU5MmQxNWU1NDY3MTViNzhjZjAyNjRkNjg2YzIyNWNj
ODAxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb25zdHJ1
Y3RvcnMvc3BlZWNoLXJlY29nbml0aW9uLWV2ZW50LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3RzIHRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQgRE9NIGNsYXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb25FdmVudCgnZXZlbnRUeXBlJyku
YnViYmxlcyBpcyBmYWxzZQorUEFTUyBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb25FdmVudCgn
ZXZlbnRUeXBlJykuY2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyBuZXcgd2Via2l0U3BlZWNoUmVj
b2duaXRpb25FdmVudCgnZXZlbnRUeXBlJykucmVzdWx0IGlzIG51bGwKK1BBU1MgbmV3IHdlYmtp
dFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScpLmVycm9yIGlzIG51bGwKK1BBU1Mg
bmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScpLnJlc3VsdEluZGV4
IGlzIDAKK1BBU1MgbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScp
LnJlc3VsdEhpc3RvcnkgaXMgbnVsbAorUEFTUyBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb25F
dmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiBmYWxzZSB9KS5idWJibGVzIGlzIGZhbHNlCitQ
QVNTIG5ldyB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJs
ZXM6IHRydWUgfSkuYnViYmxlcyBpcyB0cnVlCitQQVNTIG5ldyB3ZWJraXRTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KCdldmVudFR5cGUnLCB7IGNhbmNlbGFibGU6IGZhbHNlIH0pLmNhbmNlbGFibGUg
aXMgZmFsc2UKK1BBU1MgbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlw
ZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KS5jYW5jZWxhYmxlIGlzIHRydWUKK1BBU1MgbmV3IHdl
YmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScsIHsgcmVzdWx0SW5kZXg6IDQy
IH0pLnJlc3VsdEluZGV4IGlzIDQyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2NvbnN0cnVjdG9ycy9zcGVlY2gtcmVjb2duaXRpb24tZXZlbnQtY29uc3RydWN0b3IuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9zcGVlY2gtcmVjb2duaXRp
b24tZXZlbnQtY29uc3RydWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Mzk2ODc2MDUyNzMzYTY5NmU0
YTBjMDM2NjRiMGJjMmZkN2YyNTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvY29uc3RydWN0b3JzL3NwZWVjaC1yZWNvZ25pdGlvbi1ldmVudC1jb25zdHJ1Y3Rv
ci5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGNv
bnN0cnVjdG9yIGZvciB0aGUgU3BlZWNoUmVjb2duaXRpb25FdmVudCBET00gY2xhc3MuIik7CisK
Ky8vIFRlc3QgY29uc3RydWN0b3Igd2l0aG91dCBpbml0aWFsaXplci4KK3Nob3VsZEJlKCJuZXcg
d2Via2l0U3BlZWNoUmVjb2duaXRpb25FdmVudCgnZXZlbnRUeXBlJykuYnViYmxlcyIsICJmYWxz
ZSIpOworc2hvdWxkQmUoIm5ldyB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KCdldmVudFR5
cGUnKS5jYW5jZWxhYmxlIiwgImZhbHNlIik7CitzaG91bGRCZSgibmV3IHdlYmtpdFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScpLnJlc3VsdCIsICJudWxsIik7CitzaG91bGRCZSgi
bmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScpLmVycm9yIiwgIm51
bGwiKTsKK3Nob3VsZEJlKCJuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb25FdmVudCgnZXZlbnRU
eXBlJykucmVzdWx0SW5kZXgiLCAiMCIpOworc2hvdWxkQmUoIm5ldyB3ZWJraXRTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50KCdldmVudFR5cGUnKS5yZXN1bHRIaXN0b3J5IiwgIm51bGwiKTsKKworLy8g
VGVzdCBwYXNzaW5nIGJ1YmJsZXMgaW4gdGhlIGluaXRpYWxpemVyLgorc2hvdWxkQmUoIm5ldyB3
ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KCdldmVudFR5cGUnLCB7IGJ1YmJsZXM6IGZhbHNl
IH0pLmJ1YmJsZXMiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJuZXcgd2Via2l0U3BlZWNoUmVjb2du
aXRpb25FdmVudCgnZXZlbnRUeXBlJywgeyBidWJibGVzOiB0cnVlIH0pLmJ1YmJsZXMiLCAidHJ1
ZSIpOworCisvLyBUZXN0IHBhc3NpbmcgY2FuY2VsYWJsZSBpbiB0aGUgaW5pdGlhbGl6ZXIuCitz
aG91bGRCZSgibmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQoJ2V2ZW50VHlwZScsIHsg
Y2FuY2VsYWJsZTogZmFsc2UgfSkuY2FuY2VsYWJsZSIsICJmYWxzZSIpOworc2hvdWxkQmUoIm5l
dyB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KCdldmVudFR5cGUnLCB7IGNhbmNlbGFibGU6
IHRydWUgfSkuY2FuY2VsYWJsZSIsICJ0cnVlIik7CisKKy8vIFRlc3QgcGFzc2luZyByZXN1bHRJ
bmRleCBpbiB0aGUgaW5pdGlhbGl6ZXIuCitzaG91bGRCZSgibmV3IHdlYmtpdFNwZWVjaFJlY29n
bml0aW9uRXZlbnQoJ2V2ZW50VHlwZScsIHsgcmVzdWx0SW5kZXg6IDQyIH0pLnJlc3VsdEluZGV4
IiwgIjQyIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="review"
          id="134238"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="134316"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>