X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@lists.alpinelinux.org Received: from mail-bw0-f163.google.com (mail-bw0-f163.google.com [209.85.218.163]) by lists.alpinelinux.org (Postfix) with ESMTP id 566EC17005F2C for ; Mon, 9 Feb 2009 09:48:22 +0000 (UTC) Received: by bwz7 with SMTP id 7so1248050bwz.1 for ; Mon, 09 Feb 2009 01:48:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=41YClekPttMm3r8SGwYd0T0zQD/5gsZhJmhffteeq2M=; b=Z/FbhtF3duUamp2hxQh7KH30pdUURAWb39RCqRfvWHaaTu7wQMpIdGZFOm7e26nwSP KXsuVtpST6FXlWu5fjDGd1+pPu8IEdbqENc6ZO8YpnrPM6oaeyQ4kAYMeGbNPn91xp8K eB5rASSjtkAz4e5sEcOQNFro9aXcqaJrEOAEU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=p5hgZJY5tY6qR1jlQvQCzEuk/J94BnJ17Gm8m1x2hAjLNc5RrUeuU7Tj47tM1FAIyS 0CX62KM3JPxVFtea2LD0yqsYFZwnCSjoeq3LsTsNCw10OZ1pjLRk1XWHEX1DHFb8bLUl 5TnG80Sx6kqiQqBykxQ/qK8CcV+SqBGmKpTMw= X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Received: by 10.181.152.14 with SMTP id e14mr1754497bko.189.1234172899498; Mon, 09 Feb 2009 01:48:19 -0800 (PST) In-Reply-To: References: Date: Mon, 9 Feb 2009 12:48:19 +0300 Message-ID: Subject: [alpine-devel] Quality of Service From: Ilya Strelkin To: alpine-devel@lists.alpinelinux.org Content-Type: multipart/mixed; boundary=00163662e5c6441a590462794598 --00163662e5c6441a590462794598 Content-Type: multipart/alternative; boundary=00163662e5c6441a520462794596 --00163662e5c6441a520462794596 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi ! I am posting the alpha version of startup script to run the QoS at Alpine router. This script uses iproute2 tc (traffic control) tool and has the separate configuration file. The detailed documentation that discusses Quality of Service mechanisms will be posted soon to the Documentation section of wiki.alpinelinux.org. Technical Details: 1. Installation: - The attached file init-d-qos is the startup script, should be placed as /etc/init.d/qos. - The attached file conf-d-qos is the configuration file; should be placed as /etc/conf.d/qos 2. Startup: - Check which traffic control actions will be taken with '/etc/init.d/qos compile' - Start QoS with '/etc/init.d/qos start' - Check status with '/etc/init.d/qos status' - If ok then make startup link with 'rc_add qos' or add appropriate "up" references into /etc/network/interfaces file 3. Main Idea: The iproute2 tc tool is used. Setting rate about 5-10% less than real we try to control queue at the Router side. A data stream is being controlled by means EGRESS shaping or/and INGRESS policing 4. Supported Queuing Disciplines: At root level HTB, HFSC, PRIO queuing disciplines are supported, for leafs PFIFO, SFQ, RED queuing disciplines are supported 5. Supported QoS Schemes: EGRESS - HFSC or HTB # HFSC is good with latency control, HTB is good with bursts control | \ Interactive (guarantee: 20%) PFIFO # no packet reordering due to VoIP RTP | \ Privileged (guarantee: 50%, sharing up to 100%) PFIFO # no packet reordering due to RTP and IPSEC | \ Best-Effort (guarantee: 30%, sharing up to 100% if not used by Privileged) SFQ or RED # Fair Queuing or Random Early Detection (>10mbit/sec links) EGRESS - PRIO # for variable or unknown rates | \ Interactive (guarantee: 20%) TBF # ultimate priority for interactive traffic | \ HTB | \ Privileged (guarantee: 50%, sharing up to 100%) PFIFO # no packet reordering due to VoIP RTP and IPSEC | \ Best-Effort (guarantee: 30%, sharing up to 100% if not used by Privileged) SFQ or RED # Fair Queuing or Random Early Detection (>10mbit/sec links) INGRESS | \ Interactive traffic policing (20%) then CONTINUE action | \ Privileged traffic policing (50%) then CONTINUE action | \ Best-Effort traffic policing (30%) then DROP action 6. Default Schema and Traffic Classification (may be changed according to custom needs): up-link - HFSC, down-link - HTB, Interactive (PFIFO): ACK, payload <64 bytes; ICMP, UDP, TOS: 0x10, 0x18, 0xb8 Privileged (PFIFO): SSH, BGP, RDP, AH, ESP, TOS: 0x88 Best-Effort (SFQ): Any other unclassified traffic 7. To do list: 1. multiple WAN interface support 2. code optimizations/refinements, bug fixes 3. monitoring tools 4. ...Any suggestions are very welcome... Ilya S. --00163662e5c6441a520462794596 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi !

I am posting the alpha version of st= artup script to run the QoS at Alpine router.
   This script u= ses iproute2 tc (traffic control) tool and has the separate configuration f= ile.
   The detailed documentation that discusses Quality of S= ervice mechanisms will be posted soon to the Documentation section of wiki.alpinelinux.org.

Technical Details:

1. Installation:

   - The at= tached file init-d-qos is the startup script, should be placed as /etc/init= .d/qos.
   - The attached file conf-d-qos is the configuration= file; should be placed as /etc/conf.d/qos
 
2. Startup:

   - Check which traffic control act= ions will be taken with '/etc/init.d/qos compile'
   -= Start QoS with '/etc/init.d/qos start'
   - Check sta= tus with '/etc/init.d/qos status'
   - If ok then make startup link with 'rc_add qos' or ad= d appropriate "up" references into /etc/network/interfaces file   
3. Main Idea:

   The iproute2 tc tool is= used. Setting rate about 5-10% less than real we try to control queue at t= he Router side.
   A data stream is being controlled by means = EGRESS shaping or/and INGRESS policing

4. Supported Queuing Disciplines:

   At root level HTB= , HFSC, PRIO queuing disciplines are supported,
    =   for leafs PFIFO, SFQ, RED queuing disciplines are supported

5= . Supported QoS Schemes:

   EGRESS - HFSC or HTB # HFSC is good with latency control, HTB = is good with bursts control
      |
       \ Interactiv= e (guarantee: 20%) PFIFO   # no packet reordering due to VoIP RTP=
      |
       \ Privileged = ; (guarantee: 50%, sharing up to 100%) PFIFO   # no packet reorde= ring due to RTP and IPSEC
      |
       \ Best-Effort (guarant= ee: 30%, sharing up to 100% if not used by Privileged) SFQ or RED # Fair Qu= euing or Random Early Detection (>10mbit/sec links)

   = EGRESS - PRIO   # for variable or unknown rates
      |
       \ Interactive (guarantee: 20%) TBF # u= ltimate priority for interactive traffic
      |
       \ HTB
      &nb= sp;    |
        =     \ Privileged  (guarantee: 50%, sharing up to 100%) = PFIFO # no packet reordering due to VoIP RTP and IPSEC
           |
            \ Best-Effort (gua= rantee: 30%, sharing up to 100% if not used by Privileged) SFQ or RED # Fa= ir Queuing or Random Early Detection (>10mbit/sec links)

 &n= bsp; INGRESS
      |
   &nbs= p;   \ Interactive traffic policing (20%) then CONTINUE action       |
       \ Privileged traffic policing (50%) th= en CONTINUE action
      |
       \ Best-Effort traffic policing (30%) t= hen DROP action

