<?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>114547</bug_id>
          
          <creation_ts>2013-04-12 16:59:51 -0700</creation_ts>
          <short_desc>AX: iOS: WAI-ARIA landmarks no longer speak type of landmark on iOS</short_desc>
          <delta_ts>2013-04-24 11:33:04 -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>Accessibility</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875055</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-12 16:59:51 -0700</bug_when>
    <thetext>WAI-ARIA landmarks no longer speak type of landmark</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875060</commentid>
    <comment_count>1</comment_count>
      <attachid>197911</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-12 17:03:55 -0700</bug_when>
    <thetext>Created attachment 197911
code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880151</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-23 15:11:39 -0700</bug_when>
    <thetext>rdar://8736942</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880154</commentid>
    <comment_count>3</comment_count>
      <attachid>199330</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-23 15:17:01 -0700</bug_when>
    <thetext>Created attachment 199330
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880687</commentid>
    <comment_count>4</comment_count>
      <attachid>199330</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-04-24 10:14:51 -0700</bug_when>
    <thetext>Comment on attachment 199330
patch 

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

r=me

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1885
&gt;          switch (m_object-&gt;roleValue()) {
&gt;              default:
&gt;                  return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, [self subrole]);

Is it normal to put the default: case at the beginning of the switch statement?

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:725
&gt; +    if ([axDescription length]) {
&gt; +        if ([result length])
&gt; +            [result appendString:@&quot;, &quot;];
&gt; +        [result appendString:axDescription];
&gt; +    }

This code is essentially written 3 times in this patch.  It could be pulled into a local static (inline) method to make this method a little more readable:

static void appendStringToResult(NSMutableString *result, NSString *string)
{
    ASSERT(result);
    if (![string length])
        return;
    if ([result length])
        [result appendString:@&quot;, &quot;];
    [result appendString:string];
}

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:744
&gt; +    return ([result length]) ? result : nil;

Nit:  Don&apos;t need the extra parenthesis here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880728</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-24 11:32:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/149051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880729</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-04-24 11:33:04 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 199330 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=199330&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1885
&gt; &gt;          switch (m_object-&gt;roleValue()) {
&gt; &gt;              default:
&gt; &gt;                  return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, [self subrole]);
&gt; 
&gt; Is it normal to put the default: case at the beginning of the switch statement?
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:725
&gt; &gt; +    if ([axDescription length]) {
&gt; &gt; +        if ([result length])
&gt; &gt; +            [result appendString:@&quot;, &quot;];
&gt; &gt; +        [result appendString:axDescription];
&gt; &gt; +    }
&gt; 
&gt; This code is essentially written 3 times in this patch.  It could be pulled into a local static (inline) method to make this method a little more readable:
&gt; 
&gt; static void appendStringToResult(NSMutableString *result, NSString *string)
&gt; {
&gt;     ASSERT(result);
&gt;     if (![string length])
&gt;         return;
&gt;     if ([result length])
&gt;         [result appendString:@&quot;, &quot;];
&gt;     [result appendString:string];
&gt; }
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:744
&gt; &gt; +    return ([result length]) ? result : nil;
&gt; 
&gt; Nit:  Don&apos;t need the extra parenthesis here.

Thanks. Addressed all these suggestions in the checkin</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>197911</attachid>
            <date>2013-04-12 17:03:55 -0700</date>
            <delta_ts>2013-04-12 17:03:55 -0700</delta_ts>
            <desc>code</desc>
            <filename>p</filename>
            <type>application/octet-stream</type>
            <size>12697</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlz
aW9uIDEyMDI4MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw5ICsxNTgsNiBAQAogICAgIFN0cmluZyBBWERlc2Ny
aXB0aW9uTGlzdERldGFpbFRleHQoKTsKICAgICBTdHJpbmcgQVhGb290ZXJSb2xlRGVzY3JpcHRp
b25UZXh0KCk7CiAgICAgU3RyaW5nIEFYRmlsZVVwbG9hZEJ1dHRvblRleHQoKTsKLSNpZiBQTEFU
Rk9STShNQUMpCi0gICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5n
JiBhcmlhVHlwZSk7Ci0jZW5kaWYKICAgICAKICAgICBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJi
KCk7CiAgICAgU3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCk7CkBAIC0xNzEsNiArMTY4
LDkgQEAKICAgICBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOwogICAgIFN0cmlu
ZyBBWExpbmtBY3Rpb25WZXJiKCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKElPUykKKyAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcm
IGFyaWFUeXBlKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19V
SSkKICAgICBTdHJpbmcgQVhBTVBNRmllbGRUZXh0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAkocmV2aXNpb24gMTIwMjgwMykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01ODIsOCArNTgyLDUxIEBACiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImZpbGUg
dXBsb2FkIGJ1dHRvbiIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgZmls
ZSB1cGxvYWQgYnV0dG9uIik7CiB9CisgICAgCitTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkK
K3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklORygicHJlc3MiLCAiVmVyYiBzdGF0aW5nIHRoZSBh
Y3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBidXR0b24gaXMgcHJlc3NlZCwgYXMgdXNlZCBi
eSBhY2Nlc3NpYmlsaXR5Iik7Cit9CiAKLSNpZiBQTEFURk9STShNQUMpCitTdHJpbmcgQVhSYWRp
b0J1dHRvbkFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWxlY3Qi
LCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSByYWRpbyBi
dXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Cit9CisKK1N0cmlu
ZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJh
Y3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBh
IHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOworfQor
CitTdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwg
b2NjdXIgd2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nl
c3NpYmlsaXR5Iik7Cit9CisKK1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
Cit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlj
a2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIEFYTGlua0FjdGlv
blZlcmIoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGlu
ZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1
c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIEFYTWVudUxpc3RQb3B1cEFjdGlv
blZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuICJzZWxlY3QiOwor
fQorCitTdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuICJzZWxlY3QiOworfQorI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKIFN0cmluZyBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpCiB7CiAgICAgaWYgKGFyaWFUeXBlID09
ICJBUklBQXBwbGljYXRpb25BbGVydCIpCkBAIC02MzAsNTEgKzY3Myw4IEBACiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0
aGF0IGNvbnRhaW5zIG1hdGhlbWF0aWNhbCBzeW1ib2xzLiIpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQog
ICAgIAotU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoInByZXNzIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3
aGVuIGEgYnV0dG9uIGlzIHByZXNzZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQot
Ci1TdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJzZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3Vy
IHdoZW4gYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5
Iik7Ci19Ci0KLVN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdp
bGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFzIHVzZWQgYnkgYWNjZXNz
aWJpbGl0eSIpOwotfQotCi1TdHJpbmcgQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFj
dGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwg
YXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0KLVN0cmluZyBBWFVuY2hlY2tlZENoZWNr
Qm94QWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNoZWNrIiwgIlZl
cmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBj
aGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3Ry
aW5nIEFYTGlua0FjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJqdW1w
IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgbGluayBp
cyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIEFYTWVu
dUxpc3RQb3B1cEFjdGlvblZlcmIoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuICJzZWxlY3QiOwotfQotCi1TdHJpbmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuICJzZWxlY3QiOwotfQotI2VuZGlmIC8vICFQ
TEFURk9STShJT1MpCi0KIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpCiB7CiAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQg
d2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tCShyZXZpc2lvbiAxMjAyODAzKQorKysgU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjYsNiArMjI2LDU2IEBACiAgICAgcmV0dXJuIFtOU1N0cmluZyBz
dHJpbmddOwogfQogCistIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbgor
eworICAgIHN3aXRjaCAobV9vYmplY3QtPnJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBMYW5kbWFy
a0FwcGxpY2F0aW9uUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBTGFuZG1hcmtBcHBsaWNhdGlvbiIpOworICAgIGNhc2UgTGFuZG1hcmtCYW5uZXJSb2xl
OgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya0Jh
bm5lciIpOworICAgIGNhc2UgTGFuZG1hcmtDb21wbGVtZW50YXJ5Um9sZToKKyAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5Iik7
CisgICAgY2FzZSBMYW5kbWFya0NvbnRlbnRJbmZvUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJ
QUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtDb250ZW50SW5mbyIpOworICAgIGNhc2Ug
TGFuZG1hcmtNYWluUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBTGFuZG1hcmtNYWluIik7CisgICAgY2FzZSBMYW5kbWFya05hdmlnYXRpb25Sb2xlOgor
ICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya05hdmln
YXRpb24iKTsKKyAgICBjYXNlIExhbmRtYXJrU2VhcmNoUm9sZToKKyAgICAgICAgcmV0dXJuIEFY
QVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtTZWFyY2giKTsKKyAgICBjYXNlIEFw
cGxpY2F0aW9uQWxlcnRSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4
dChAIkFSSUFBcHBsaWNhdGlvbkFsZXJ0Iik7CisgICAgY2FzZSBBcHBsaWNhdGlvbkFsZXJ0RGlh
bG9nUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBQXBw
bGljYXRpb25BbGVydERpYWxvZyIpOworICAgIGNhc2UgQXBwbGljYXRpb25EaWFsb2dSb2xlOgor
ICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkRp
YWxvZyIpOworICAgIGNhc2UgQXBwbGljYXRpb25Mb2dSb2xlOgorICAgICAgICByZXR1cm4gQVhB
UklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkxvZyIpOworICAgIGNhc2UgQXBw
bGljYXRpb25NYXJxdWVlUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoQCJBUklBQXBwbGljYXRpb25NYXJxdWVlIik7CisgICAgY2FzZSBBcHBsaWNhdGlvblN0YXR1
c1JvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUFwcGxp
Y2F0aW9uU3RhdHVzIik7CisgICAgY2FzZSBBcHBsaWNhdGlvblRpbWVyUm9sZToKKyAgICAgICAg
cmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25UaW1lciIpOwor
ICAgIGNhc2UgRG9jdW1lbnRSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgIGNhc2UgRG9jdW1lbnRBcnRpY2xlUm9sZToKKyAg
ICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnRBcnRpY2xl
Iik7CisgICAgY2FzZSBEb2N1bWVudE1hdGhSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29u
dGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudE1hdGgiKTsKKyAgICBjYXNlIERvY3VtZW50Tm90
ZVJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3Vt
ZW50Tm90ZSIpOworICAgIGNhc2UgRG9jdW1lbnRSZWdpb25Sb2xlOgorICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudFJlZ2lvbiIpOworICAgIGNhc2Ug
VXNlckludGVyZmFjZVRvb2x0aXBSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdy
b3VwVGV4dChAIkFSSUFVc2VySW50ZXJmYWNlVG9vbHRpcCIpOworICAgIGNhc2UgVGFiUGFuZWxS
b2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFUYWJQYW5l
bCIpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorfQorCiAvLyBU
aGlzIGlzIHNldCBieSBEUlQgd2hlbiBpdCB3YW50cyB0byBsaXN0ZW4gZm9yIG5vdGlmaWNhdGlv
bnMuCiBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczsK
ICsgKHZvaWQpYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6KEJPT0wp
cmVwb3N0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkocmV2
aXNpb24gMTIwMjgwMykKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzk4LDUx
ICsxNzk4LDE0IEBACiAgICAgTlNTdHJpbmcqIGF4Um9sZSA9IFtzZWxmIHJvbGVdOwogICAgIAog
ICAgIGlmIChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGVd
KSB7CisgICAgICAgIAorICAgICAgICBOU1N0cmluZyAqYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0
aW9uID0gW3NlbGYgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uXTsKKyAgICAgICAgaWYgKGFy
aWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBhcmlhTGFuZG1h
cmtSb2xlRGVzY3JpcHRpb247CisgICAgICAgIAogICAgICAgICBzd2l0Y2ggKG1fb2JqZWN0LT5y
b2xlVmFsdWUoKSkgewogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uKE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9s
ZSwgW3NlbGYgc3Vicm9sZV0pOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFya0FwcGxpY2F0aW9u
Um9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFS
SUFMYW5kbWFya0FwcGxpY2F0aW9uIik7Ci0gICAgICAgICAgICBjYXNlIExhbmRtYXJrQmFubmVy
Um9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFS
SUFMYW5kbWFya0Jhbm5lciIpOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFya0NvbXBsZW1lbnRh
cnlSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAi
QVJJQUxhbmRtYXJrQ29tcGxlbWVudGFyeSIpOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFya0Nv
bnRlbnRJbmZvUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIik7Ci0gICAgICAgICAgICBjYXNlIExhbmRt
YXJrTWFpblJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoQCJBUklBTGFuZG1hcmtNYWluIik7Ci0gICAgICAgICAgICBjYXNlIExhbmRtYXJrTmF2aWdh
dGlvblJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIik7Ci0gICAgICAgICAgICBjYXNlIExhbmRtYXJrU2Vh
cmNoUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChA
IkFSSUFMYW5kbWFya1NlYXJjaCIpOwotICAgICAgICAgICAgY2FzZSBBcHBsaWNhdGlvbkFsZXJ0
Um9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFS
SUFBcHBsaWNhdGlvbkFsZXJ0Iik7Ci0gICAgICAgICAgICBjYXNlIEFwcGxpY2F0aW9uQWxlcnRE
aWFsb2dSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0
KEAiQVJJQUFwcGxpY2F0aW9uQWxlcnREaWFsb2ciKTsKLSAgICAgICAgICAgIGNhc2UgQXBwbGlj
YXRpb25EaWFsb2dSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3Jv
dXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uRGlhbG9nIik7Ci0gICAgICAgICAgICBjYXNlIEFwcGxp
Y2F0aW9uTG9nUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFBcHBsaWNhdGlvbkxvZyIpOwotICAgICAgICAgICAgY2FzZSBBcHBsaWNhdGlv
bk1hcnF1ZWVSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBU
ZXh0KEAiQVJJQUFwcGxpY2F0aW9uTWFycXVlZSIpOwotICAgICAgICAgICAgY2FzZSBBcHBsaWNh
dGlvblN0YXR1c1JvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoQCJBUklBQXBwbGljYXRpb25TdGF0dXMiKTsKLSAgICAgICAgICAgIGNhc2UgQXBwbGlj
YXRpb25UaW1lclJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoQCJBUklBQXBwbGljYXRpb25UaW1lciIpOwotICAgICAgICAgICAgY2FzZSBEb2N1bWVu
dFJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJB
UklBRG9jdW1lbnQiKTsKLSAgICAgICAgICAgIGNhc2UgRG9jdW1lbnRBcnRpY2xlUm9sZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVu
dEFydGljbGUiKTsKLSAgICAgICAgICAgIGNhc2UgRG9jdW1lbnRNYXRoUm9sZToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudE1hdGgi
KTsKLSAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb3RlUm9sZToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudE5vdGUiKTsKLSAgICAg
ICAgICAgIGNhc2UgRG9jdW1lbnRSZWdpb25Sb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBB
WEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50UmVnaW9uIik7Ci0gICAgICAgICAg
ICBjYXNlIFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFVc2VySW50ZXJmYWNlVG9vbHRpcCIpOwotICAg
ICAgICAgICAgY2FzZSBUYWJQYW5lbFJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJ
QUNvbnRlbnRHcm91cFRleHQoQCJBUklBVGFiUGFuZWwiKTsKICAgICAgICAgICAgIGNhc2UgRGVm
aW5pdGlvblJvbGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEFYRGVmaW5pdGlvblRleHQoKTsK
ICAgICAgICAgICAgIGNhc2UgRGVzY3JpcHRpb25MaXN0VGVybVJvbGU6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAkocmV2aXNpb24gMTIwMjgwMykKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw4IEBACiAtIChOU1N0cmluZyAq
KWFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbjsKIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eUhl
bHBUZXh0OwogCistIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKKwog
LSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4g
YSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCiAtICh2b2lkKWFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFt
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCShyZXZpc2lv
biAxMjAyODAzKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3NiwxOSArNjc2
LDMxIEBACiAgICAgLy8gc28gY29uY2F0ZW50YXRpb24gd2lsbCB5aWVsZCB0aGUgYmVzdCByZXN1
bHQuCiAgICAgTlNTdHJpbmcgKmF4VGl0bGUgPSBbc2VsZiBhY2Nlc3NpYmlsaXR5VGl0bGVdOwog
ICAgIE5TU3RyaW5nICpheERlc2NyaXB0aW9uID0gW3NlbGYgYWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uXTsKLSAgICBOU1VJbnRlZ2VyIGF4VGl0bGVMZW5ndGggPSBbYXhUaXRsZSBsZW5ndGhdOwot
ICAgIE5TVUludGVnZXIgYXhEZXNjcmlwdGlvbkxlbmd0aCA9IFtheERlc2NyaXB0aW9uIGxlbmd0
aF07CisgICAgTlNTdHJpbmcgKmxhbmRtYXJrRGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1h
cmtSb2xlRGVzY3JpcHRpb25dOworCisgICAgTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQgPSBbTlNN
dXRhYmxlU3RyaW5nIHN0cmluZ107CisgICAgaWYgKFtheFRpdGxlIGxlbmd0aF0pCisgICAgICAg
IFtyZXN1bHQgYXBwZW5kU3RyaW5nOmF4VGl0bGVdOwogICAgIAotICAgIGlmIChheFRpdGxlTGVu
Z3RoICYmIGF4RGVzY3JpcHRpb25MZW5ndGgpCi0gICAgICAgIHJldHVybiBbYXhUaXRsZSBzdHJp
bmdCeUFwcGVuZGluZ0Zvcm1hdDpAIiwgJUAiLCBheERlc2NyaXB0aW9uXTsKLSAgICBlbHNlIGlm
IChheFRpdGxlTGVuZ3RoKQotICAgICAgICByZXR1cm4gYXhUaXRsZTsKLSAgICBlbHNlIGlmIChh
eERlc2NyaXB0aW9uTGVuZ3RoKQotICAgICAgICByZXR1cm4gYXhEZXNjcmlwdGlvbjsKLSAgICBl
bHNlIGlmIChbc2VsZiBzdHJpbmdWYWx1ZVNob3VsZEJlVXNlZEluTGFiZWxdKQotICAgICAgICBy
ZXR1cm4gbV9vYmplY3QtPnN0cmluZ1ZhbHVlKCk7CisgICAgaWYgKFtheERlc2NyaXB0aW9uIGxl
bmd0aF0pIHsKKyAgICAgICAgaWYgKFtyZXN1bHQgbGVuZ3RoXSkKKyAgICAgICAgICAgIFtyZXN1
bHQgYXBwZW5kU3RyaW5nOkAiLCAiXTsKKyAgICAgICAgW3Jlc3VsdCBhcHBlbmRTdHJpbmc6YXhE
ZXNjcmlwdGlvbl07CisgICAgfQogICAgIAotICAgIHJldHVybiBuaWw7CisgICAgaWYgKFtzZWxm
IHN0cmluZ1ZhbHVlU2hvdWxkQmVVc2VkSW5MYWJlbF0pIHsKKyAgICAgICAgaWYgKFtyZXN1bHQg
bGVuZ3RoXSkKKyAgICAgICAgICAgIFtyZXN1bHQgYXBwZW5kU3RyaW5nOkAiLCAiXTsKKyAgICAg
ICAgW3Jlc3VsdCBhcHBlbmRTdHJpbmc6bV9vYmplY3QtPnN0cmluZ1ZhbHVlKCldOworICAgIH0K
KworICAgIGlmIChbbGFuZG1hcmtEZXNjcmlwdGlvbiBsZW5ndGhdKSB7CisgICAgICAgIGlmIChb
cmVzdWx0IGxlbmd0aF0pCisgICAgICAgICAgICBbcmVzdWx0IGFwcGVuZFN0cmluZzpAIiwgIl07
CisgICAgICAgIFtyZXN1bHQgYXBwZW5kU3RyaW5nOmxhbmRtYXJrRGVzY3JpcHRpb25dOworICAg
IH0KKworICAgIHJldHVybiAoW3Jlc3VsdCBsZW5ndGhdKSA/IHJlc3VsdCA6IG5pbDsKIH0KIAog
LSAoQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCopdGFibGVDZWxsUGFyZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199330</attachid>
            <date>2013-04-23 15:17:01 -0700</date>
            <delta_ts>2013-04-24 10:14:51 -0700</delta_ts>
            <desc>patch </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22557</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDEzLTA0LTIzICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdBSS1BUklBIGxh