6. Default Schema and Traffic Classification (may be changed according = to custom needs):

   up-link - HFSC, down-link - HTB,
=
   Interactive (PFIFO): ACK, payload <64 bytes; ICMP, UDP,= TOS: 0x10, 0x18, 0xb8
   Privileged (PFIFO): SSH, BGP, RDP, AH, ESP, TOS: 0x88
 = ;  Best-Effort (SFQ): Any other unclassified traffic


7. To = do list:

   1. multiple WAN interface support
 &nb= sp; 2. code optimizations/refinements, bug fixes
   3. monitoring tools
   4. ...Any suggestions are = very welcome...

Ilya S.





--00163662e5c6441a520462794596-- --00163662e5c6441a590462794598 Content-Type: application/octet-stream; name=init-d-qos Content-Disposition: attachment; filename=init-d-qos Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqywa3t01 IyEvc2Jpbi9ydW5zY3JpcHQKIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwojIFRyYWZmaWMgQ29udHJvbCBzdGFydHVwIHNjcmlwdAojCiMgQ29weXJp Z2h0IChjKSAyMDA5IGlpbGx1emlvbgojCiMgRGlzdHJpYnV0ZWQgdW5kZXIgR1BMLTIKIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKClBST0dSQU09cW9z CkNPTkZJRz0vZXRjL2NvbmYuZC9xb3MKREVCVUc9MCAjMQoKb3B0cz0iY29tcGlsZSIKCmRlcGVu ZCgpIAp7CgluZWVkIG5ldAp9CgpjaGVja2NvbmZpZygpIHsKCWlmIFsgISAtZSAkQ09ORklHIF0g OyB0aGVuCgkJZWVycm9yICJZb3UgbmVlZCB0byBjcmVhdGUgJENPTkZJRyBmaXJzdC4iCglyZXR1 cm4gMQoJZmkKfQoKdXNhZ2UoKQp7CgllY2hvICJ1c2FnZTogJFBST0dSQU0gW3N0YXR1c3xjb21w aWxlfHN0YXJ0fHN0b3B8cmVzdGFydF0iCgllY2hvICIgICBzdGF0dXM6ICBWaWV3IHN0YXRpc3Rp Y3MiCgllY2hvICIgICBjb21waWxlOiBHZW5lcmF0ZSB0cmFmZmljIGNvbnRyb2wgY29tbWFuZHMi CgllY2hvICIgICBzdGFydDogICBTdGFydCB0cmFmZmljIGNvbnRyb2wiCgllY2hvICIgICBzdG9w OiAgICBTdG9wIHRyYWZmaWMgY29udHJvbCIKCWVjaG8gIiAgIHJlc3RhcnQ6IFJlc3RhcnQgdHJh ZmZpYyBjb250cm9sIgp9Cgpjb25maWd1cmUoKQp7Cglzb3VyY2UgJENPTkZJRyAkMQp9CgpyZXNl dCgpCnsKCWZvciBERVYgaW4gJERFVklDRVM7IGRvCgkJdGMgcWRpc2Mgc2hvdyBkZXYgJERFViB8 IGdyZXAgLXYgInBmaWZvX2Zhc3QiIHwgZWdyZXAgLXEgIiRRRElTQ1MiICYmICRFQ0hPIHRjIHFk aXNjIGRlbCBkZXYgJERFViByb290CgkJdGMgcWRpc2Mgc2hvdyBkZXYgJERFViB8IGdyZXAgLXYg InBmaWZvX2Zhc3QiIHwgZ3JlcCAgLXEgaW5ncmVzcyAmJiAkRUNITyB0YyBxZGlzYyBkZWwgZGV2 ICRERVYgaW5ncmVzcwoJZG9uZQp9CgpzZXRfbGVhZl9xZGlzYygpCnsKCURFVj0kMQoJUEFSRU5U X0NMQVNTSUQ9JDIKCQlQQVJFTlRfQ0xBU1NJRD0ke1BBUkVOVF9DTEFTU0lEOi0xfQoKCWlmIFsg ISAiJFFESVNDX0NNRCIgPSAicHJpbyIgXTsgdGhlbiAKCQkkRUNITyB0YyBxZGlzYyBhZGQgZGV2 ICRERVYgcGFyZW50ICRQQVJFTlRfQ0xBU1NJRDo0MCBoYW5kbGUgNDAgJElOVEVSQUNUSVZFX0xF QUZfUURJU0MKCWZpCgoJJEVDSE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHBhcmVudCAkUEFSRU5U X0NMQVNTSUQ6NTAgaGFuZGxlIDUwICRQUklWSUxFR0VEX0xFQUZfUURJU0MKCSRFQ0hPIHRjIHFk aXNjIGFkZCBkZXYgJERFViBwYXJlbnQgJFBBUkVOVF9DTEFTU0lEOjYwIGhhbmRsZSA2MCAkQkVT VEVGRk9SVF9MRUFGX1FESVNDCgoJaWYgWyAkRElSRUNUSU9OID0gIkRPV04iIF07IHRoZW4gCgkJ JEVDSE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHBhcmVudCAkUEFSRU5UX0NMQVNTSUQ6NzAgaGFu ZGxlIDcwICRMQU5fTEVBRl9RRElTQwoJZmkKCgkkRUNITwp9CgpzZXRfZmlsdGVycygpCnsKCUNM QVNTX1RZUEVTPSJJTlRFUkFDVElWRSBQUklWSUxFR0VEIEJFU1RFRkZPUlQiCgkJaWYgWyAkRElS RUNUSU9OID0gIkRPV04iIF07IHRoZW4KCQkJQ0xBU1NfVFlQRVM9JENMQVNTX1RZUEVTIiBMQU4i CgkJZmkgCgoJCVBSSVZJTEVHRURfRklMVEVSX0ZMT1dJRD01MAoJCUJFU1RFRkZPUlRfRklMVEVS X0ZMT1dJRD02MAoJCUxBTl9GSUxURVJfRkxPV0lEPTcwCgoJZm9yIERFViBpbiAkREVWSUNFUzsg ZG8KCQlmb3IgQ0xBU1NfVFlQRSBpbiAkQ0xBU1NfVFlQRVM7IGRvCgkJCWlmIFsgIiRRRElTQ19D TUQiID0gInByaW8iIC1hICIkQ0xBU1NfVFlQRSIgPSAiSU5URVJBQ1RJVkUiIF07IHRoZW4KCQkJ CVBBUkVOVF9DTEFTU0lEPTEKCQkJCUlOVEVSQUNUSVZFX0ZJTFRFUl9GTE9XSUQ9MQoJCQllbHNl CgkJCQlQQVJFTlRfQ0xBU1NJRD0kMQoJCQkJCVBBUkVOVF9DTEFTU0lEPSR7UEFSRU5UX0NMQVNT SUQ6LTF9CgkJCQlJTlRFUkFDVElWRV9GSUxURVJfRkxPV0lEPTQwCgkJCWZpCgoJCQlmb3IgRklM VEVSX05VTSBpbiBgc2VxIDEgMTAwYDsgZG8KCQkJCWV2YWwgRklMVEVSPSJcJCRDTEFTU19UWVBF Il9GSUxURVJfJEZJTFRFUl9OVU0KCQkJCQlbIC16ICIkRklMVEVSIiBdICYmIGJyZWFrCgkJCQll dmFsIEZJTFRFUl9GTE9XSUQ9IlwkJENMQVNTX1RZUEUiX0ZJTFRFUl9GTE9XSUQKCQkJCQkkRUNI TyB0YyBmaWx0ZXIgYWRkIGRldiAkREVWIHBhcmVudCAkUEFSRU5UX0NMQVNTSUQ6MCAkRklMVEVS IGZsb3dpZCAkUEFSRU5UX0NMQVNTSUQ6JEZJTFRFUl9GTE9XSUQKCQkJZG9uZQoJCWRvbmUKCgkJ JEVDSE8KCWRvbmUKfQoKc2V0X2h0YigpCnsKCWZvciBERVYgaW4gJERFVklDRVM7IGRvCgkJJEVD SE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHJvb3QgaGFuZGxlIDEgaHRiIGRlZmF1bHQgNjAKCQkJ JEVDSE8gdGMgY2xhc3MgYWRkIGRldiAkREVWIHBhcmVudCAxOiBjbGFzc2lkIDE6MiBodGIgcmF0 ZSAkTEFOX1JBVEUKCQkJCSRFQ0hPIHRjIGNsYXNzIGFkZCBkZXYgJERFViBwYXJlbnQgMToyIGNs YXNzaWQgMTozMCBodGIgcmF0ZSAkV0FOX1NVQl9SQVRFCgkJCQkJJEVDSE8gdGMgY2xhc3MgYWRk IGRldiAkREVWIHBhcmVudCAxOjMwIGNsYXNzaWQgMTo0MCBodGIgcmF0ZSAkSU5URVJBQ1RJVkVf UkFURSBwcmlvIDEKCQkJCQkkRUNITyB0YyBjbGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6MzAg Y2xhc3NpZCAxOjUwIGh0YiByYXRlICRQUklWSUxFR0VEX1JBVEUgY2VpbCAkV0FOX1NVQl9SQVRF IHByaW8gMwoJCSAgICAJCQkkRUNITyB0YyBjbGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6MzAg Y2xhc3NpZCAxOjYwIGh0YiByYXRlICRCRVNURUZGT1JUX1JBVEUgY2VpbCAkV0FOX1NVQl9SQVRF IHByaW8gNgoKCQkJCWlmIFsgJERJUkVDVElPTiA9ICJET1dOIiBdOyB0aGVuIAoJCQkJCSRFQ0hP IHRjIGNsYXNzIGFkZCBkZXYgJERFViBwYXJlbnQgMToyIGNsYXNzaWQgMTo3MCBodGIgcmF0ZSAk T1VUX09GX1dBTl9SQVRFIHByaW8gNwoJCQkJZmkKCQoJCXNldF9sZWFmX3FkaXNjICRERVYKCgkJ JEVDSE8KCWRvbmUKCglzZXRfZmlsdGVycwp9CgpzZXRfaGZzYygpCnsKCWZvciBERVYgaW4gJERF VklDRVM7IGRvCgkJJEVDSE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHJvb3QgaGFuZGxlIDEgaGZz YyBkZWZhdWx0IDYwCiAJCQkkRUNITyB0YyBjbGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6IGNs YXNzaWQgMToyIGhmc2Mgc2MgcmF0ZSAkTEFOX1JBVEUgdWwgcmF0ZSAkTEFOX1JBVEUKCQkJCSRF Q0hPIHRjIGNsYXNzIGFkZCBkZXYgJERFViBwYXJlbnQgMToyIGNsYXNzaWQgMTozMCBoZnNjIHNj IHJhdGUgJFdBTl9TVUJfUkFURSB1bCByYXRlICRXQU5fU1VCX1JBVEUKCQkJCQkkRUNITyB0YyBj bGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6MzAgY2xhc3NpZCAxOjQwIGhmc2Mgc2MgdW1heCAk SU5URVJBQ1RJVkVfSEZTQ19VTUFYIGRtYXggJElOVEVSQUNUSVZFX0hGU0NfRE1BWCByYXRlICRJ TlRFUkFDVElWRV9SQVRFIHVsIHJhdGUgJElOVEVSQUNUSVZFX1JBVEUKCQkJCQkkRUNITyB0YyBj bGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6MzAgY2xhc3NpZCAxOjUwIGhmc2Mgc2MgdW1heCAk UFJJVklMRUdFRF9IRlNDX1VNQVggZG1heCAkUFJJVklMRUdFRF9IRlNDX0RNQVggcmF0ZSAkUFJJ VklMRUdFRF9SQVRFIHVsIHJhdGUgJFdBTl9TVUJfUkFURQoJCQkJCSRFQ0hPIHRjIGNsYXNzIGFk ZCBkZXYgJERFViBwYXJlbnQgMTozMCBjbGFzc2lkIDE6NjAgaGZzYyBzYyByYXRlICRCRVNURUZG T1JUX1JBVEUgdWwgcmF0ZSAkV0FOX1NVQl9SQVRFCgoJCQkJaWYgWyAkRElSRUNUSU9OID0gIkRP V04iIF07IHRoZW4KCQkJCQkkRUNITyB0YyBjbGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDE6MiBj bGFzc2lkIDE6NzAgaGZzYyBzYyByYXRlICRPVVRfT0ZfV0FOX1JBVEUgdWwgcmF0ZSAkT1VUX09G X1dBTl9SQVRFCgkJCQlmaQoKCQlzZXRfbGVhZl9xZGlzYyAkREVWCgoJCSRFQ0hPCglkb25lCgoJ c2V0X2ZpbHRlcnMKfQoKc2V0X3ByaW8oKQp7CglQQVJFTlRfQ0xBU1NJRD0xMAoJZm9yIERFViBp biAkREVWSUNFUzsgZG8KCQkkRUNITyB0YyBxZGlzYyBhZGQgZGV2ICRERVYgcm9vdCBoYW5kbGUg MSBwcmlvIGJhbmRzIDIgcHJpb21hcCAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxICMg YnkgZGVmYXVsdCB1bmNsYXNzaWZpZWQgdHJhZmZpYyBnb2VzIHRvIGZsb3dpZCAxOjIKCQkJJEVD SE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHBhcmVudCAxOjEgaGFuZGxlIDQwOiB0YmYgcmF0ZSAk SU5URVJBQ1RJVkVfUkFURSBidXJzdCAkSU5URVJBQ1RJVkVfUFJJT19CVVJTVCBsYXRlbmN5ICRJ TlRFUkFDVElWRV9QUklPX0xBVEVOQ1kKCQkJJEVDSE8gdGMgcWRpc2MgYWRkIGRldiAkREVWIHBh cmVudCAxOjIgaGFuZGxlICRQQVJFTlRfQ0xBU1NJRDogaHRiIGRlZmF1bHQgNjAKCQkJCSRFQ0hP IHRjIGNsYXNzIGFkZCBkZXYgJERFViBwYXJlbnQgJFBBUkVOVF9DTEFTU0lEOiBjbGFzc2lkICRQ QVJFTlRfQ0xBU1NJRDozMCBodGIgcmF0ZSAkV0FOX1NVQl9SQVRFCgkJCQkJJEVDSE8gdGMgY2xh c3MgYWRkIGRldiAkREVWIHBhcmVudCAkUEFSRU5UX0NMQVNTSUQ6MzAgY2xhc3NpZCAkUEFSRU5U X0NMQVNTSUQ6NTAgaHRiIHJhdGUgJFBSSVZJTEVHRURfUkFURSBjZWlsICRXQU5fU1VCX1JBVEUg cHJpbyAzCgkJCQkJJEVDSE8gdGMgY2xhc3MgYWRkIGRldiAkREVWIHBhcmVudCAkUEFSRU5UX0NM QVNTSUQ6MzAgY2xhc3NpZCAkUEFSRU5UX0NMQVNTSUQ6NjAgaHRiIHJhdGUgJEJFU1RFRkZPUlRf UkFURSBjZWlsICRXQU5fU1VCX1JBVEUgcHJpbyA2CgoJCQkJaWYgWyAkRElSRUNUSU9OID0gIkRP V04iIF07IHRoZW4KCQkJCQkkRUNITyB0YyBjbGFzcyBhZGQgZGV2ICRERVYgcGFyZW50IDEwOjEg Y2xhc3NpZCAkUEFSRU5UX0NMQVNTSUQ6NzAgaHRiIHJhdGUgJE9VVF9PRl9XQU5fUkFURSBwcmlv IDcKCQkJCQlmaQoKCQlzZXRfbGVhZl9xZGlzYyAkREVWICRQQVJFTlRfQ0xBU1NJRAoKCQkkRUNI TwoJZG9uZQoKCXNldF9maWx0ZXJzICRQQVJFTlRfQ0xBU1NJRAp9CgpzZXRfcG9saWNlKCkKewoJ Q0xBU1NfVFlQRVM9IklOVEVSQUNUSVZFIFBSSVZJTEVHRUQiCgkJSU5URVJBQ1RJVkVfUE9MSUNF X0ZMT1dJRD0xCgkJUFJJVklMRUdFRF9QT0xJQ0VfRkxPV0lEPTIKCglmb3IgREVWIGluICRERVZJ Q0VTOyBkbwoJCSRFQ0hPIHRjIHFkaXNjIGFkZCBkZXYgJERFViBoYW5kbGUgZmZmZjogaW5ncmVz cwoKCQlmb3IgQ0xBU1NfVFlQRSBpbiAkQ0xBU1NfVFlQRVM7IGRvCgkJCWZvciBGSUxURVJfTlVN IGluIGBzZXEgMSAxMDBgOyBkbwoJCQkJZXZhbCBGSUxURVI9IlwkJENMQVNTX1RZUEUiX0ZJTFRF Ul8kRklMVEVSX05VTQoJCQkJCVsgLXogIiRGSUxURVIiIF0gJiYgYnJlYWsKCQkJCWV2YWwgRklM VEVSX0ZMT1dJRD0iXCQkQ0xBU1NfVFlQRSJfUE9MSUNFX0ZMT1dJRAoJCQkJZXZhbCBGSUxURVJf UkFURT0iXCQkQ0xBU1NfVFlQRSJfUkFURQoJCQkJZXZhbCBGSUxURVJfQlVSU1Q9IlwkJENMQVNT X1RZUEUiX1BPTElDRV9CVVJTVAoJCQkJCSRFQ0hPIHRjIGZpbHRlciBhZGQgZGV2ICRERVYgcGFy ZW50IGZmZmY6ICRGSUxURVIgcG9saWNlIHJhdGUgJEZJTFRFUl9SQVRFIGJ1cnN0ICRGSUxURVJf QlVSU1QgY29udGludWUgZmxvd2lkICRGSUxURVJfRkxPV0lEOgoJCQlkb25lCgkJZG9uZQoKCQkk RUNITyB0YyBmaWx0ZXIgYWRkIGRldiAkREVWIHBhcmVudCBmZmZmOiBwcm90b2NvbCBpcCBwcmlv IDk5OSB1MzIgbWF0Y2ggaXAgc3JjIDAuMC4wLjAvMCBwb2xpY2UgcmF0ZSAkQkVTVEVGRk9SVF9S QVRFIGJ1cnN0ICRCRVNURUZGT1JUX1BPTElDRV9CVVJTVCBkcm9wIGZsb3dpZCA6MwogCgkJJEVD SE8KCWRvbmUKfQoKZ2V0X3N0YXRzKCkKewoJZm9yIERFViBpbiAkV0FOX0RFVklDRVMgJExBTl9E RVZJQ0VTOyBkbwoJCWVjaG8gJERFViBTdGF0aXN0aWNzCgkJZWNobwoJCWVjaG8gIiAgIENsYXNz ZXM6IgoJCWVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgoJCQkkRUNITyB0YyAtcyBj bGFzcyBzaG93IGRldiAkREVWCgoJCWVjaG8KCQllY2hvICIgICBMZWFmIFF1ZXVpbmcgRGlzY2lw bGluZXM6IgoJCWVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgoJCQkkRUNITyB0YyAt cyBxZGlzYyBzaG93IGRldiAkREVWCgoJCWVjaG8KCQllY2hvICIgICBFR1JFU1MgRmlsdGVyczoi CgkJZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCgkJCSRFQ0hPIHRjIC1zIGZpbHRl ciBzaG93IGRldiAkREVWCgkJCSRFQ0hPIHRjIC1zIGZpbHRlciBzaG93IGRldiAkREVWIHBhcmVu dCAxMDogIyBpZiBQUklPIHFkaXNjIGlzIGFwcGxpZWQKCQkKCQllY2hvCgkJZWNobyAiICAgSU5H UkVTUyBQb2xpY2luZyBGaWx0ZXJzOiIKCQllY2hvICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSIKCQkJJEVDSE8gdGMgLXMgZmlsdGVyIHNob3cgZGV2ICRERVYgcGFyZW50IGZmZmY6CgogCQll Y2hvCgkJZWNobwogCWRvbmUKfQoKY29tcGlsZSgpCnsKCURFQlVHPTEKCQoJc3RhcnQKfQoKc3Rh cnQoKQp7CgljaGVja2NvbmZpZyB8fCByZXR1cm4gMQoKCWlmIFsgJERFQlVHIC1ndCAwIF07IHRo ZW4gCgkJRUNITz0iZWNobyIKCWVsc2UKCQllYmVnaW4gIlN0YXJ0aW5nIFFvUyIKCWZpCgoJZm9y IExJTktfRElSRUNUSU9OIGluIFVQIERPV047IGRvCgkJY29uZmlndXJlICRMSU5LX0RJUkVDVElP TgoJCQlyZXNldAoKCQkJZXZhbCBRRElTQ19DTUQ9IlwkJExJTktfRElSRUNUSU9OIkxJTktfUURJ U0MKCQkJCWlmIFsgISAiJFFESVNDX0NNRCIgPSAibm9uZSIgXTsgdGhlbgoJCQkJCXNldF8kUURJ U0NfQ01ECgkJCQlmaQoKCQkJZXZhbCBJTkdSRVNTX0NNRD0iXCQkTElOS19ESVJFQ1RJT04iTElO S19JTkdSRVNTCgkJCQlpZiBbICEgIiRJTkdSRVNTX0NNRCIgPSAibm9uZSIgXTsgdGhlbgogCQkJ CQlzZXRfJElOR1JFU1NfQ01ECgkJCQlmaQoJZG9uZQoKCWlmIFsgJERFQlVHIC1lcSAwIF07IHRo ZW4KCSAJZWVuZCAkPwoJZmkKfQoKc3RvcCgpCnsKCWNoZWNrY29uZmlnIHx8IHJldHVybiAxCgoJ aWYgWyAkREVCVUcgLWd0IDAgXTsgdGhlbgoJCUVDSE89ImVjaG8iCgllbHNlCgkJZWJlZ2luICJT dG9wcGluZyBRb1MiCglmaQoKCWNvbmZpZ3VyZSBBTEwKCXJlc2V0CgoJaWYgWyAkREVCVUcgLWVx IDAgXTsgdGhlbgoJCWVlbmQgJD8KCWZpCn0KCnJlc3RhcnQoKQp7CglzdG9wCglzdGFydAp9Cgpz dGF0dXMoKQp7CglnZXRfc3RhdHMKfQo= --00163662e5c6441a590462794598 Content-Type: application/octet-stream; name=conf-d-qos Content-Disposition: attachment; filename=conf-d-qos Content-Transfer-Encoding: base64 X-Attachment-Id: f_fqywln0w1 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFRy YWZmaWMgQ29udHJvbCBjb25maWd1cmF0aW9uCiMKIyBDb3B5cmlnaHQgKGMpIDIwMDkgaWlsbHV6 aW9uCiMKIyBEaXN0cmlidXRlZCB1bmRlciBHUEwtMgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyMjIE1BSU4gQ09ORklHVVJBVElPTiBQQVJB TUVURVJTCiMjIyMKIyMjCXVwbGluayBhbmQgZG93bmxpbmsgcmF0ZXMgc2hvdWxkIGJlIHNldCB2 ZXJ5IHByZWNpc2VseQojIwlSQVRFX1NVQl9QRVJDRU5UIHNob3VsZCBiZSBzZXQgdG8gYWxsb3cg dGhlIFJvdXRlciB0byBjb250cm9sIGEgcXVldWUKIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFNwZWNpZnkgdGhlIHVwbG9hZCBzcGVlZCBvZiB5 b3VyIGludGVybmV0IGNvbm5lY3Rpb24gKGtiaXQsIG1iaXQpLgojIAlTaW5jZSBJU1BzIHRlbmQg dG8gb3ZlcmVzdGltYXRlIHRoZSBzcGVlZHMgdGhleSBvZmZlciwgaXQgd291bGQKIwkgcHJvYmFi bHkgYmUgYmVzdCBpZiB5b3UgbWVhc3VyZSB0aGlzIG9uIGEgZnJlZSBsaW5lLgojCiMjIyBVUExJ TktfUkFURT0xMjhrYml0CiMjIyBVUExJTktfUkFURT0yNTZrYml0ClVQTElOS19SQVRFPTUxMmti aXQKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoj IFNwZWNpZnkgdGhlIGRvd25sb2FkIHNwZWVkIG9mIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiAo a2JpdCwgbWJpdCkuCiMKIyMjIERPV05MSU5LX1JBVEU9MjU2a2JpdAojIyMgRE9XTkxJTktfUkFU RT01MTJrYml0CkRPV05MSU5LX1JBVEU9MTAyNGtiaXQKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEluIG9yZGVyIHRvIHByZXZlbnQgdHJhZmZp YyBxdWV1aW5nIGF0IHRoZSBJU1Agc2lkZSBvciBpbiB5b3VyIG1vZGVtLAojIHdlIHNoYXBlIHRv IGEgc2xpZ2h0bHkgbG93ZXIgcmF0ZS4gVGhpcyB3YXkgdGhlIGJvdHRsZW5lY2sgaXMgdGhlIHJv dXRlciwKIyBub3QgdGhlIElTUCBvciBtb2RlbSwgd2hpY2ggYWxsb3dzIHVzIG1vcmUgZGlyZWN0 IGNvbnRyb2wgb2Ygc2hhcGluZy4KIwojIyMgUkFURV9TVUJfUEVSQ0VOVD0yMAojIyMgUkFURV9T VUJfUEVSQ0VOVD0xNQpSQVRFX1NVQl9QRVJDRU5UPTEwCgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTcGVjaWZ5IHRoZSBsb2NhbCBuZXR3b3Jr IHNwZWVkIChrYml0LCBtYml0KQojCkxBTl9SQVRFPTltYml0CgoKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMjIyMgQURWQU5DRUQgQ09ORklHVVJB VElPTiBQQVJBTUVURVJTCiMjIyMKIyMjCiMjCiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBIZWxwZXIgRnVuY3Rpb25zCiMKIyBDb252ZXJ0IHJh dGUgdG8gYml0ZXMgcGVyIHNlY29uZCBmb3JtYXQgKGJpdHMpCmJpdHMoKQp7CglSQVRFPTAKCVJf UkFURT0kMQoJUl9OVU1CRVI9YGVjaG8gIiRSX1JBVEUiIHwgc2VkIC1lICJzL1teMC05XS8vZyJg CglSX1VOSVQ9YGVjaG8gIiRSX1JBVEUiIHwgc2VkIC1lICJzL1swLTldLy9nImAKCglpZiBbICIk Ul9VTklUIiA9PSAiIiBdOyB0aGVuCgkJUl9VTklUPSJrYml0IgoJZmkKCglpZiBbICIkUl9VTklU IiA9PSAia2JwcyIgXTsgdGhlbiAgIFJfUkFURT0kKCgkUl9OVU1CRVIgKiAxMDI0ICogOCkpCgll bGlmIFsgIiRSX1VOSVQiID09ICJtYnBzIiBdOyB0aGVuIFJfUkFURT0kKCgkUl9OVU1CRVIgKiAx MDI0ICogMTAyNCAqIDgpKQoJZWxpZiBbICIkUl9VTklUIiA9PSAibWJpdCIgXTsgdGhlbiBSX1JB VEU9JCgoJFJfTlVNQkVSICogMTAyNCAqIDEwMjQpKQoJZWxpZiBbICIkUl9VTklUIiA9PSAia2Jp dCIgXTsgdGhlbiBSX1JBVEU9JCgoJFJfTlVNQkVSICogMTAyNCkpCgllbGlmIFsgIiRSX1VOSVQi ID09ICJicHMiIF07IHRoZW4gIFJfUkFURT0kKCgkUl9OVU1CRVIgKiA4KSkKCWVsc2UKCQllY2hv ICJVbmtub3duIHVuaXQgJyRSX1VOSVQnIChtYnBzLCBtYml0LCBrYml0LCBicHMpIgoJZmkKCgll Y2hvICIkUl9SQVRFIgp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwojIERlZmluZSBzdXBwb3J0ZWQgUXVldWluZyBEaXNjaXBsaW5lcwojClFESVND Uz0icHJpb3x0YmZ8aHRifGhmc2N8c2ZxfHJlZHxwZmlmbyIKCgojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFRyYWZmaWMgQ29udHJvbCBwYXJhbWV0 ZXJzIHdpbGwgYmUgY2FsY3VsYXRlZCBkZXBlbmRpbmcgb24gbGluayBkaXJlY3Rpb25zCiMKRElS RUNUSU9OPSQxCgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKIyBTcGVjaWZ5IHRoZSBuZXR3b3JrIGRldmljZXMgdGhhdCBhcmUgY29ubmVjdGVkIHRv IHRoZSBpbnRlcm5ldC4KIyBJZiB5b3UgYXJlIGEgZGlhbHVwIG9yIFBQUG9FIHVzZXIsIHlvdSBo YXZlIHRvIHJlLXJ1biB0aGUgUW9TIHNjcmlwdAojIGV2ZXJ5IHRpbWUgeW91IGNvbm5lY3QuCiMK IyMjIFdBTl9ERVZJQ0VTPSJwcHAwIgpXQU5fREVWSUNFUz0iJChpcCByb3V0ZSBzaG93IDAuMC4w LjAvMCB8IGdyZXAgZGV2IHwgc2VkICdzLy4qZGV2IC8vJyB8IGF3ayAne3ByaW50ICQxfScpIgoJ V0FOX0RFVklDRVM9IiRXQU5fREVWSUNFUyAkKGlwIGFkZHIgfCBncmVwIGdyZSB8IGVncmVwIC12 ICJncmUwIiB8IGF3ayAnL15bMC05XS8geyBnc3ViKCI6IiwgIiJpLCAkMik7IHByaW50ICQyfScg fCAgY3V0IC1mIDEgLWQnQCcpIgoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiMgU3BlY2lmeSB0aGUgbmV0d29yayBkZXZpY2VzIHdoaWNoIGFyZSBj b25uZWN0ZWQgd2l0aCB5b3VyIGxvY2FsIG5ldHdvcmsgc2VnbWVudHMuCiMKIyMjIExBTl9ERVZJ Q0VTPSJldGgxIgpMQU5fREVWSUNFUz1gYXdrIC1GOiAnTlIgPiAyIHsgcHJpbnQgJDEgfScgL3By b2MvbmV0L2RldiB8IGVncmVwIC12ICJsb3xncmUwfCQoZWNobyAkV0FOX0RFVklDRVMgfCBzZWQg cy8iICIvInwiL2cpImAKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwojIENhbGN1bGF0b24gb2YgV0FOIHVwL2Rvd24gbGluayByYXRlcwojCkRJUkVD VElPTj0ke0RJUkVDVElPTjotQUxMfQoJaWYgWyAkRElSRUNUSU9OID0gIkFMTCIgXTsgdGhlbgoJ CURFVklDRVM9IiRXQU5fREVWSUNFUyAkTEFOX0RFVklDRVMiCglmaQoKCWlmIFsgJERJUkVDVElP TiA9ICJVUCIgXTsgdGhlbiAKCQlXQU5fUkFURT1gYml0cyAkVVBMSU5LX1JBVEVgCgkJREVWSUNF Uz0kV0FOX0RFVklDRVMKCWZpCgoJaWYgWyAkRElSRUNUSU9OID0gIkRPV04iIF07IHRoZW4gCgkJ V0FOX1JBVEU9YGJpdHMgJERPV05MSU5LX1JBVEVgCgkJREVWSUNFUz0kTEFOX0RFVklDRVMKCWZp CgoJCVdBTl9TVUJfUkFURT0kKChXQU5fUkFURSAtIChSQVRFX1NVQl9QRVJDRU5UICogV0FOX1JB VEUgLyAxMDApKSkKCQkJSU5URVJBQ1RJVkVfUkFURT0kKChXQU5fU1VCX1JBVEUgLyA1KSkKCQkJ UFJJVklMRUdFRF9SQVRFPSQoKFdBTl9TVUJfUkFURSAvIDIpKQoJCQlCRVNURUZGT1JUX1JBVEU9 JCgoV0FOX1NVQl9SQVRFIC8gMykpCgoJCU9VVF9PRl9XQU5fUkFURT1gYml0cyAkTEFOX1JBVEVg CgkJCU9VVF9PRl9XQU5fUkFURT0kKChPVVRfT0ZfV0FOX1JBVEUgLSBXQU5fUkFURSkpCgoKIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTcGVjaWZ5 IHJvb3QgUXVldWluZyBEaXNjaXBsaW5lcwojCiMgUmVjb21tZW5kYXRpb25zOgojCWh0YjogICAg aWYgbGluayBpcyBub3QgY29uZ2VzdGVkIG9yIHlvdSB3YW50IHRvIGNvbnRyb2wgYnVzcnRzIG9m IHRyYWZmaWM7IHJlY29tbWVuZGVkIGZvciBkb3duc3RyZWFtLgojCWhmc2M6ICAgaWYgbGluayBp cyBjb25nZXN0ZWQgYW5kIHlvdSBuZWVkIHRvIGNvbnRyb2wgZ3VhcmFudGVlcyBvZiBkZWxheTsg cmVjb21tZW5kZWQgZm9yIHVwc3RyZWFtLgojCQkJZG1heCA9IDUwLTEwMCBbbXNdID0gNTAwMDAt MTAwMDAwIFttaWNyb3NlY10KIwkJCXVtYXggPSBNSU4gKHJhdGUgKiAoZG1heCAvIDEwMDApLCAx NTAwKSBbYl0KIwlwcmlvOiAgIGlmIHJhdGUgaXMgdmFyaWFibGUgYW5kIHlvdSB3YW50IHRvIGJl IHN1cmUgdGhhdCBpbnRlcmFjdGl2ZSB0cmFmZmljIGhhcyB1bHRpbWF0ZSBwcmlvcml0eQojCW5v bmU6ICAgaWYgbm8gZWdyZXNzIHNoYXBpbmcgaXMgZGVzaXJlZCAKIwkJKGluIHRoaXMgY2FzZSB5 b3UgbWF5IHdhbnQgdG8gc2V0dXAgb25seSBpbmdyZXNzIHBvbGljaW5nKQojCkRPV05MSU5LX1FE SVNDPWh0YgojIyMgRE9XTkxJTktfUURJU0M9aGZzYyAgCiMjIyBET1dOTElOS19RRElTQz1wcmlv CiMjIyBET1dOTElOS19RRElTQz1ub25lCiMKVVBMSU5LX1FESVNDPWhmc2MKIyMjIFVQTElOS19R RElTQz1odGIKIyMjIFVQTElOS19RRElTQz1wcmlvCiMjIyBVUExJTktfUURJU0M9bm9uZQoKCiMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ2FsY3Vs YXRpb24gb2YgUXVldWluZyBEaXNjaXBsaW5lIHBhcmFtZXRlcnMKIwpJTlRFUkFDVElWRV9QUklP X0xBVEVOQ1k9NTAwMDAKSU5URVJBQ1RJVkVfUFJJT19CVVJTVD0kKChJTlRFUkFDVElWRV9SQVRF IC8gMTAwIC8gOCkpCiMKSU5URVJBQ1RJVkVfSEZTQ19ETUFYPTUwMDAwCklOVEVSQUNUSVZFX0hG U0NfVU1BWD0kKChJTlRFUkFDVElWRV9SQVRFICogSU5URVJBQ1RJVkVfSEZTQ19ETUFYIC8gMTAw MCAvIDEwMDApKQoJWyAkSU5URVJBQ1RJVkVfSEZTQ19VTUFYIC1ndCAxNTAwIF0gJiYgSU5URVJB Q1RJVkVfSEZTQ19VTUFYPTE1MDAKIwpQUklWSUxFR0VEX0hGU0NfRE1BWD0xMDAwMDAKUFJJVklM RUdFRF9IRlNDX1VNQVg9JCgoUFJJVklMRUdFRF9SQVRFICogUFJJVklMRUdFRF9IRlNDX0RNQVgg LyAxMDAwIC8gMTAwMCkpCgkgWyAkUFJJVklMRUdFRF9IRlNDX1VNQVggLWd0IDE1MDAgXSAmJiBQ UklWSUxFR0VEX0hGU0NfVU1BWD0xNTAwCgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTcGVjaWZ5IElOR1JFU1MgcG9saWNpbmcKIwojIFJlY29t bWVuZGF0aW9uczoKIwlub25lOiAgIGlmIGxpbmsgaXMgbm90IGNvbmdlc3RlZCAKIwlwb2xpY2U6 IGlmIGxpbmsgaXMgY29uc3RhbnRseSBjb25nZXN0ZWQKIwojIyMgRE9XTkxJTktfSU5HUkVTUz1w b2xpY2UKRE9XTkxJTktfSU5HUkVTUz1ub25lCiMjIyBVUExJTktfSU5HUkVTUz1wb2xpY2UKVVBM SU5LX0lOR1JFU1M9bm9uZQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiMgQ2FsY3VsYXRpb24gb2YgcG9saWNpbmcgYnVyc3RzCiMJYnVyc3QgPSBy YXRlIC8gMTcgKHRha2VuIGJhc2luZyBvbiBleHBlcmVtZW50YWwgcmVzdWx0cykKIwpQT0xJQ0Vf QlVSU1RfU0NBTEU9MTcgCglJTlRFUkFDVElWRV9QT0xJQ0VfQlVSU1Q9JCgoSU5URVJBQ1RJVkVf UkFURSAvIFBPTElDRV9CVVJTVF9TQ0FMRSkpCglQUklWSUxFR0VEX1BPTElDRV9CVVJTVD0kKChQ UklWSUxFR0VEX1JBVEUgLyBQT0xJQ0VfQlVSU1RfU0NBTEUpKQoJQkVTVEVGRk9SVF9QT0xJQ0Vf QlVSU1Q9JCgoQkVTVEVGRk9SVF9SQVRFIC8gUE9MSUNFX0JVUlNUX1NDQUxFKSkKCgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFNwZWNpZnkgbGVh ZiBRdWV1aW5nIERpc2NpcGxpbmVzCiMgUmVjb21tZW5kYXRpb25zOgojCSJwZmlmbyBsaW1pdCA1 IjoJSW50ZXJhY3RpdmUsIFByaXZpbGVkZ2VkIChyZWFsLXRpbWUgc3RyZWFtcywgSVBTRUMpCiMJ InNmcSBwZXJ0dXJiIDEwIjoJQmVzdC1FZmZvcnQgKFRDUCBzZXNzaW9ucyBvciBiZXN0LWVmZm9y dCBjbGFzcyB0cmFmZmljKQojCSJyZWQgPHBhcmFtZXRlcnM+IjoJCUJlc3QtRWZmb3J0IChoaWdo dGx5IGNvbmdlc3RlZCBsaW5rcyBvciBoaWdoLXNwZWVkIEludGVybmV0IFs+IDEwTWJpdC9zZWNd KQojCQkJCQlSYW5kb20gRWFybHkgRGV0ZWN0IChSRUQpIHBhcmFtZXRlcnMgY2FsY3VsYXRpb246 CiMgIAkJCQkJCW1pbiAgICAgICAgID0gbWF4aW11bSBkZWxheSAqIHJhdGUgKGRhbGF5IH4gMjAw bXMgPSAwLjJzZWMpIFtiXQojIAkJCQkJCW1heCAgICAgICAgID0gMyAqIG1pbiBbYl0KIwkJCQkJ CWF2cGt0ICAgICAgID0gMTAwMCAoTVRVIDE1MDApCiMJCQkJCQlsaW1pdCAgICAgICA9IDggKiBt YXggW2JdCiMJCQkJCQlidXJzdCAgICAgICA9IChtaW4gKyBtaW4gKyBtYXgpLygzICogYXZwa3Qp IFtiXQojCQkJCQkJcHJvYmFiaWxpdHkgPSAwLjAyCklOVEVSQUNUSVZFX0xFQUZfUURJU0M9InBm aWZvIGxpbWl0IDUiClBSSVZJTEVHRURfTEVBRl9RRElTQz0icGZpZm8gbGltaXQgNSIKIyMjIEJF U1RFRkZPUlRfTEVBRl9RRElTQz0ic2ZxIHBlcnR1cmIgMTAiCiMKUkVEX0RFTEFZPTIwMApSRURf TUlOPSQoKFJFRF9ERUxBWSAqIEJFU1RFRkZPUlRfUkFURSAvIDEwMDAgLyA4KSkgIyBkZXZpZGVk IG9uIDggc2luY2UgcmF0ZSBnaXZlbiBpbiBiaXQvcyBzbyB3ZSBnZXQgYnl0ZXMKUkVEX01BWD0k KCgzICogUkVEX01JTikpClJFRF9BVlBLVD0xMDAwClJFRF9QUk9CPTAuMDIKUkVEX0JVUlNUPSQo KChSRURfTUlOICsgUkVEX01JTiArIFJFRF9NQVgpIC8gKDMgKiBSRURfQVZQS1QpKSkKUkVEX0xJ TUlUPSQoKDggKiBSRURfTUFYKSkKIwoJQkVTVEVGRk9SVF9MRUFGX1FESVNDPSJyZWQgbWluICRS RURfTUlOIG1heCAkUkVEX01BWCBidXJzdCAkUkVEX0JVUlNUIGxpbWl0ICRSRURfTElNSVQgcHJv YmFiaWxpdHkgJFJFRF9QUk9CIGF2cGt0ICRSRURfQVZQS1QiCiMKTEFOX0xFQUZfUURJU0M9InNm cSBwZXJ0dXJiIDEwIgoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiMgU3BlY2lmeSBmaWx0ZXIgcnVsZXMgKHNlZSB0YywgdGMtZmlsdGVycyBtYW4g cGFnZSkuIAojCVlvdSBtYXkgaGF2ZSBtdWx0aXBsZSA8Q0xBU1MtTkFNRT5fRklMVEVSXzxuPiBp dGVtcy4KIyAJTWF4aW11bSAxMDAgZmlsdGVyIGl0ZW1zIGFyZSBhbGxvd2VkIGZvciBlYWNoIGNs YXNzCiMKIyBJbnRlcmFjdGl2ZSBDbGFzcyBUcmFmZmljIEZpbHRlcnMKIwojIFVEUAojCklOVEVS QUNUSVZFX0ZJTFRFUl8xPSJwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0Y2ggaXAgcHJvdG9j b2wgMHgxMSAweGZmIgojCiMgSUNNUAojCklOVEVSQUNUSVZFX0ZJTFRFUl8yPSJwcm90b2NvbCBp cCBwcmlvIDEwMCB1MzIgbWF0Y2ggaXAgcHJvdG9jb2wgMHgxIDB4ZmYiCiMKIyBBQ0sgd2l0aCBw YXlsb2FkIDwgNjQgYnl0ZXMgKDMyLWJpdCB2ZXJzaW9uKQojCklOVEVSQUNUSVZFX0ZJTFRFUl8z PSJwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0Y2ggaXAgcHJvdG9jb2wgNiAweGZmIG1hdGNo IHU4IDB4MDUgMHgwZiBhdCAwIG1hdGNoIHUxNiAweDAwMDAgMHhmZmMwIGF0IDIgbWF0Y2ggdTgg MHgxMCAweGZmIGF0IDMzIgojCiMgQUNLIHdpdGggcGF5bG9hZCA8IDY0IGJ5dGVzCiMKSU5URVJB Q1RJVkVfRklMVEVSXzQ9InByb3RvY29sIGlwIHByaW8gMTAwIHUzMiBtYXRjaCBpcCBwcm90b2Nv bCA2IDB4ZmYgbWF0Y2ggdTggMHgxMCAweGZmIGF0IG5leHRoZHIrMTMgbWF0Y2ggdTE2IDB4MDAw MCAweGZmYzAgYXQgMiIKIwojIFRPUzogMHgxMCwgMHgxOCwgMHhiOChlZikKIwpJTlRFUkFDVElW RV9GSUxURVJfNT0icHJvdG9jb2wgaXAgcHJpbyAxMDAgdTMyIG1hdGNoIGlwIHRvcyAweDEwIDB4 ZmYiCklOVEVSQUNUSVZFX0ZJTFRFUl82PSJwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0Y2gg aXAgdG9zIDB4MTggMHhmZiIKSU5URVJBQ1RJVkVfRklMVEVSXzc9InByb3RvY29sIGlwIHByaW8g MTAwIHUzMiBtYXRjaCBpcCB0b3MgMHhiOCAweGZmIgoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUHJpdmlsZWRnZWQgQ2xhc3MgVHJhZmZpYyBG aWx0ZXJzCiMKIyBTU0gKIwpQUklWSUxFR0VEX0ZJTFRFUl8xPSJwcm90b2NvbCBpcCBwcmlvIDEw MCB1MzIgbWF0Y2ggaXAgZHBvcnQgMjIgMHhmZmZmIgpQUklWSUxFR0VEX0ZJTFRFUl8yPSJwcm90 b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0Y2ggaXAgc3BvcnQgMjIgMHhmZmZmIgojCiMgUmVtb3Rl IERlc2t0b3AKIwpQUklWSUxFR0VEX0ZJTFRFUl8zPSJwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIg bWF0Y2ggaXAgZHBvcnQgMzM4OSAweGZmZmYiClBSSVZJTEVHRURfRklMVEVSXzQ9InByb3RvY29s IGlwIHByaW8gMTAwIHUzMiBtYXRjaCBpcCBzcG9ydCAzMzg5IDB4ZmZmZiIKIwojIEVTUAojClBS SVZJTEVHRURfRklMVEVSXzU9InByb3RvY29sIGlwIHByaW8gMTAwIHUzMiBtYXRjaCBpcCBwcm90 b2NvbCAweDMyIDB4ZmYiCiMKIyBBSAojClBSSVZJTEVHRURfRklMVEVSXzY9InByb3RvY29sIGlw IHByaW8gMTAwIHUzMiBtYXRjaCBpcCBwcm90b2NvbCAweDMzIDB4ZmYiCiMKIyBUT1M6IDB4ODgo YWY0MSkKIwpQUklWSUxFR0VEX0ZJTFRFUl83PSJwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0 Y2ggaXAgdG9zIDB4ODggMHhmZiIKCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwojIEJlc3QtRWZmb3J0IENsYXNzIFRyYWZmaWMgRmlsdGVycwojCUJ5 IGRlZmF1bHQgQUxMIHVuY2xhc3NpZmllZCB0cmFmZmljIGlzIGJlaW5nIGFzc2luZWQgdG8gQmVz dC1FZmZvcnQgY2xhc3MKIwlZb3UgbWF5IHNwZWNpZnkgYWRkaXRpb25hbCBmaWx0ZXJzIGhlcmUK IwojIEV4YW1wbGVzOiBBbnkgdHJhZmZpYyBmcm9tL3RvIDE5Mi4xNjguMS4wLzI0IG5ldHdvcmsg d2lsbCBiZSB1bmNvbmRpdGlvbmFsbHkgY2xhc3NpZmllZCBhcyBiZXN0LWVmZm9ydAojCiMjIyBC RVNURUZGT1JUX0ZJTFRFUl8xPSJwcm90b2NvbCBpcCBwcmlvIDMgdTMyIG1hdGNoIGlwIHNyYyAx OTIuMTY4LjEuMC8yNCIKIyMjIEJFU1RFRkZPUlRfRklMVEVSXzI9InByb3RvY29sIGlwIHByaW8g NCB1MzIgbWF0Y2ggaXAgZHN0IDE5Mi4xNjguMS4wLzI0IgojCgojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIExBTiBDbGFzcyBUcmFmZmljIEZpbHRl cnMKIwojIFRyYWZmaWMgT3JpZ2luYXRlZCBmcm9tIHJvdXRlcgojCiMgRXhhbXBsZToKIyMjTEFO X0ZJTFRFUl8xPSJwcm90b2NvbCBpcCBwcmlvIDEwIHUzMiBtYXRjaCBpcCBzcmMgMTkyLjE2OC4x LjEwIgoKIwojIwojIyMKIyMjIwojIyMjIyBFTkQgT0YgR0VORVJJQyBBTFBJTkUgU0VUVVAKIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK --00163662e5c6441a590462794598-- --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---