bmRtYXJrcyBubyBsb25nZXIgc3BlYWsgdHlwZSBvZiBsYW5kbWFyayBvbiBpT1MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDU0NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgaU9TIHRvIHNw
ZWFrIHRoZSBsYW5kbWFyayB0eXBlLgorICAgICAgICBJJ3ZlIG1vdmVkIHRoZSBsYW5kbWFyayBy
b2xlIGRlc2NyaXB0aW9uIHRvIHRoZSBiYXNlIE1hYyBjbGFzcyBhbmQgZXhwb3NlZAorICAgICAg
ICB0aGVzZSBsb2NhbGl6ZWQgc3RyaW5ncyB0byBpT1MgKHRoZSBvbmVzIHVzZWQgdG8gcmV0dXJu
IGxhbmRtYXJrIGRlc2NyaXB0aW9ucykuCisKKyAgICAgICAgSSd2ZSBhbHNvIHVwZGF0ZWQgdGhl
IGFjY2Vzc2liaWxpdHlMYWJlbCB0byBhY2NvdW50IGZvciBsYW5kbWFyayB0eXBlLCBidXQgYWxz
bworICAgICAgICBoYW5kbGUgbXVsdGlwbGUgbGFiZWwgc291cmNlcyBtb3JlIGdyYWNlZnVsbHkg
YnkgYXBwZW5kaW5nIGNvbW1hcywgd2hpY2ggY2hhbmdlZCBhIGZldworICAgICAgICB0ZXN0cyBp
biBtaW5vciB3YXlzLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3Iv
YWNjZXNzaWJpbGl0eS9sYW5kbWFyay10eXBlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tOgorICAgICAgICAoLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5TGFiZWxdKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZSBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgICog
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFJh
ZGlvQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFRleHRGaWVsZEFjdGlv
blZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhNZW51
TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0QWN0aW9u
VmVyYik6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisKIDIwMTMtMDQtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3JlYXRlIGNvbXBvc2l0aW5nIGxheWVycyBmb3Igc3Rp
Y2t5IHBvc2l0aW9uIHVubGVzcyB1c2luZyB0aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDE0
ODk3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAkod29y
a2luZyBjb3B5KQpAQCAtMTU4LDkgKzE1OCw2IEBACiAgICAgU3RyaW5nIEFYRGVzY3JpcHRpb25M
aXN0RGV0YWlsVGV4dCgpOwogICAgIFN0cmluZyBBWEZvb3RlclJvbGVEZXNjcmlwdGlvblRleHQo
KTsKICAgICBTdHJpbmcgQVhGaWxlVXBsb2FkQnV0dG9uVGV4dCgpOwotI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFU
eXBlKTsKLSNlbmRpZgogICAgIAogICAgIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsKICAg
ICBTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKQEAgLTIwMyw2ICsyMDAsOSBAQAog
ICAgIC8vIHRlY2huaWNhbCBzdGFuZGFyZCAzNSwgTG9jYWxlIERhdGEgTWFya3VwIExhbmd1YWdl
LCBlLmcuICInV2Vlaycgd3csIHl5eXkiCiAgICAgU3RyaW5nIHdlZWtGb3JtYXRJbkxETUwoKTsK
ICNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorICAgIFN0cmluZyBB
WEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpOworI2VuZGlmCiAK
ICAgICBTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKTsKICAgICBTdHJpbmcgY3Jhc2hlZFBsdWdp
blRleHQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuY3BwCShyZXZpc2lvbiAxNDg5NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTE3LDYgKzUxNyw3IEBACiAKICNl
bmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAorI2lmICFQTEFURk9STShJT1MpCiBTdHJp
bmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKIHsKICAgICByZXR1cm4gV0VCX1VJ
X1NUUklORygiTm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVu
dSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3
aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKQEAgLTU4Niw4ICs1ODcsNTEg
QEAKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZmlsZSB1cGxvYWQgYnV0dG9uIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYSBmaWxlIHVwbG9hZCBidXR0b24iKTsK
IH0KKyAgICAKK1N0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsK
K30KIAotI2lmIFBMQVRGT1JNKE1BQykKK1N0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigp
Cit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlbGVjdCIsICJWZXJiIHN0YXRpbmcgdGhl
IGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHJhZGlvIGJ1dHRvbiBpcyBjbGlja2VkLCBh
cyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIEFYVGV4dEZpZWxkQWN0aW9u
VmVyYigpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxl
Y3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Cit9CisKK1N0cmluZyBBWENoZWNrZWRD
aGVja0JveEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ1bmNoZWNr
IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgY2hlY2tl
ZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKwor
U3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gV0VC
X1VJX1NUUklORygiY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9j
Y3VyIHdoZW4gYW4gdW5jaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNj
ZXNzaWJpbGl0eSIpOworfQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3
aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0
eSIpOworfQorCitTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gInNlbGVjdCI7Cit9CisKK1N0cmluZyBBWE1lbnVM
aXN0QWN0aW9uVmVyYigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gInNl
bGVjdCI7Cit9CisjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKworI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oSU9TKQogU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3Ry
aW5nJiBhcmlhVHlwZSkKIHsKICAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFs
ZXJ0IikKQEAgLTYzNCw1MCArNjc4LDggQEAKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
Im1hdGgiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgbWF0aGVt
YXRpY2FsIHN5bWJvbHMuIik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQotI2VuZGlmCi0gICAg
Ci1TdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygicHJlc3MiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4g
YSBidXR0b24gaXMgcHJlc3NlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19CisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCiAKLVN0cmluZyBBWFJhZGlvQnV0
dG9uQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlbGVjdCIsICJW
ZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHJhZGlvIGJ1dHRv
biBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKLX0KLQotU3RyaW5nIEFY
VGV4dEZpZWxkQWN0aW9uVmVyYigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFjdGl2
YXRlIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4
dCBmaWVsZCBpcyBzZWxlY3RlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Ci19Ci0KLVN0
cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQotewotICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1
ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2li
aWxpdHkiKTsKLX0KLQotU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKLXsK
LSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rp
b24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYW4gdW5jaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQs
IGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgQVhMaW5rQWN0aW9uVmVy
YigpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQg
YnkgYWNjZXNzaWJpbGl0eSIpOwotfQotCi1TdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVy
YigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gInNlbGVjdCI7Ci19Ci0K
LVN0cmluZyBBWE1lbnVMaXN0QWN0aW9uVmVyYigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gInNlbGVjdCI7Ci19Ci0KIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpCiB7
CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0
IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCShyZXZpc2lvbiAxNDg5NzQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5Miw2ICsyOTIsNTYgQEAKICAgICByZXR1cm4g
Q0dQb2ludFplcm87CiB9CiAKKy0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0
aW9uCit7CisgICAgc3dpdGNoIChtX29iamVjdC0+cm9sZVZhbHVlKCkpIHsKKyAgICBjYXNlIExh
bmRtYXJrQXBwbGljYXRpb25Sb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFMYW5kbWFya0FwcGxpY2F0aW9uIik7CisgICAgY2FzZSBMYW5kbWFya0Jhbm5l
clJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRt
YXJrQmFubmVyIik7CisgICAgY2FzZSBMYW5kbWFya0NvbXBsZW1lbnRhcnlSb2xlOgorICAgICAg
ICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya0NvbXBsZW1lbnRh
cnkiKTsKKyAgICBjYXNlIExhbmRtYXJrQ29udGVudEluZm9Sb2xlOgorICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya0NvbnRlbnRJbmZvIik7CisgICAg
Y2FzZSBMYW5kbWFya01haW5Sb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFMYW5kbWFya01haW4iKTsKKyAgICBjYXNlIExhbmRtYXJrTmF2aWdhdGlvblJv
bGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJr
TmF2aWdhdGlvbiIpOworICAgIGNhc2UgTGFuZG1hcmtTZWFyY2hSb2xlOgorICAgICAgICByZXR1
cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya1NlYXJjaCIpOworICAgIGNh
c2UgQXBwbGljYXRpb25BbGVydFJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3Jv
dXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uQWxlcnQiKTsKKyAgICBjYXNlIEFwcGxpY2F0aW9uQWxl
cnREaWFsb2dSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFS
SUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIik7CisgICAgY2FzZSBBcHBsaWNhdGlvbkRpYWxvZ1Jv
bGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0
aW9uRGlhbG9nIik7CisgICAgY2FzZSBBcHBsaWNhdGlvbkxvZ1JvbGU6CisgICAgICAgIHJldHVy
biBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uTG9nIik7CisgICAgY2Fz
ZSBBcHBsaWNhdGlvbk1hcnF1ZWVSb2xlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdy
b3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbk1hcnF1ZWUiKTsKKyAgICBjYXNlIEFwcGxpY2F0aW9u
U3RhdHVzUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklB
QXBwbGljYXRpb25TdGF0dXMiKTsKKyAgICBjYXNlIEFwcGxpY2F0aW9uVGltZXJSb2xlOgorICAg
ICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvblRpbWVy
Iik7CisgICAgY2FzZSBEb2N1bWVudFJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50Iik7CisgICAgY2FzZSBEb2N1bWVudEFydGljbGVSb2xl
OgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudEFy
dGljbGUiKTsKKyAgICBjYXNlIERvY3VtZW50TWF0aFJvbGU6CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50TWF0aCIpOworICAgIGNhc2UgRG9jdW1l
bnROb3RlUm9sZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklB
RG9jdW1lbnROb3RlIik7CisgICAgY2FzZSBEb2N1bWVudFJlZ2lvblJvbGU6CisgICAgICAgIHJl
dHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50UmVnaW9uIik7CisgICAg
Y2FzZSBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250
ZW50R3JvdXBUZXh0KEAiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIik7CisgICAgY2FzZSBUYWJQ
YW5lbFJvbGU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQVRh
YlBhbmVsIik7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9Cit9CisK
IC8vIFRoaXMgaXMgc2V0IGJ5IERSVCB3aGVuIGl0IHdhbnRzIHRvIGxpc3RlbiBmb3Igbm90aWZp
Y2F0aW9ucy4KIHN0YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zOwogKyAodm9pZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczoo
Qk9PTClyZXBvc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
CShyZXZpc2lvbiAxNDg5NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTg3
NSw1MSArMTg3NSwxNCBAQAogICAgIE5TU3RyaW5nKiBheFJvbGUgPSBbc2VsZiByb2xlXTsKICAg
ICAKICAgICBpZiAoW2F4Um9sZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlXSkgeworICAgICAgICAKKyAgICAgICAgTlNTdHJpbmcgKmFyaWFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbiA9IFtzZWxmIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbl07CisgICAgICAgIGlm
IChhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24pCisgICAgICAgICAgICByZXR1cm4gYXJpYUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uOworICAgICAgICAKICAgICAgICAgc3dpdGNoIChtX29iamVj
dC0+cm9sZVZhbHVlKCkpIHsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbihOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUsIFtzZWxmIHN1YnJvbGVdKTsKLSAgICAgICAgICAgIGNhc2UgTGFuZG1hcmtBcHBsaWNh
dGlvblJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBTGFuZG1hcmtBcHBsaWNhdGlvbiIpOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFya0Jh
bm5lclJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBTGFuZG1hcmtCYW5uZXIiKTsKLSAgICAgICAgICAgIGNhc2UgTGFuZG1hcmtDb21wbGVt
ZW50YXJ5Um9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4
dChAIkFSSUFMYW5kbWFya0NvbXBsZW1lbnRhcnkiKTsKLSAgICAgICAgICAgIGNhc2UgTGFuZG1h
cmtDb250ZW50SW5mb1JvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRH
cm91cFRleHQoQCJBUklBTGFuZG1hcmtDb250ZW50SW5mbyIpOwotICAgICAgICAgICAgY2FzZSBM
YW5kbWFya01haW5Sb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3Jv
dXBUZXh0KEAiQVJJQUxhbmRtYXJrTWFpbiIpOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFya05h
dmlnYXRpb25Sb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBU
ZXh0KEAiQVJJQUxhbmRtYXJrTmF2aWdhdGlvbiIpOwotICAgICAgICAgICAgY2FzZSBMYW5kbWFy
a1NlYXJjaFJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoQCJBUklBTGFuZG1hcmtTZWFyY2giKTsKLSAgICAgICAgICAgIGNhc2UgQXBwbGljYXRpb25B
bGVydFJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBQXBwbGljYXRpb25BbGVydCIpOwotICAgICAgICAgICAgY2FzZSBBcHBsaWNhdGlvbkFs
ZXJ0RGlhbG9nUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dChAIkFSSUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIik7Ci0gICAgICAgICAgICBjYXNlIEFw
cGxpY2F0aW9uRGlhbG9nUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVu
dEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkRpYWxvZyIpOwotICAgICAgICAgICAgY2FzZSBB
cHBsaWNhdGlvbkxvZ1JvbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRH
cm91cFRleHQoQCJBUklBQXBwbGljYXRpb25Mb2ciKTsKLSAgICAgICAgICAgIGNhc2UgQXBwbGlj
YXRpb25NYXJxdWVlUm9sZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdy
b3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbk1hcnF1ZWUiKTsKLSAgICAgICAgICAgIGNhc2UgQXBw
bGljYXRpb25TdGF0dXNSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIik7Ci0gICAgICAgICAgICBjYXNlIEFw
cGxpY2F0aW9uVGltZXJSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uVGltZXIiKTsKLSAgICAgICAgICAgIGNhc2UgRG9j
dW1lbnRSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0
KEAiQVJJQURvY3VtZW50Iik7Ci0gICAgICAgICAgICBjYXNlIERvY3VtZW50QXJ0aWNsZVJvbGU6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9j
dW1lbnRBcnRpY2xlIik7Ci0gICAgICAgICAgICBjYXNlIERvY3VtZW50TWF0aFJvbGU6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnRN
YXRoIik7Ci0gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm90ZVJvbGU6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnROb3RlIik7Ci0g
ICAgICAgICAgICBjYXNlIERvY3VtZW50UmVnaW9uUm9sZToKLSAgICAgICAgICAgICAgICByZXR1
cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudFJlZ2lvbiIpOwotICAgICAg
ICAgICAgY2FzZSBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGU6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBVXNlckludGVyZmFjZVRvb2x0aXAiKTsK
LSAgICAgICAgICAgIGNhc2UgVGFiUGFuZWxSb2xlOgotICAgICAgICAgICAgICAgIHJldHVybiBB
WEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQVRhYlBhbmVsIik7CiAgICAgICAgICAgICBjYXNl
IERlZmluaXRpb25Sb2xlOgogICAgICAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0
KCk7CiAgICAgICAgICAgICBjYXNlIERlc2NyaXB0aW9uTGlzdFRlcm1Sb2xlOgpJbmRleDogU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgJKHJldmlzaW9uIDE0ODk3NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw4IEBACiAtIChOU1N0cmlu
ZyAqKWFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbjsKIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0
eUhlbHBUZXh0OwogCistIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsK
KwogLSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdo
ZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCiAtICh2b2lk
KWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9u
TmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCShyZXZp
c2lvbiAxNDg5NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzEyLDE5ICs3
MTIsMzYgQEAKICAgICAvLyBzbyBjb25jYXRlbnRhdGlvbiB3aWxsIHlpZWxkIHRoZSBiZXN0IHJl
c3VsdC4KICAgICBOU1N0cmluZyAqYXhUaXRsZSA9IFtzZWxmIGFjY2Vzc2liaWxpdHlUaXRsZV07
CiAgICAgTlNTdHJpbmcgKmF4RGVzY3JpcHRpb24gPSBbc2VsZiBhY2Nlc3NpYmlsaXR5RGVzY3Jp
cHRpb25dOwotICAgIE5TVUludGVnZXIgYXhUaXRsZUxlbmd0aCA9IFtheFRpdGxlIGxlbmd0aF07
Ci0gICAgTlNVSW50ZWdlciBheERlc2NyaXB0aW9uTGVuZ3RoID0gW2F4RGVzY3JpcHRpb24gbGVu
Z3RoXTsKKyAgICBOU1N0cmluZyAqbGFuZG1hcmtEZXNjcmlwdGlvbiA9IFtzZWxmIGFyaWFMYW5k
bWFya1JvbGVEZXNjcmlwdGlvbl07CisKKyAgICBOU011dGFibGVTdHJpbmcgKnJlc3VsdCA9IFtO
U011dGFibGVTdHJpbmcgc3RyaW5nXTsKKyAgICBpZiAoW2F4VGl0bGUgbGVuZ3RoXSkKKyAgICAg
ICAgW3Jlc3VsdCBhcHBlbmRTdHJpbmc6YXhUaXRsZV07CiAgICAgCi0gICAgaWYgKGF4VGl0bGVM
ZW5ndGggJiYgYXhEZXNjcmlwdGlvbkxlbmd0aCkKLSAgICAgICAgcmV0dXJuIFtheFRpdGxlIHN0
cmluZ0J5QXBwZW5kaW5nRm9ybWF0OkAiLCAlQCIsIGF4RGVzY3JpcHRpb25dOwotICAgIGVsc2Ug
aWYgKGF4VGl0bGVMZW5ndGgpCi0gICAgICAgIHJldHVybiBheFRpdGxlOwotICAgIGVsc2UgaWYg
KGF4RGVzY3JpcHRpb25MZW5ndGgpCi0gICAgICAgIHJldHVybiBheERlc2NyaXB0aW9uOwotICAg
IGVsc2UgaWYgKFtzZWxmIHN0cmluZ1ZhbHVlU2hvdWxkQmVVc2VkSW5MYWJlbF0pCi0gICAgICAg
IHJldHVybiBtX29iamVjdC0+c3RyaW5nVmFsdWUoKTsKKyAgICBpZiAoW2F4RGVzY3JpcHRpb24g
bGVuZ3RoXSkgeworICAgICAgICBpZiAoW3Jlc3VsdCBsZW5ndGhdKQorICAgICAgICAgICAgW3Jl
c3VsdCBhcHBlbmRTdHJpbmc6QCIsICJdOworICAgICAgICBbcmVzdWx0IGFwcGVuZFN0cmluZzph
eERlc2NyaXB0aW9uXTsKKyAgICB9CiAgICAgCi0gICAgcmV0dXJuIG5pbDsKKyAgICBpZiAoW3Nl
bGYgc3RyaW5nVmFsdWVTaG91bGRCZVVzZWRJbkxhYmVsXSkgeworICAgICAgICBOU1N0cmluZyAq
dmFsdWVMYWJlbCA9IG1fb2JqZWN0LT5zdHJpbmdWYWx1ZSgpOworICAgICAgICB2YWx1ZUxhYmVs
ID0gW3ZhbHVlTGFiZWwgc3RyaW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0
ZXJTZXQgd2hpdGVzcGFjZUNoYXJhY3RlclNldF1dOworICAgICAgICAKKyAgICAgICAgaWYgKFt2
YWx1ZUxhYmVsIGxlbmd0aF0pIHsKKyAgICAgICAgICAgIGlmIChbcmVzdWx0IGxlbmd0aF0pCisg
ICAgICAgICAgICAgICAgW3Jlc3VsdCBhcHBlbmRTdHJpbmc6QCIsICJdOworICAgICAgICAgICAg
W3Jlc3VsdCBhcHBlbmRTdHJpbmc6dmFsdWVMYWJlbF07CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoW2xhbmRtYXJrRGVzY3JpcHRpb24gbGVuZ3RoXSkgeworICAgICAgICBpZiAoW3Jlc3Vs
dCBsZW5ndGhdKQorICAgICAgICAgICAgW3Jlc3VsdCBhcHBlbmRTdHJpbmc6QCIsICJdOworICAg
ICAgICBbcmVzdWx0IGFwcGVuZFN0cmluZzpsYW5kbWFya0Rlc2NyaXB0aW9uXTsKKyAgICB9CisK
KyAgICByZXR1cm4gKFtyZXN1bHQgbGVuZ3RoXSkgPyByZXN1bHQgOiBuaWw7CiB9CiAKIC0gKEFj
Y2Vzc2liaWxpdHlUYWJsZUNlbGwqKXRhYmxlQ2VsbFBhcmVudApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTQ4OTk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTMtMDQtMjMgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogV0FJLUFSSUEgbGFuZG1hcmtzIG5vIGxvbmdlciBzcGVhayB0eXBl
IG9mIGxhbmRtYXJrIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE0NTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvbGFu
ZG1hcmstdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lwaG9u
ZS1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9sYW5kbWFyay10eXBlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9saW5rLXdpdGgt
aW1hZ2VzLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lwaG9uZS1zaW11
bGF0b3IvYWNjZXNzaWJpbGl0eS9saW5rLXdpdGgtaW1hZ2VzLXRleHQuaHRtbDoKKyAgICAgICAg
ICAgICBNaW5vciBjaGFuZ2UgdG8gYWNjb21vZGF0ZSB0cmltbWluZyBvZiB3aGl0ZSBzcGFjZS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvbWF0aC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vaXBob25lLXNpbXVsYXRvci9hY2Nlc3Np
YmlsaXR5L21hdGguaHRtbDoKKyAgICAgICAgICAgICBNYXRoIG9iamVjdHMgbm93IGluY2x1ZGUg
Im1hdGgiIGFzIHRoZSBsYW5kbWFyayB0eXBlLgorCiAyMDEzLTA0LTIzICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGNyZWF0ZSBjb21wb3Np
dGluZyBsYXllcnMgZm9yIHN0aWNreSBwb3NpdGlvbiB1bmxlc3MgdXNpbmcgdGhlIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9y
L2FjY2Vzc2liaWxpdHkvbWF0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL2lwaG9uZS1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9tYXRoLmh0bWwJKHJldmlzaW9uIDE0
ODk3NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3IvYWNjZXNzaWJp
bGl0eS9tYXRoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc1LDEwICs3NSwxMCBAQAogICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cCIpLmZvY3VzKCk7CiAgICAgICAgdmFyIGdy
b3VwID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CiAgICAgICAgc2hv
dWxkQmUoImdyb3VwLmNoaWxkcmVuQ291bnQiLCAiNSIpOwotICAgICAgIHNob3VsZEJlKCJncm91
cC5jaGlsZEF0SW5kZXgoMCkuaXBob25lTGFiZWwiLCAiJ0FYTGFiZWw6IFJhbWFuIHNjYXR0ZXJp
bmcgc3R1ZHkgb2YgdGhlICciKTsKLSAgICAgICBzaG91bGRCZSgiZ3JvdXAuY2hpbGRBdEluZGV4
KDEpLmlwaG9uZUxhYmVsIiwgIidBWExhYmVsOiAgRiBlIHN1YiAxICBtaW51cyB4LCBlbmQgc3Vi
c2NyaXB0LiBDIG8gc3ViIHgsIFMgYiBzdWIgMiciKTsKLSAgICAgICBzaG91bGRCZSgiZ3JvdXAu
Y2hpbGRBdEluZGV4KDIpLmlwaG9uZUxhYmVsIiwgIidBWExhYmVsOiBhbmQgJyIpOwotICAgICAg
IHNob3VsZEJlKCJncm91cC5jaGlsZEF0SW5kZXgoMykuaXBob25lTGFiZWwiLCAiJ0FYTGFiZWw6
ICAgb3BlbiwgMCAgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHggIGxlc3MgdGhhbiBvciBlcXVhbCB0
byAxLCAgY2xvc2UnIik7CisgICAgICAgc2hvdWxkQmUoImdyb3VwLmNoaWxkQXRJbmRleCgwKS5p
cGhvbmVMYWJlbCIsICInQVhMYWJlbDogUmFtYW4gc2NhdHRlcmluZyBzdHVkeSBvZiB0aGUnIik7
CisgICAgICAgc2hvdWxkQmUoImdyb3VwLmNoaWxkQXRJbmRleCgxKS5pcGhvbmVMYWJlbCIsICIn
QVhMYWJlbDogIEYgZSBzdWIgMSAgbWludXMgeCwgZW5kIHN1YnNjcmlwdC4gQyBvIHN1YiB4LCBT
IGIgc3ViIDIsIG1hdGgnIik7CisgICAgICAgc2hvdWxkQmUoImdyb3VwLmNoaWxkQXRJbmRleCgy
KS5pcGhvbmVMYWJlbCIsICInQVhMYWJlbDogYW5kJyIpOworICAgICAgIHNob3VsZEJlKCJncm91
cC5jaGlsZEF0SW5kZXgoMykuaXBob25lTGFiZWwiLCAiJ0FYTGFiZWw6ICAgb3BlbiwgMCAgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIHggIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLCAgY2xvc2UsIG1h
dGgnIik7CiAgICAgICAgc2hvdWxkQmUoImdyb3VwLmNoaWxkQXRJbmRleCg0KS5pcGhvbmVMYWJl
bCIsICInQVhMYWJlbDogc2luZ2xlIGNyeXN0YWxzLiciKTsKIAogICAgICAgIHNob3VsZEJlVHJ1
ZSgiZ3JvdXAuY2hpbGRBdEluZGV4KDApLmlwaG9uZUlzRWxlbWVudCIpOwpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaXBob25lLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L2xpbmstd2l0aC1p
bWFnZXMtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lwaG9u
ZS1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9saW5rLXdpdGgtaW1hZ2VzLXRleHQuaHRtbAkocmV2
aXNpb24gMTQ4OTc0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBob25lLXNpbXVsYXRvci9h
Y2Nlc3NpYmlsaXR5L2xpbmstd2l0aC1pbWFnZXMtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBACiAKICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCk7CiAgICAgICAg
IHNob3VsZEJlKCJvYmouaXBob25lSXNFbGVtZW50IiwgInRydWUiKTsKLSAgICAgICAgc2hvdWxk
QmUoIm9iai5pcGhvbmVMYWJlbCIsICInQVhMYWJlbDogICBpUGhvbmVGcm9tICQ5OSciKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm9iai5pcGhvbmVMYWJlbCIsICInQVhMYWJlbDogIGlQaG9uZUZyb20g
JDk5JyIpOwogICAgIH0KIAogICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvbGFuZG1h
cmstdHlwZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aXBob25lLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L2xhbmRtYXJrLXR5cGUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBob25lLXNpbXVsYXRvci9h
Y2Nlc3NpYmlsaXR5L2xhbmRtYXJrLXR5cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACit0ZXh0Cit0ZXh0CitUaGlzIHRlc3RzIHRoYXQgbGFuZG1hcmtzIHJldHVy
biB0aGVpciB0eXBlIGFzIHBhcnQgb2YgdGhlIEFYIGxhYmVsLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBtYWluLmlwaG9uZUxhYmVsIGlzICdBWExhYmVsOiBtYWluJwor
UEFTUyBiYW5uZXIuaXBob25lTGFiZWwgaXMgJ0FYTGFiZWw6IGJhbm5lcicKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvbGFuZG1hcmstdHlwZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3Iv
YWNjZXNzaWJpbGl0eS9sYW5kbWFyay10eXBlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pcGhvbmUtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvbGFuZG1hcmstdHlw
ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxz
ZTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJvbGU9Im1h
aW4iIGlkPSJtYWluIj4KK3RleHQKKzwvZGl2PgorCis8ZGl2IHJvbGU9ImJhbm5lciIgaWQ9ImJh
bm5lciI+Cit0ZXh0Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3RzIHRoYXQgbGFuZG1hcmtzIHJldHVybiB0aGVpciB0eXBlIGFzIHBhcnQgb2YgdGhlIEFYIGxh
YmVsLiIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisg
ICAgICAgIHZhciBtYWluID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJtYWluIik7CisgICAgICAgIHNob3VsZEJlKCJtYWluLmlwaG9uZUxhYmVsIiwgIidB
WExhYmVsOiBtYWluJyIpOworCisgICAgICAgIHZhciBiYW5uZXIgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJhbm5lciIpOworICAgICAgICBzaG91bGRC
ZSgiYmFubmVyLmlwaG9uZUxhYmVsIiwgIidBWExhYmVsOiBiYW5uZXInIik7CisgICAgfQorCisg
ICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBob25lLXNpbXVs
YXRvci9hY2Nlc3NpYmlsaXR5L21hdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9tYXRoLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTQ4OTc0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBob25l
LXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L21hdGgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xNywxMCArMTcsMTAgQEAKIAogCiBQQVNTIGdyb3VwLmNoaWxkcmVuQ291bnQgaXMgNQot
UEFTUyBncm91cC5jaGlsZEF0SW5kZXgoMCkuaXBob25lTGFiZWwgaXMgJ0FYTGFiZWw6IFJhbWFu
IHNjYXR0ZXJpbmcgc3R1ZHkgb2YgdGhlICcKLVBBU1MgZ3JvdXAuY2hpbGRBdEluZGV4KDEpLmlw
aG9uZUxhYmVsIGlzICdBWExhYmVsOiAgRiBlIHN1YiAxICBtaW51cyB4LCBlbmQgc3Vic2NyaXB0
LiBDIG8gc3ViIHgsIFMgYiBzdWIgMicKLVBBU1MgZ3JvdXAuY2hpbGRBdEluZGV4KDIpLmlwaG9u
ZUxhYmVsIGlzICdBWExhYmVsOiBhbmQgJwotUEFTUyBncm91cC5jaGlsZEF0SW5kZXgoMykuaXBo
b25lTGFiZWwgaXMgJ0FYTGFiZWw6ICAgb3BlbiwgMCAgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHgg
IGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLCAgY2xvc2UnCitQQVNTIGdyb3VwLmNoaWxkQXRJbmRl
eCgwKS5pcGhvbmVMYWJlbCBpcyAnQVhMYWJlbDogUmFtYW4gc2NhdHRlcmluZyBzdHVkeSBvZiB0
aGUnCitQQVNTIGdyb3VwLmNoaWxkQXRJbmRleCgxKS5pcGhvbmVMYWJlbCBpcyAnQVhMYWJlbDog
IEYgZSBzdWIgMSAgbWludXMgeCwgZW5kIHN1YnNjcmlwdC4gQyBvIHN1YiB4LCBTIGIgc3ViIDIs
IG1hdGgnCitQQVNTIGdyb3VwLmNoaWxkQXRJbmRleCgyKS5pcGhvbmVMYWJlbCBpcyAnQVhMYWJl
bDogYW5kJworUEFTUyBncm91cC5jaGlsZEF0SW5kZXgoMykuaXBob25lTGFiZWwgaXMgJ0FYTGFi
ZWw6ICAgb3BlbiwgMCAgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHggIGxlc3MgdGhhbiBvciBlcXVh
bCB0byAxLCAgY2xvc2UsIG1hdGgnCiBQQVNTIGdyb3VwLmNoaWxkQXRJbmRleCg0KS5pcGhvbmVM
YWJlbCBpcyAnQVhMYWJlbDogc2luZ2xlIGNyeXN0YWxzLicKIFBBU1MgZ3JvdXAuY2hpbGRBdElu
ZGV4KDApLmlwaG9uZUlzRWxlbWVudCBpcyB0cnVlCiBQQVNTIGdyb3VwLmNoaWxkQXRJbmRleCgx
KS5pcGhvbmVJc0VsZW1lbnQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBo
b25lLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L2xpbmstd2l0aC1pbWFnZXMtdGV4dC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaXBob25lLXNpbXVsYXRv
ci9hY2Nlc3NpYmlsaXR5L2xpbmstd2l0aC1pbWFnZXMtdGV4dC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE0ODk3NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lwaG9uZS1zaW11bGF0b3IvYWNj
ZXNzaWJpbGl0eS9saW5rLXdpdGgtaW1hZ2VzLXRleHQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC01LDcgKzUsNyBAQAogCiAKIFBBU1Mgb2JqLmlwaG9uZUlzRWxlbWVudCBpcyB0cnVl
Ci1QQVNTIG9iai5pcGhvbmVMYWJlbCBpcyAnQVhMYWJlbDogICBpUGhvbmVGcm9tICQ5OScKK1BB
U1Mgb2JqLmlwaG9uZUxhYmVsIGlzICdBWExhYmVsOiAgaVBob25lRnJvbSAkOTknCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>
<flag name="review"
          id="220929"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>