Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1205063 > unrolled thread
| Started by | Tillmann Heidsieck <theidsieck@leenox.de> |
|---|---|
| First post | 2015-08-11 13:30 +0200 |
| Last post | 2015-08-12 03:10 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v2] staging: fsl-mc: add DPAA2 overview readme Tillmann Heidsieck <theidsieck@leenox.de> - 2015-08-11 13:30 +0200
RE: [PATCH v2] staging: fsl-mc: add DPAA2 overview readme Stuart Yoder <stuart.yoder@freescale.com> - 2015-08-12 03:10 +0200
| From | Tillmann Heidsieck <theidsieck@leenox.de> |
|---|---|
| Date | 2015-08-11 13:30 +0200 |
| Subject | Re: [PATCH v2] staging: fsl-mc: add DPAA2 overview readme |
| Message-ID | <pWfUJ-3Em-7@gated-at.bofh.it> |
Hi Stuart,
I am by no means a native speaker, but I have proof-read my fair share of articles and theses, so here are a bunch of suggestions which might or might not help improve you document.
On 07.08.2015 03:09, Stuart Yoder wrote:
> add README file providing an overview of the DPAA2 architecture
> and how it is integrated in Linux
>
> Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
> ---
> -v2: added changelog text
>
> drivers/staging/fsl-mc/README.txt | 364 ++++++++++++++++++++++++++++++++++++++
> drivers/staging/fsl-mc/TODO | 4 -
> 2 files changed, 364 insertions(+), 4 deletions(-)
> create mode 100644 drivers/staging/fsl-mc/README.txt
>
> diff --git a/drivers/staging/fsl-mc/README.txt b/drivers/staging/fsl-mc/README.txt
> new file mode 100644
> index 0000000..8214102
> --- /dev/null
> +++ b/drivers/staging/fsl-mc/README.txt
> @@ -0,0 +1,364 @@
> +Copyright (C) 2015 Freescale Semiconductor Inc.
> +
> +DPAA2 (Data Path Acceleration Architecture Gen2)
> +------------------------------------------------
> +
> +This document provides an overview of the Freescale DPAA2 architecture
> +and how it is integrated into the Linux kernel.
> +
> +Contents summary
> + -DPAA2 overview
> + -Overview of DPAA2 objects
> + -DPAA2 Linux driver architecture overview
> + -bus driver
> + -dprc driver
- DPRC driver
> + -allocator
> + -dpio driver
- DPIO driver
> + -Ethernet
> + -mac
mac -> MAC
> +
> +DPAA2 Overview
> +--------------
> +
> +DPAA2 is a hardware architecture designed for high-speeed network
> +packet processing. DPAA2 consists of sophisticated mechanisms for
> +processing Ethernet packets, queue management, buffer management,
> +autonomous L2 switching, virtual Ethernet bridging, and accelerator
> +(e.g. crypto) sharing.
> +
> +A DPAA2 hardware component called the Management Complex (or MC) manages the
> +DPAA2 hardware resources. The MC provides an object-based abstraction for
> +software drivers to use the DPAA2 hardware.
> +
> +The MC uses DPAA2 hardware resources such as queues, buffer pools, and
> +network ports to create functional objects/devices such as network
> +interfaces, an L2 switch, or accelerator instances.
> +
> +The MC provides memory-mapped I/O command interfaces (MC portals)
> +which DPAA2 software drivers use to operate on DPAA2 objects:
> +
> + +--------------------------------------+
> + | OS |
> + | DPAA2 drivers |
> + | | |
> + +-----------------------------|--------+
> + |
> + | (create,discover,connect
> + | config,use,destroy)
> + |
> + DPAA2 |
> + +------------------------| mc portal |-+
> + | | |
> + | +- - - - - - - - - - - - -V- - -+ |
> + | | | |
> + | | Management Complex (MC) | |
> + | | | |
> + | +- - - - - - - - - - - - - - - -+ |
> + | |
> + | Hardware Hardware |
> + | Resources Objects |
> + | --------- ------- |
> + | -queues -DPRC |
> + | -buffer pools -DPMCP |
> + | -Eth MACs/ports -DPIO |
> + | -network interface -DPNI |
> + | profiles -DPMAC |
> + | -queue portals -DPBP |
> + | -MC portals ... |
> + | ... |
> + | |
> + +--------------------------------------+
> +
> +The MC mediates operations such as create, discover,
> +connect, configuration, and destroy. Fast-path operations
> +on data, such as packet transmit/receive, are not mediated by
> +the MC and are done directly using memory mapped regions in
> +DPIO objects.
> +
> +Overview of DPAA2 Objects
> +-------------------------
> +The section provides a brief overview of some key objects
> +in the DPAA2 hardware. A simple scenario is described illustrating
> +the objects involved in creating a network interfaces.
> +
> +-DPRC (Datapath Resource Container)
> +
> + A DPRC is an container object that holds all the other
... is a container ...
> + types of DPAA2 objects. In the example diagram below there
> + are 8 objects of 5 types (DPMCP, DPIO, DPBP, DPNI, and DPMAC)
> + in the container.
> +
> + +---------------------------------------------------------+
> + | DPRC |
> + | |
> + | +-------+ +-------+ +-------+ +-------+ +-------+ |
> + | | DPMCP | | DPIO | | DPBP | | DPNI | | DPMAC | |
> + | +-------+ +-------+ +-------+ +---+---+ +---+---+ |
> + | | DPMCP | | DPIO | |
> + | +-------+ +-------+ |
> + | | DPMCP | |
> + | +-------+ |
> + | |
> + +---------------------------------------------------------+
> +
> + From the point of view of an OS, a DPRC is bus-like. Like
maybe replace "is bus-like" with "behaves similar to a bus" or "can be viewed as a bus"
> + a plug-and-play bus, such as PCI, DPRC commands can be used to
maybe replace "Like a pnp bus..." with "Similar to a plug-and-play bus, such as PCI, DPRC ..."
> + enumerate the contents of the DPRC, discover the hardware
> + objects present (including mappable regions and interrupts).
> +
> + dprc.1 (bus)
> + |
> + +--+--------+-------+-------+-------+
> + | | | | |
> + dpmcp.1 dpio.1 dpbp.1 dpni.1 dpmac.1
> + dpmcp.2 dpio.2
> + dpmcp.3
> +
> + Hardware objects can be created and destroyed dynamically, providing
> + the ability to hot plug/unplug objects in and out of the DPRC.
> +
> + A DPRC has a mappable mmio region (an MC portal) that can be used
- mmio -> MMIO (not sure whether mappable MMIO is redundant or not)
- a MC portal
> + to send MC commands. It has an interrupt for status events (like
> + hotplug).
> +
> + All objects in a container share the same hardware "isolation context".
> + This means that with respect to an IOMMU the isolation granularity
> + is at the DPRC (container) level, not at the individual object
> + level.
> +
> + DPRCs can be defined statically and populated with objects
> + via a config file passed to the MC when firmware starts
> + it. There is also a Linux user space tool called "restool"
> + that can be used to create/destroy containers and objects
> + dynamically.
> +
> +-DPAA2 Objects for an Ethernet Network Interface
> +
> + A typical Ethernet NIC is monolithic-- the NIC device contains TX/RX
> + queuing mechanisms, configuration mechanisms, buffer management,
> + physical ports, and interrupts. DPAA2 uses a more granular approach
> + utilizing multiple hardware objects. Each object has specialized
> + functions, and are used together by software to provide Ethernet network
Each object provides specialized functions. Groups of these objects are used by the software to provide Ethernet network interface functionality.
> + interface functionality. This approach provides efficient use of finite
> + hardware resources, flexibility, and performance advantages.
> +
> + The diagram below shows the objects needed for a simple
> + network interface configuration on a system with 2 CPUs.
> +
> + +---+---+ +---+---+
> + CPU0 CPU1
> + +---+---+ +---+---+
> + | |
> + +---+---+ +---+---+
> + DPIO DPIO
> + +---+---+ +---+---+
> + \ /
> + \ /
> + \ /
> + +---+---+
> + DPNI --- DPBP,DPMCP
> + +---+---+
> + |
> + |
> + +---+---+
> + DPMAC
> + +---+---+
> + |
> + port/PHY
> +
> + Below the objects are described. For each object a brief description
The objects depicted in this figure are described below.
> + is provided along with a summary of the kinds of operations the object
> + supports and a summary of key resources of the object (mmio regions
> + and irqs).
mmio -> MMIO
irqs -> IRQs
> +
> + -DPMAC (Datapath Ethernet MAC): represents an Ethernet MAC, a
> + hardware device that connects to an Ethernet PHY and allows
> + physical transmission and reception of Ethernet frames.
> + -mmio regions: none
mmio -> MMIO
> + -irqs: dpni link change
irqs -> IRQs
dpni -> DPNI
> + -commands: set link up/down, link config, get stats,
> + irq config, enable, reset
irq -> IRQ
> +
> + -DPNI (Datapath Network Interface): contains TX/RX queues,
> + network interface configuration, and rx buffer pool configuration
rx -> RX
> + mechanisms.
> + -mmio regions: none
mmio -> MMIO
> + -irqs: link state
irqs -> IRQs
> + -commands: port config, offload config, queue config,
> + parse/classify config, irq config, enable, reset
irq -> IRQ
> +
> + -DPIO (Datapath I/O): provides interfaces to enqueue and dequeue
> + packets and do hardware buffer pool management operations. For
> + optimum performance there is typically DPIO per CPU. This allows
For optimum performance there is typically one DPIO assigned to each CPU
> + each CPU to perform simultaneous enqueue/dequeue operations.
This allows different CPUs to simultaneously perform enqueue/dequeue operations.
> + -mmio regions: queue operations, buffer mgmt
mmio -> MMIO
mgmt -> management
> + -irqs: data availability, congestion notification, buffer
> + pool depletion
irqs -> IRQs
> + -commands: irq config, enable, reset
irq -> IRQ
> +
> + -DPBP (Datapath Buffer Pool): represents a hardware buffer
> + pool.
> + -mmio regions: none
> + -irqs: none
> + -commands: enable, reset
mmio -> MMIO
irqs -> IRQs
> +
> + -DPMCP (Datapath MC Portal): provides an MC command portal.
> + Used by drivers to send commands to the MC to manage
> + objects.
> + -mmio regions: MC command portal
> + -irqs: command completion
> + -commands: irq config, enable, reset
mmio -> MMIO
irqs -> IRQs
irq -> IRQ
> +
> + Object Connections
> + ------------------
> + Some objects have explicit relationships that must
> + be configured:
> +
> + -DPNI <--> DPMAC
> + -DPNI <--> DPNI
> + -DPNI <--> L2-switch-port
> + A DPNI must be connected to something such as a DPMAC,
> + another DPNI, or L2 switch port. The DPNI connection
> + is made via a DPRC command.
> +
> + +-------+ +-------+
> + | DPNI | | DPMAC |
> + +---+---+ +---+---+
> + | |
> + +==========+
> +
> + -DPNI <--> DPBP
> + A network interface requires a 'buffer pool' (DPBP
> + object) which provides a list of pointers to memory
> + where received Ethernet data is to be copied. The
> + Ethernet driver configures the DPBPs associated with
> + the network interface.
> +
> + Interrupts
> + ----------
> + All interrupts generated by DPAA2 objects are message
> + interrupts. At the hardware level message interrupts
> + generated by devices will normally have 3 components--
> + 1) a non-spoofable 'device-id' expressed on the hardware
> + bus, 2) an address, 3) a data value.
> +
> + In the case of DPAA2 devices/objects, all objects in the
> + same container/DPRC share the same 'device-id'.
> + For ARM-based SoC this is the same as the stream ID.
> +
> +
> +DPAA2 Linux Driver Overview
> +---------------------------
> +
> +This section provides an overview of the Linux kernel drivers for
> +DPAA2-- 1) the bus driver and associated "DPAA2 infrastructure"
> +drivers and 2) functional object drivers (such as Ethernet).
> +
> +As described previously, a DPRC is a container that holds the other
> +types of DPAA2 objects. It is functionally similar to a plug-and-play
> +bus controller.
> +
> +Each object in the DPRC is a Linux "device" and is bound to a driver.
> +The diagram below shows the Linux drivers involved in a networking
> +scenario and the objects bound to each driver. A brief description
> +of each driver follows.
> +
> + +------------+
> + | OS Network |
> + | Stack |
> + +------------+ +------------+
> + | Allocator |. . . . . . . | Ethernet |
> + |(dpmcp,dpbp)| | (dpni) |
> + +-.----------+ +---+---+----+
> + . . ^ |
> + . . <data avail, | |<enqueue,
> + . . tx confirm> | | dequeue>
> + +-------------+ . | |
> + | DPRC driver | . +---+---V----+ +---------+
> + | (dprc) | . . . . . .| DPIO driver| | MAC |
> + +----------+--+ | (dpio) | | (dpmac) |
> + | +------+-----+ +-----+---+
> + |<dev add/remove> | |
> + | | |
> + +----+--------------+ | +--+---+
> + | mc-bus driver | | | PHY |
> + | | | |driver|
> + | /fsl-mc@80c000000 | | +--+---+
> + +-------------------+ | |
> + | |
> + ================================ HARDWARE =========|=================|======
> + DPIO |
> + | |
> + DPNI---DPBP |
> + | |
> + DPMAC |
> + | |
> + PHY ---------------+
> + ===================================================|========================
> +
> +A brief description of each driver is provided below.
> +
> + mc-bus driver
> + -------------
mc-bus -> MC-Bus or MC-bus
> + The mc-bus driver is a platform driver and is probed from an
> + "/fsl-mc@xxxx" node in the device tree passed in by boot firmware.
> + It is responsible for bootstrapping the DPAA2 kernel infrastructure.
> + Key functions include:
> + -registering a new bus type named "fsl-mc" with the kernel,
> + and implementing bus call-backs (e.g. match/uevent/dev_groups)
> + -implemeting APIs for DPAA2 driver registration and for device
> + add/remove
> + -creates an MSI irq domain
irq -> IRQ
> + -do a device add of the 'root' DPRC device, which is needed
> + to bootstrap things
> +
> + DPRC driver
> + -----------
> + The dprc-driver is bound DPRC objects and does runtime management
> + of a bus instance. It performs the initial bus scan of the DPRC
> + and handles interrupts for container events such as hot plug.
> +
> + Allocator
> + ----------
> + Certain objects such as DPMCP and DPBP are generic and fungible,
> + and are intended to be used by other drivers. For example,
> + the DPAA2 Ethernet driver needs:
> + -DPMCPs to send MC commands, to configure network interfaces
> + -DPBPs for network buffer pools
> +
> + The allocator driver registers for these allocatable object types
> + and those objects are bound to the allocator when the bus is probed.
> + The allocator maintains a pool of objects that are available for
> + allocation by other DPAA2 drivers.
> +
> + DPIO driver
> + -----------
> + The DPIO driver is bound to DPIO objects and provides services that allow
> + other drivers such as the Ethernet driver to receive and transmit data.
> + Key services include:
> + -data availability notifications
> + -hardware queuing operations (enqueue and dequeue of data)
> + -hardware buffer pool management
> +
> + There is typically one DPIO object per physical CPU for optimum
> + performance, allowing each CPU to simultaneously enqueue
> + and dequeue data.
allowing different CPUs to simultaneously ...
> +
> + The DPIO driver operates on behalf of all DPAA2 drivers
> + active in the kernel-- Ethernet, crypto, compression,
> + etc.
> +
> + Ethernet
> + --------
> + The Ethernet driver is bound to a DPNI and implements the kernel
> + interfaces needed to connect the DPAA2 network interface to
> + the network stack.
> +
> + Each DPNI corresponds to a Linux network interface.
> +
> + MAC driver
> + ----------
> + An Ethernet PHY is an off-chip, board specific component and is managed
> + by the appropriate PHY driver via an mdio bus. The MAC driver
> + plays a role of being a proxy between the PHY driver and the
> + MC. It does this proxy via the MC commands to a DPMAC object.
> diff --git a/drivers/staging/fsl-mc/TODO b/drivers/staging/fsl-mc/TODO
> index c29516b..3894368 100644
> --- a/drivers/staging/fsl-mc/TODO
> +++ b/drivers/staging/fsl-mc/TODO
> @@ -1,7 +1,3 @@
> -* Add README file (with ASCII art) describing relationships between
> - DPAA2 objects and how combine them to make a NIC, an LS2 switch, etc.
> - Also, define all acronyms used.
> -
> * Decide if multiple root fsl-mc buses will be supported per Linux instance,
> and if so add support for this.
>
Cheers
Tillmann
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Stuart Yoder <stuart.yoder@freescale.com> |
|---|---|
| Date | 2015-08-12 03:10 +0200 |
| Message-ID | <pWsIi-5r3-3@gated-at.bofh.it> |
| In reply to | #1205063 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGlsbG1hbm4gSGVpZHNp ZWNrIFttYWlsdG86dGhlaWRzaWVja0BsZWVub3guZGVdDQo+IFNlbnQ6IFR1ZXNkYXksIEF1Z3Vz dCAxMSwgMjAxNSA2OjAxIEFNDQo+IFRvOiBZb2RlciBTdHVhcnQtQjA4MjQ4OyBncmVna2hAbGlu dXhmb3VuZGF0aW9uLm9yZzsgUml2ZXJhIEpvc2UtQjQ2NDgyOyBrYXR6IEl0YWktUk0wNTIwMg0K PiBDYzogZGV2ZWxAZHJpdmVyZGV2Lm9zdW9zbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5l bC5vcmc7IGFncmFmQHN1c2UuZGU7IGFybmRAYXJuZGIuZGUNCj4gU3ViamVjdDogUmU6IFtQQVRD SCB2Ml0gc3RhZ2luZzogZnNsLW1jOiBhZGQgRFBBQTIgb3ZlcnZpZXcgcmVhZG1lDQo+IA0KPiBI aSBTdHVhcnQsDQo+IA0KPiBJIGFtIGJ5IG5vIG1lYW5zIGEgbmF0aXZlIHNwZWFrZXIsIGJ1dCBJ IGhhdmUgcHJvb2YtcmVhZCBteSBmYWlyIHNoYXJlIG9mIGFydGljbGVzIGFuZCB0aGVzZXMsIHNv IGhlcmUgYXJlIGENCj4gYnVuY2ggb2Ygc3VnZ2VzdGlvbnMgd2hpY2ggbWlnaHQgb3IgbWlnaHQg bm90IGhlbHAgaW1wcm92ZSB5b3UgZG9jdW1lbnQuDQo+IA0KPiBPbiAwNy4wOC4yMDE1IDAzOjA5 LCBTdHVhcnQgWW9kZXIgd3JvdGU6DQo+ID4gYWRkIFJFQURNRSBmaWxlIHByb3ZpZGluZyBhbiBv dmVydmlldyBvZiB0aGUgRFBBQTIgYXJjaGl0ZWN0dXJlDQo+ID4gYW5kIGhvdyBpdCBpcyBpbnRl Z3JhdGVkIGluIExpbnV4DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTdHVhcnQgWW9kZXIgPHN0 dWFydC55b2RlckBmcmVlc2NhbGUuY29tPg0KPiA+IC0tLQ0KPiA+IC12MjogYWRkZWQgY2hhbmdl bG9nIHRleHQNCj4gPg0KPiA+ICBkcml2ZXJzL3N0YWdpbmcvZnNsLW1jL1JFQURNRS50eHQgfCAz NjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgZHJpdmVycy9z dGFnaW5nL2ZzbC1tYy9UT0RPICAgICAgIHwgICA0IC0NCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAz NjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvc3RhZ2luZy9mc2wtbWMvUkVBRE1FLnR4dA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9mc2wtbWMvUkVBRE1FLnR4dCBiL2RyaXZlcnMvc3RhZ2luZy9mc2wt bWMvUkVBRE1FLnR4dA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAw MC4uODIxNDEwMg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL3N0YWdpbmcv ZnNsLW1jL1JFQURNRS50eHQNCj4gPiBAQCAtMCwwICsxLDM2NCBAQA0KPiA+ICtDb3B5cmlnaHQg KEMpIDIwMTUgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IgSW5jLg0KPiA+ICsNCj4gPiArRFBBQTIg KERhdGEgUGF0aCBBY2NlbGVyYXRpb24gQXJjaGl0ZWN0dXJlIEdlbjIpDQo+ID4gKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArVGhp cyBkb2N1bWVudCBwcm92aWRlcyBhbiBvdmVydmlldyBvZiB0aGUgRnJlZXNjYWxlIERQQUEyIGFy Y2hpdGVjdHVyZQ0KPiA+ICthbmQgaG93IGl0IGlzIGludGVncmF0ZWQgaW50byB0aGUgTGludXgg a2VybmVsLg0KPiA+ICsNCj4gPiArQ29udGVudHMgc3VtbWFyeQ0KPiA+ICsgICAtRFBBQTIgb3Zl cnZpZXcNCj4gPiArICAgLU92ZXJ2aWV3IG9mIERQQUEyIG9iamVjdHMNCj4gPiArICAgLURQQUEy IExpbnV4IGRyaXZlciBhcmNoaXRlY3R1cmUgb3ZlcnZpZXcNCj4gPiArICAgICAgICAtYnVzIGRy aXZlcg0KPiA+ICsgICAgICAgIC1kcHJjIGRyaXZlcg0KPiANCj4gLSBEUFJDIGRyaXZlcg0KPiAN Cj4gPiArICAgICAgICAtYWxsb2NhdG9yDQo+ID4gKyAgICAgICAgLWRwaW8gZHJpdmVyDQo+IA0K PiAtIERQSU8gZHJpdmVyDQo+IA0KPiA+ICsgICAgICAgIC1FdGhlcm5ldA0KPiA+ICsgICAgICAg IC1tYWMNCj4gbWFjIC0+IE1BQw0KPiA+ICsNCj4gPiArRFBBQTIgT3ZlcnZpZXcNCj4gPiArLS0t LS0tLS0tLS0tLS0NCj4gPiArDQo+ID4gK0RQQUEyIGlzIGEgaGFyZHdhcmUgYXJjaGl0ZWN0dXJl IGRlc2lnbmVkIGZvciBoaWdoLXNwZWVlZCBuZXR3b3JrDQo+ID4gK3BhY2tldCBwcm9jZXNzaW5n LiAgRFBBQTIgY29uc2lzdHMgb2Ygc29waGlzdGljYXRlZCBtZWNoYW5pc21zIGZvcg0KPiA+ICtw cm9jZXNzaW5nIEV0aGVybmV0IHBhY2tldHMsIHF1ZXVlIG1hbmFnZW1lbnQsIGJ1ZmZlciBtYW5h Z2VtZW50LA0KPiA+ICthdXRvbm9tb3VzIEwyIHN3aXRjaGluZywgdmlydHVhbCBFdGhlcm5ldCBi cmlkZ2luZywgYW5kIGFjY2VsZXJhdG9yDQo+ID4gKyhlLmcuIGNyeXB0bykgc2hhcmluZy4NCj4g PiArDQo+ID4gK0EgRFBBQTIgaGFyZHdhcmUgY29tcG9uZW50IGNhbGxlZCB0aGUgTWFuYWdlbWVu dCBDb21wbGV4IChvciBNQykgbWFuYWdlcyB0aGUNCj4gPiArRFBBQTIgaGFyZHdhcmUgcmVzb3Vy Y2VzLiAgVGhlIE1DIHByb3ZpZGVzIGFuIG9iamVjdC1iYXNlZCBhYnN0cmFjdGlvbiBmb3INCj4g PiArc29mdHdhcmUgZHJpdmVycyB0byB1c2UgdGhlIERQQUEyIGhhcmR3YXJlLg0KPiA+ICsNCj4g PiArVGhlIE1DIHVzZXMgRFBBQTIgaGFyZHdhcmUgcmVzb3VyY2VzIHN1Y2ggYXMgcXVldWVzLCBi dWZmZXIgcG9vbHMsIGFuZA0KPiA+ICtuZXR3b3JrIHBvcnRzIHRvIGNyZWF0ZSBmdW5jdGlvbmFs IG9iamVjdHMvZGV2aWNlcyBzdWNoIGFzIG5ldHdvcmsNCj4gPiAraW50ZXJmYWNlcywgYW4gTDIg c3dpdGNoLCBvciBhY2NlbGVyYXRvciBpbnN0YW5jZXMuDQo+ID4gKw0KPiA+ICtUaGUgTUMgcHJv dmlkZXMgbWVtb3J5LW1hcHBlZCBJL08gY29tbWFuZCBpbnRlcmZhY2VzIChNQyBwb3J0YWxzKQ0K PiA+ICt3aGljaCBEUEFBMiBzb2Z0d2FyZSBkcml2ZXJzIHVzZSB0byBvcGVyYXRlIG9uIERQQUEy IG9iamVjdHM6DQo+ID4gKw0KPiA+ICsgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAgICAgICAgIHwgICAgICAgICAgICAgICAgICBPUyAgICAg ICAgICAgICAgICAgIHwNCj4gPiArICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIERQ QUEyIGRyaXZlcnMgfA0KPiA+ICsgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICB8DQo+ID4gKyAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LXwtLS0tLS0tLSsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChjcmVhdGUs ZGlzY292ZXIsY29ubmVjdA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICBjb25maWcsdXNlLGRlc3Ryb3kpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIERQQUEyICAg ICAgICAgfA0KPiA+ICsgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCBtYyBwb3J0 YWwgfC0rDQo+ID4gKyAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgIHwNCj4gPiArICAgICAgICAgfCAgICstIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtVi0gLSAt KyAgfA0KPiA+ICsgICAgICAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICB8DQo+ID4gKyAgICAgICAgIHwgICB8ICAgTWFuYWdlbWVudCBDb21wbGV4IChNQykgICAgIHwg IHwNCj4gPiArICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg fA0KPiA+ICsgICAgICAgICB8ICAgKy0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0rICB8 DQo+ID4gKyAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwN Cj4gPiArICAgICAgICAgfCBIYXJkd2FyZSAgICAgICAgICAgICAgICAgIEhhcmR3YXJlICAgfA0K PiA+ICsgICAgICAgICB8IFJlc291cmNlcyAgICAgICAgICAgICAgICAgT2JqZWN0cyAgICB8DQo+ ID4gKyAgICAgICAgIHwgLS0tLS0tLS0tICAgICAgICAgICAgICAgICAtLS0tLS0tICAgIHwNCj4g PiArICAgICAgICAgfCAtcXVldWVzICAgICAgICAgICAgICAgICAgIC1EUFJDICAgICAgfA0KPiA+ ICsgICAgICAgICB8IC1idWZmZXIgcG9vbHMgICAgICAgICAgICAgLURQTUNQICAgICB8DQo+ID4g KyAgICAgICAgIHwgLUV0aCBNQUNzL3BvcnRzICAgICAgICAgICAtRFBJTyAgICAgIHwNCj4gPiAr ICAgICAgICAgfCAtbmV0d29yayBpbnRlcmZhY2UgICAgICAgIC1EUE5JICAgICAgfA0KPiA+ICsg ICAgICAgICB8ICBwcm9maWxlcyAgICAgICAgICAgICAgICAgLURQTUFDICAgICB8DQo+ID4gKyAg ICAgICAgIHwgLXF1ZXVlIHBvcnRhbHMgICAgICAgICAgICAtRFBCUCAgICAgIHwNCj4gPiArICAg ICAgICAgfCAtTUMgcG9ydGFscyAgICAgICAgICAgICAgICAuLi4gICAgICAgfA0KPiA+ICsgICAg ICAgICB8ICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gKyAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsNCj4gPiAr VGhlIE1DIG1lZGlhdGVzIG9wZXJhdGlvbnMgc3VjaCBhcyBjcmVhdGUsIGRpc2NvdmVyLA0KPiA+ ICtjb25uZWN0LCBjb25maWd1cmF0aW9uLCBhbmQgZGVzdHJveS4gIEZhc3QtcGF0aCBvcGVyYXRp b25zDQo+ID4gK29uIGRhdGEsIHN1Y2ggYXMgcGFja2V0IHRyYW5zbWl0L3JlY2VpdmUsIGFyZSBu b3QgbWVkaWF0ZWQgYnkNCj4gPiArdGhlIE1DIGFuZCBhcmUgZG9uZSBkaXJlY3RseSB1c2luZyBt ZW1vcnkgbWFwcGVkIHJlZ2lvbnMgaW4NCj4gPiArRFBJTyBvYmplY3RzLg0KPiA+ICsNCj4gPiAr T3ZlcnZpZXcgb2YgRFBBQTIgT2JqZWN0cw0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gK1RoZSBzZWN0aW9uIHByb3ZpZGVzIGEgYnJpZWYgb3ZlcnZpZXcgb2Ygc29tZSBrZXkg b2JqZWN0cw0KPiA+ICtpbiB0aGUgRFBBQTIgaGFyZHdhcmUuICBBIHNpbXBsZSBzY2VuYXJpbyBp cyBkZXNjcmliZWQgaWxsdXN0cmF0aW5nDQo+ID4gK3RoZSBvYmplY3RzIGludm9sdmVkIGluIGNy ZWF0aW5nIGEgbmV0d29yayBpbnRlcmZhY2VzLg0KPiA+ICsNCj4gPiArLURQUkMgKERhdGFwYXRo IFJlc291cmNlIENvbnRhaW5lcikNCj4gPiArDQo+ID4gKyAgICBBIERQUkMgaXMgYW4gY29udGFp bmVyIG9iamVjdCB0aGF0IGhvbGRzIGFsbCB0aGUgb3RoZXINCj4gDQo+IC4uLiBpcyBhIGNvbnRh aW5lciAuLi4NCj4gDQo+ID4gKyAgICB0eXBlcyBvZiBEUEFBMiBvYmplY3RzLiAgSW4gdGhlIGV4 YW1wbGUgZGlhZ3JhbSBiZWxvdyB0aGVyZQ0KPiA+ICsgICAgYXJlIDggb2JqZWN0cyBvZiA1IHR5 cGVzIChEUE1DUCwgRFBJTywgRFBCUCwgRFBOSSwgYW5kIERQTUFDKQ0KPiA+ICsgICAgaW4gdGhl IGNvbnRhaW5lci4NCj4gPiArDQo+ID4gKyAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgfCBEUFJDICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 DQo+ID4gKyAgICB8ICArLS0tLS0tLSsgICstLS0tLS0tKyAgKy0tLS0tLS0rICArLS0tLS0tLSsg ICstLS0tLS0tKyAgfA0KPiA+ICsgICAgfCAgfCBEUE1DUCB8ICB8IERQSU8gIHwgIHwgRFBCUCAg fCAgfCBEUE5JICB8ICB8IERQTUFDIHwgIHwNCj4gPiArICAgIHwgICstLS0tLS0tKyAgKy0tLS0t LS0rICArLS0tLS0tLSsgICstLS0rLS0tKyAgKy0tLSstLS0rICB8DQo+ID4gKyAgICB8ICB8IERQ TUNQIHwgIHwgRFBJTyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ ICsgICAgfCAgKy0tLS0tLS0rICArLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwNCj4gPiArICAgIHwgIHwgRFBNQ1AgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8DQo+ID4gKyAgICB8ICArLS0tLS0tLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArICAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ID4gKw0KPiA+ICsgICAgRnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiBhbiBPUywgYSBE UFJDIGlzIGJ1cy1saWtlLiAgTGlrZQ0KPiANCj4gbWF5YmUgcmVwbGFjZSAiaXMgYnVzLWxpa2Ui IHdpdGggImJlaGF2ZXMgc2ltaWxhciB0byBhIGJ1cyIgb3IgImNhbiBiZSB2aWV3ZWQgYXMgYSBi dXMiDQo+IA0KPiA+ICsgICAgYSBwbHVnLWFuZC1wbGF5IGJ1cywgc3VjaCBhcyBQQ0ksIERQUkMg Y29tbWFuZHMgY2FuIGJlIHVzZWQgdG8NCj4gDQo+IG1heWJlIHJlcGxhY2UgIkxpa2UgYSBwbnAg YnVzLi4uIiB3aXRoICJTaW1pbGFyIHRvIGEgcGx1Zy1hbmQtcGxheSBidXMsIHN1Y2ggYXMgUENJ LCBEUFJDIC4uLiINCj4gDQo+ID4gKyAgICBlbnVtZXJhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBE UFJDLCBkaXNjb3ZlciB0aGUgaGFyZHdhcmUNCj4gPiArICAgIG9iamVjdHMgcHJlc2VudCAoaW5j bHVkaW5nIG1hcHBhYmxlIHJlZ2lvbnMgYW5kIGludGVycnVwdHMpLg0KPiA+ICsNCj4gPiArICAg ICBkcHJjLjEgKGJ1cykNCj4gPiArICAgICAgIHwNCj4gPiArICAgICAgICstLSstLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsNCj4gPiArICAgICAgICAgIHwgICAgICAgIHwgICAgICAg fCAgICAgICB8ICAgICAgIHwNCj4gPiArICAgICAgICBkcG1jcC4xICBkcGlvLjEgIGRwYnAuMSAg ZHBuaS4xICBkcG1hYy4xDQo+ID4gKyAgICAgICAgZHBtY3AuMiAgZHBpby4yDQo+ID4gKyAgICAg ICAgZHBtY3AuMw0KPiA+ICsNCj4gPiArICAgIEhhcmR3YXJlIG9iamVjdHMgY2FuIGJlIGNyZWF0 ZWQgYW5kIGRlc3Ryb3llZCBkeW5hbWljYWxseSwgcHJvdmlkaW5nDQo+ID4gKyAgICB0aGUgYWJp bGl0eSB0byBob3QgcGx1Zy91bnBsdWcgb2JqZWN0cyBpbiBhbmQgb3V0IG9mIHRoZSBEUFJDLg0K PiA+ICsNCj4gPiArICAgIEEgRFBSQyBoYXMgYSBtYXBwYWJsZSBtbWlvIHJlZ2lvbiAoYW4gTUMg cG9ydGFsKSB0aGF0IGNhbiBiZSB1c2VkDQo+IA0KPiAtIG1taW8gLT4gTU1JTyAobm90IHN1cmUg d2hldGhlciBtYXBwYWJsZSBNTUlPIGlzIHJlZHVuZGFudCBvciBub3QpDQo+IC0gYSBNQyBwb3J0 YWwNCj4gDQo+ID4gKyAgICB0byBzZW5kIE1DIGNvbW1hbmRzLiAgSXQgaGFzIGFuIGludGVycnVw dCBmb3Igc3RhdHVzIGV2ZW50cyAobGlrZQ0KPiA+ICsgICAgaG90cGx1ZykuDQo+ID4gKw0KPiA+ ICsgICAgQWxsIG9iamVjdHMgaW4gYSBjb250YWluZXIgc2hhcmUgdGhlIHNhbWUgaGFyZHdhcmUg Imlzb2xhdGlvbiBjb250ZXh0Ii4NCj4gPiArICAgIFRoaXMgbWVhbnMgdGhhdCB3aXRoIHJlc3Bl Y3QgdG8gYW4gSU9NTVUgdGhlIGlzb2xhdGlvbiBncmFudWxhcml0eQ0KPiA+ICsgICAgaXMgYXQg dGhlIERQUkMgKGNvbnRhaW5lcikgbGV2ZWwsIG5vdCBhdCB0aGUgaW5kaXZpZHVhbCBvYmplY3QN Cj4gPiArICAgIGxldmVsLg0KPiA+ICsNCj4gPiArICAgIERQUkNzIGNhbiBiZSBkZWZpbmVkIHN0 YXRpY2FsbHkgYW5kIHBvcHVsYXRlZCB3aXRoIG9iamVjdHMNCj4gPiArICAgIHZpYSBhIGNvbmZp ZyBmaWxlIHBhc3NlZCB0byB0aGUgTUMgd2hlbiBmaXJtd2FyZSBzdGFydHMNCj4gPiArICAgIGl0 LiAgVGhlcmUgaXMgYWxzbyBhIExpbnV4IHVzZXIgc3BhY2UgdG9vbCBjYWxsZWQgInJlc3Rvb2wi DQo+ID4gKyAgICB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZS9kZXN0cm95IGNvbnRhaW5lcnMg YW5kIG9iamVjdHMNCj4gPiArICAgIGR5bmFtaWNhbGx5Lg0KPiA+ICsNCj4gPiArLURQQUEyIE9i amVjdHMgZm9yIGFuIEV0aGVybmV0IE5ldHdvcmsgSW50ZXJmYWNlDQo+ID4gKw0KPiA+ICsgICAg QSB0eXBpY2FsIEV0aGVybmV0IE5JQyBpcyBtb25vbGl0aGljLS0gdGhlIE5JQyBkZXZpY2UgY29u dGFpbnMgVFgvUlgNCj4gPiArICAgIHF1ZXVpbmcgbWVjaGFuaXNtcywgY29uZmlndXJhdGlvbiBt ZWNoYW5pc21zLCBidWZmZXIgbWFuYWdlbWVudCwNCj4gPiArICAgIHBoeXNpY2FsIHBvcnRzLCBh bmQgaW50ZXJydXB0cy4gIERQQUEyIHVzZXMgYSBtb3JlIGdyYW51bGFyIGFwcHJvYWNoDQo+ID4g KyAgICB1dGlsaXppbmcgbXVsdGlwbGUgaGFyZHdhcmUgb2JqZWN0cy4gIEVhY2ggb2JqZWN0IGhh cyBzcGVjaWFsaXplZA0KPiA+ICsgICAgZnVuY3Rpb25zLCBhbmQgYXJlIHVzZWQgdG9nZXRoZXIg Ynkgc29mdHdhcmUgdG8gcHJvdmlkZSBFdGhlcm5ldCBuZXR3b3JrDQo+IA0KPiBFYWNoIG9iamVj dCBwcm92aWRlcyBzcGVjaWFsaXplZCBmdW5jdGlvbnMuIEdyb3VwcyBvZiB0aGVzZSBvYmplY3Rz IGFyZSB1c2VkIGJ5IHRoZSBzb2Z0d2FyZSB0byBwcm92aWRlDQo+IEV0aGVybmV0IG5ldHdvcmsg aW50ZXJmYWNlIGZ1bmN0aW9uYWxpdHkuDQo+IA0KPiA+ICsgICAgaW50ZXJmYWNlIGZ1bmN0aW9u YWxpdHkuICBUaGlzIGFwcHJvYWNoIHByb3ZpZGVzIGVmZmljaWVudCB1c2Ugb2YgZmluaXRlDQo+ ID4gKyAgICBoYXJkd2FyZSByZXNvdXJjZXMsIGZsZXhpYmlsaXR5LCBhbmQgcGVyZm9ybWFuY2Ug YWR2YW50YWdlcy4NCj4gPiArDQo+ID4gKyAgICBUaGUgZGlhZ3JhbSBiZWxvdyBzaG93cyB0aGUg b2JqZWN0cyBuZWVkZWQgZm9yIGEgc2ltcGxlDQo+ID4gKyAgICBuZXR3b3JrIGludGVyZmFjZSBj b25maWd1cmF0aW9uIG9uIGEgc3lzdGVtIHdpdGggMiBDUFVzLg0KPiA+ICsNCj4gPiArICAgICAg ICAgICAgICArLS0tKy0tLSsgKy0tLSstLS0rDQo+ID4gKyAgICAgICAgICAgICAgICAgQ1BVMCAg ICAgQ1BVMQ0KPiA+ICsgICAgICAgICAgICAgICstLS0rLS0tKyArLS0tKy0tLSsNCj4gPiArICAg ICAgICAgICAgICAgICAgfCAgICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICArLS0tKy0tLSsg Ky0tLSstLS0rDQo+ID4gKyAgICAgICAgICAgICAgICAgRFBJTyAgICAgRFBJTw0KPiA+ICsgICAg ICAgICAgICAgICstLS0rLS0tKyArLS0tKy0tLSsNCj4gPiArICAgICAgICAgICAgICAgICAgICBc ICAgICAvDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIFwgICAvDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICBcIC8NCj4gPiArICAgICAgICAgICAgICAgICAgICstLS0rLS0tKw0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgRFBOSSAgLS0tIERQQlAsRFBNQ1ANCj4gPiArICAgICAgICAg ICAgICAgICAgICstLS0rLS0tKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICArLS0tKy0t LSsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgRFBNQUMNCj4gPiArICAgICAgICAgICAgICAg ICAgICstLS0rLS0tKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArICAgICAg ICAgICAgICAgICAgICBwb3J0L1BIWQ0KPiA+ICsNCj4gPiArICAgIEJlbG93IHRoZSBvYmplY3Rz IGFyZSBkZXNjcmliZWQuICBGb3IgZWFjaCBvYmplY3QgYSBicmllZiBkZXNjcmlwdGlvbg0KPiAN Cj4gVGhlIG9iamVjdHMgZGVwaWN0ZWQgaW4gdGhpcyBmaWd1cmUgYXJlIGRlc2NyaWJlZCBiZWxv dy4NCj4gDQo+ID4gKyAgICBpcyBwcm92aWRlZCBhbG9uZyB3aXRoIGEgc3VtbWFyeSBvZiB0aGUg a2luZHMgb2Ygb3BlcmF0aW9ucyB0aGUgb2JqZWN0DQo+ID4gKyAgICBzdXBwb3J0cyBhbmQgYSBz dW1tYXJ5IG9mIGtleSByZXNvdXJjZXMgb2YgdGhlIG9iamVjdCAobW1pbyByZWdpb25zDQo+ID4g KyAgICBhbmQgaXJxcykuDQo+IA0KPiBtbWlvIC0+IE1NSU8NCj4gaXJxcyAtPiBJUlFzDQo+IA0K PiA+ICsNCj4gPiArICAgICAgIC1EUE1BQyAoRGF0YXBhdGggRXRoZXJuZXQgTUFDKTogcmVwcmVz ZW50cyBhbiBFdGhlcm5ldCBNQUMsIGENCj4gPiArICAgICAgICBoYXJkd2FyZSBkZXZpY2UgdGhh dCBjb25uZWN0cyB0byBhbiBFdGhlcm5ldCBQSFkgYW5kIGFsbG93cw0KPiA+ICsgICAgICAgIHBo eXNpY2FsIHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uIG9mIEV0aGVybmV0IGZyYW1lcy4NCj4g PiArICAgICAgICAgICAtbW1pbyByZWdpb25zOiBub25lDQo+IA0KPiBtbWlvIC0+IE1NSU8NCj4g DQo+ID4gKyAgICAgICAgICAgLWlycXM6IGRwbmkgbGluayBjaGFuZ2UNCj4gDQo+IGlycXMgLT4g SVJRcw0KPiBkcG5pIC0+IERQTkkNCj4gDQo+ID4gKyAgICAgICAgICAgLWNvbW1hbmRzOiBzZXQg bGluayB1cC9kb3duLCBsaW5rIGNvbmZpZywgZ2V0IHN0YXRzLA0KPiA+ICsgICAgICAgICAgICAg aXJxIGNvbmZpZywgZW5hYmxlLCByZXNldA0KPiANCj4gaXJxIC0+IElSUQ0KPiANCj4gPiArDQo+ ID4gKyAgICAgICAtRFBOSSAoRGF0YXBhdGggTmV0d29yayBJbnRlcmZhY2UpOiBjb250YWlucyBU WC9SWCBxdWV1ZXMsDQo+ID4gKyAgICAgICAgbmV0d29yayBpbnRlcmZhY2UgY29uZmlndXJhdGlv biwgYW5kIHJ4IGJ1ZmZlciBwb29sIGNvbmZpZ3VyYXRpb24NCj4gDQo+IHJ4IC0+IFJYDQo+IA0K PiA+ICsgICAgICAgIG1lY2hhbmlzbXMuDQo+ID4gKyAgICAgICAgICAgLW1taW8gcmVnaW9uczog bm9uZQ0KPiANCj4gbW1pbyAtPiBNTUlPDQo+IA0KPiA+ICsgICAgICAgICAgIC1pcnFzOiBsaW5r IHN0YXRlDQo+IA0KPiBpcnFzIC0+IElSUXMNCj4gDQo+ID4gKyAgICAgICAgICAgLWNvbW1hbmRz OiBwb3J0IGNvbmZpZywgb2ZmbG9hZCBjb25maWcsIHF1ZXVlIGNvbmZpZywNCj4gPiArICAgICAg ICAgICAgcGFyc2UvY2xhc3NpZnkgY29uZmlnLCBpcnEgY29uZmlnLCBlbmFibGUsIHJlc2V0DQo+ IA0KPiBpcnEgLT4gSVJRDQo+IA0KPiA+ICsNCj4gPiArICAgICAgIC1EUElPIChEYXRhcGF0aCBJ L08pOiBwcm92aWRlcyBpbnRlcmZhY2VzIHRvIGVucXVldWUgYW5kIGRlcXVldWUNCj4gPiArICAg ICAgICBwYWNrZXRzIGFuZCBkbyBoYXJkd2FyZSBidWZmZXIgcG9vbCBtYW5hZ2VtZW50IG9wZXJh dGlvbnMuICBGb3INCj4gPiArICAgICAgICBvcHRpbXVtIHBlcmZvcm1hbmNlIHRoZXJlIGlzIHR5 cGljYWxseSBEUElPIHBlciBDUFUuICBUaGlzIGFsbG93cw0KPiANCj4gRm9yIG9wdGltdW0gcGVy Zm9ybWFuY2UgdGhlcmUgaXMgdHlwaWNhbGx5IG9uZSBEUElPIGFzc2lnbmVkIHRvIGVhY2ggQ1BV DQo+IA0KPiA+ICsgICAgICAgIGVhY2ggQ1BVIHRvIHBlcmZvcm0gc2ltdWx0YW5lb3VzIGVucXVl dWUvZGVxdWV1ZSBvcGVyYXRpb25zLg0KPiANCj4gVGhpcyBhbGxvd3MgZGlmZmVyZW50IENQVXMg dG8gc2ltdWx0YW5lb3VzbHkgcGVyZm9ybSBlbnF1ZXVlL2RlcXVldWUgb3BlcmF0aW9ucy4NCj4g DQo+ID4gKyAgICAgICAgICAgLW1taW8gcmVnaW9uczogcXVldWUgb3BlcmF0aW9ucywgYnVmZmVy IG1nbXQNCj4gDQo+IG1taW8gLT4gTU1JTw0KPiBtZ210IC0+IG1hbmFnZW1lbnQNCj4gDQo+ID4g KyAgICAgICAgICAgLWlycXM6IGRhdGEgYXZhaWxhYmlsaXR5LCBjb25nZXN0aW9uIG5vdGlmaWNh dGlvbiwgYnVmZmVyDQo+ID4gKyAgICAgICAgICAgICAgICAgIHBvb2wgZGVwbGV0aW9uDQo+IA0K PiBpcnFzIC0+IElSUXMNCj4gDQo+ID4gKyAgICAgICAgICAgLWNvbW1hbmRzOiBpcnEgY29uZmln LCBlbmFibGUsIHJlc2V0DQo+IA0KPiBpcnEgLT4gSVJRDQo+IA0KPiA+ICsNCj4gPiArICAgICAg IC1EUEJQIChEYXRhcGF0aCBCdWZmZXIgUG9vbCk6IHJlcHJlc2VudHMgYSBoYXJkd2FyZSBidWZm ZXINCj4gPiArICAgICAgICBwb29sLg0KPiA+ICsgICAgICAgICAgIC1tbWlvIHJlZ2lvbnM6IG5v bmUNCj4gPiArICAgICAgICAgICAtaXJxczogbm9uZQ0KPiA+ICsgICAgICAgICAgIC1jb21tYW5k czogZW5hYmxlLCByZXNldA0KPiANCj4gbW1pbyAtPiBNTUlPDQo+IGlycXMgLT4gSVJRcw0KPiAN Cj4gPiArDQo+ID4gKyAgICAgICAtRFBNQ1AgKERhdGFwYXRoIE1DIFBvcnRhbCk6IHByb3ZpZGVz IGFuIE1DIGNvbW1hbmQgcG9ydGFsLg0KPiA+ICsgICAgICAgIFVzZWQgYnkgZHJpdmVycyB0byBz ZW5kIGNvbW1hbmRzIHRvIHRoZSBNQyB0byBtYW5hZ2UNCj4gPiArICAgICAgICBvYmplY3RzLg0K PiA+ICsgICAgICAgICAgIC1tbWlvIHJlZ2lvbnM6IE1DIGNvbW1hbmQgcG9ydGFsDQo+ID4gKyAg ICAgICAgICAgLWlycXM6IGNvbW1hbmQgY29tcGxldGlvbg0KPiA+ICsgICAgICAgICAgIC1jb21t YW5kczogaXJxIGNvbmZpZywgZW5hYmxlLCByZXNldA0KPiANCj4gbW1pbyAtPiBNTUlPDQo+IGly cXMgLT4gSVJRcw0KPiBpcnEgLT4gSVJRDQo+IA0KPiA+ICsNCj4gPiArICAgIE9iamVjdCBDb25u ZWN0aW9ucw0KPiA+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKyAgICBTb21lIG9iamVj dHMgaGF2ZSBleHBsaWNpdCByZWxhdGlvbnNoaXBzIHRoYXQgbXVzdA0KPiA+ICsgICAgYmUgY29u ZmlndXJlZDoNCj4gPiArDQo+ID4gKyAgICAgICAtRFBOSSA8LS0+IERQTUFDDQo+ID4gKyAgICAg ICAtRFBOSSA8LS0+IERQTkkNCj4gPiArICAgICAgIC1EUE5JIDwtLT4gTDItc3dpdGNoLXBvcnQN Cj4gPiArICAgICAgICAgIEEgRFBOSSBtdXN0IGJlIGNvbm5lY3RlZCB0byBzb21ldGhpbmcgc3Vj aCBhcyBhIERQTUFDLA0KPiA+ICsgICAgICAgICAgYW5vdGhlciBEUE5JLCBvciBMMiBzd2l0Y2gg cG9ydC4gIFRoZSBEUE5JIGNvbm5lY3Rpb24NCj4gPiArICAgICAgICAgIGlzIG1hZGUgdmlhIGEg RFBSQyBjb21tYW5kLg0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICArLS0tLS0tLSsgICstLS0t LS0tKw0KPiA+ICsgICAgICAgICAgICAgIHwgRFBOSSAgfCAgfCBEUE1BQyB8DQo+ID4gKyAgICAg ICAgICAgICAgKy0tLSstLS0rICArLS0tKy0tLSsNCj4gPiArICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICs9PT09PT09PT09Kw0KPiA+ICsNCj4g PiArICAgICAgIC1EUE5JIDwtLT4gRFBCUA0KPiA+ICsgICAgICAgICAgQSBuZXR3b3JrIGludGVy ZmFjZSByZXF1aXJlcyBhICdidWZmZXIgcG9vbCcgKERQQlANCj4gPiArICAgICAgICAgIG9iamVj dCkgd2hpY2ggcHJvdmlkZXMgYSBsaXN0IG9mIHBvaW50ZXJzIHRvIG1lbW9yeQ0KPiA+ICsgICAg ICAgICAgd2hlcmUgcmVjZWl2ZWQgRXRoZXJuZXQgZGF0YSBpcyB0byBiZSBjb3BpZWQuICBUaGUN Cj4gPiArICAgICAgICAgIEV0aGVybmV0IGRyaXZlciBjb25maWd1cmVzIHRoZSBEUEJQcyBhc3Nv Y2lhdGVkIHdpdGgNCj4gPiArICAgICAgICAgIHRoZSBuZXR3b3JrIGludGVyZmFjZS4NCj4gPiAr DQo+ID4gKyAgICBJbnRlcnJ1cHRzDQo+ID4gKyAgICAtLS0tLS0tLS0tDQo+ID4gKyAgICBBbGwg aW50ZXJydXB0cyBnZW5lcmF0ZWQgYnkgRFBBQTIgb2JqZWN0cyBhcmUgbWVzc2FnZQ0KPiA+ICsg ICAgaW50ZXJydXB0cy4gIEF0IHRoZSBoYXJkd2FyZSBsZXZlbCBtZXNzYWdlIGludGVycnVwdHMN Cj4gPiArICAgIGdlbmVyYXRlZCBieSBkZXZpY2VzIHdpbGwgbm9ybWFsbHkgaGF2ZSAzIGNvbXBv bmVudHMtLQ0KPiA+ICsgICAgMSkgYSBub24tc3Bvb2ZhYmxlICdkZXZpY2UtaWQnIGV4cHJlc3Nl ZCBvbiB0aGUgaGFyZHdhcmUNCj4gPiArICAgIGJ1cywgMikgYW4gYWRkcmVzcywgMykgYSBkYXRh IHZhbHVlLg0KPiA+ICsNCj4gPiArICAgIEluIHRoZSBjYXNlIG9mIERQQUEyIGRldmljZXMvb2Jq ZWN0cywgYWxsIG9iamVjdHMgaW4gdGhlDQo+ID4gKyAgICBzYW1lIGNvbnRhaW5lci9EUFJDIHNo YXJlIHRoZSBzYW1lICdkZXZpY2UtaWQnLg0KPiA+ICsgICAgRm9yIEFSTS1iYXNlZCBTb0MgdGhp cyBpcyB0aGUgc2FtZSBhcyB0aGUgc3RyZWFtIElELg0KPiA+ICsNCj4gPiArDQo+ID4gK0RQQUEy IExpbnV4IERyaXZlciBPdmVydmlldw0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gPiArDQo+ID4gK1RoaXMgc2VjdGlvbiBwcm92aWRlcyBhbiBvdmVydmlldyBvZiB0aGUgTGlu dXgga2VybmVsIGRyaXZlcnMgZm9yDQo+ID4gK0RQQUEyLS0gMSkgdGhlIGJ1cyBkcml2ZXIgYW5k IGFzc29jaWF0ZWQgIkRQQUEyIGluZnJhc3RydWN0dXJlIg0KPiA+ICtkcml2ZXJzIGFuZCAyKSBm dW5jdGlvbmFsIG9iamVjdCBkcml2ZXJzIChzdWNoIGFzIEV0aGVybmV0KS4NCj4gPiArDQo+ID4g K0FzIGRlc2NyaWJlZCBwcmV2aW91c2x5LCBhIERQUkMgaXMgYSBjb250YWluZXIgdGhhdCBob2xk cyB0aGUgb3RoZXINCj4gPiArdHlwZXMgb2YgRFBBQTIgb2JqZWN0cy4gIEl0IGlzIGZ1bmN0aW9u YWxseSBzaW1pbGFyIHRvIGEgcGx1Zy1hbmQtcGxheQ0KPiA+ICtidXMgY29udHJvbGxlci4NCj4g PiArDQo+ID4gK0VhY2ggb2JqZWN0IGluIHRoZSBEUFJDIGlzIGEgTGludXggImRldmljZSIgYW5k IGlzIGJvdW5kIHRvIGEgZHJpdmVyLg0KPiA+ICtUaGUgZGlhZ3JhbSBiZWxvdyBzaG93cyB0aGUg TGludXggZHJpdmVycyBpbnZvbHZlZCBpbiBhIG5ldHdvcmtpbmcNCj4gPiArc2NlbmFyaW8gYW5k IHRoZSBvYmplY3RzIGJvdW5kIHRvIGVhY2ggZHJpdmVyLiAgQSBicmllZiBkZXNjcmlwdGlvbg0K PiA+ICtvZiBlYWNoIGRyaXZlciBmb2xsb3dzLg0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLSsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBPUyBOZXR3b3JrIHwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIFN0YWNr ICAgIHwNCj4gPiArICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAg Ky0tLS0tLS0tLS0tLSsNCj4gPiArICAgICAgICAgICAgICAgICB8IEFsbG9jYXRvciAgfC4gLiAu IC4gLiAuIC4gfCAgRXRoZXJuZXQgIHwNCj4gPiArICAgICAgICAgICAgICAgICB8KGRwbWNwLGRw YnApfCAgICAgICAgICAgICAgfCAgIChkcG5pKSAgIHwNCj4gPiArICAgICAgICAgICAgICAgICAr LS4tLS0tLS0tLS0tKyAgICAgICAgICAgICAgKy0tLSstLS0rLS0tLSsNCj4gPiArICAgICAgICAg ICAgICAgICAgLiAgICAgICAgICAuICAgICAgICAgICAgICAgICAgIF4gICB8DQo+ID4gKyAgICAg ICAgICAgICAgICAgLiAgICAgICAgICAgIC4gICAgIDxkYXRhIGF2YWlsLCB8ICAgfDxlbnF1ZXVl LA0KPiA+ICsgICAgICAgICAgICAgICAgLiAgICAgICAgICAgICAgLiAgICAgdHggY29uZmlybT4g fCAgIHwgZGVxdWV1ZT4NCj4gPiArICAgICstLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAuICAg ICAgICAgICAgICAgIHwgICB8DQo+ID4gKyAgICB8IERQUkMgZHJpdmVyIHwgICAgICAgICAgICAg IC4gICAgICAgICAgICstLS0rLS0tVi0tLS0rICAgICArLS0tLS0tLS0tKw0KPiA+ICsgICAgfCAg IChkcHJjKSAgICB8ICAgICAgICAgICAgICAgLiAuIC4gLiAuIC58IERQSU8gZHJpdmVyfCAgICAg fCAgIE1BQyAgIHwNCj4gPiArICAgICstLS0tLS0tLS0tKy0tKyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgKGRwaW8pICAgIHwgICAgIHwgKGRwbWFjKSB8DQo+ID4gKyAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0rLS0tLS0rICAgICArLS0tLS0r LS0tKw0KPiA+ICsgICAgICAgICAgICAgICB8PGRldiBhZGQvcmVtb3ZlPiAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICAg ICAgICAgKy0tLS0rLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgKy0tKy0tLSsNCj4gPiArICAgICAgICAgIHwgICBtYy1idXMgZHJpdmVyICAgfCAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgUEhZICB8DQo+ID4gKyAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ZHJpdmVyfA0KPiA+ICsgICAgICAgICAgfCAvZnNsLW1jQDgwYzAwMDAwMCB8ICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgKy0tKy0tLSsNCj4gPiArICAgICAgICAgICstLS0tLS0t LS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgIHwNCj4gPiArID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 IEhBUkRXQVJFID09PT09PT09PXw9PT09PT09PT09PT09PT09PXw9PT09PT0NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUElPICAgICAgICAg ICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUE5JLS0tRFBCUCAgICAgICAgIHwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEUE1BQyAgICAgICAgICAgICAgIHwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UEhZIC0tLS0tLS0tLS0tLS0tLSsNCj4gPiArID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PXw9PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiArDQo+ ID4gK0EgYnJpZWYgZGVzY3JpcHRpb24gb2YgZWFjaCBkcml2ZXIgaXMgcHJvdmlkZWQgYmVsb3cu DQo+ID4gKw0KPiA+ICsgICAgbWMtYnVzIGRyaXZlcg0KPiA+ICsgICAgLS0tLS0tLS0tLS0tLQ0K PiBtYy1idXMgLT4gTUMtQnVzIG9yIE1DLWJ1cw0KPiA+ICsgICAgVGhlIG1jLWJ1cyBkcml2ZXIg aXMgYSBwbGF0Zm9ybSBkcml2ZXIgYW5kIGlzIHByb2JlZCBmcm9tIGFuDQo+ID4gKyAgICAiL2Zz bC1tY0B4eHh4IiBub2RlIGluIHRoZSBkZXZpY2UgdHJlZSBwYXNzZWQgaW4gYnkgYm9vdCBmaXJt d2FyZS4NCj4gPiArICAgIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBib290c3RyYXBwaW5nIHRoZSBE UEFBMiBrZXJuZWwgaW5mcmFzdHJ1Y3R1cmUuDQo+ID4gKyAgICBLZXkgZnVuY3Rpb25zIGluY2x1 ZGU6DQo+ID4gKyAgICAgICAtcmVnaXN0ZXJpbmcgYSBuZXcgYnVzIHR5cGUgbmFtZWQgImZzbC1t YyIgd2l0aCB0aGUga2VybmVsLA0KPiA+ICsgICAgICAgIGFuZCBpbXBsZW1lbnRpbmcgYnVzIGNh bGwtYmFja3MgKGUuZy4gbWF0Y2gvdWV2ZW50L2Rldl9ncm91cHMpDQo+ID4gKyAgICAgICAtaW1w bGVtZXRpbmcgQVBJcyBmb3IgRFBBQTIgZHJpdmVyIHJlZ2lzdHJhdGlvbiBhbmQgZm9yIGRldmlj ZQ0KPiA+ICsgICAgICAgIGFkZC9yZW1vdmUNCj4gPiArICAgICAgIC1jcmVhdGVzIGFuIE1TSSBp cnEgZG9tYWluDQo+IGlycSAtPiBJUlENCj4gPiArICAgICAgIC1kbyBhIGRldmljZSBhZGQgb2Yg dGhlICdyb290JyBEUFJDIGRldmljZSwgd2hpY2ggaXMgbmVlZGVkDQo+ID4gKyAgICAgICAgdG8g Ym9vdHN0cmFwIHRoaW5ncw0KPiA+ICsNCj4gPiArICAgIERQUkMgZHJpdmVyDQo+ID4gKyAgICAt LS0tLS0tLS0tLQ0KPiA+ICsgICAgVGhlIGRwcmMtZHJpdmVyIGlzIGJvdW5kIERQUkMgb2JqZWN0 cyBhbmQgZG9lcyBydW50aW1lIG1hbmFnZW1lbnQNCj4gPiArICAgIG9mIGEgYnVzIGluc3RhbmNl LiAgSXQgcGVyZm9ybXMgdGhlIGluaXRpYWwgYnVzIHNjYW4gb2YgdGhlIERQUkMNCj4gPiArICAg IGFuZCBoYW5kbGVzIGludGVycnVwdHMgZm9yIGNvbnRhaW5lciBldmVudHMgc3VjaCBhcyBob3Qg cGx1Zy4NCj4gPiArDQo+ID4gKyAgICBBbGxvY2F0b3INCj4gPiArICAgIC0tLS0tLS0tLS0NCj4g PiArICAgIENlcnRhaW4gb2JqZWN0cyBzdWNoIGFzIERQTUNQIGFuZCBEUEJQIGFyZSBnZW5lcmlj IGFuZCBmdW5naWJsZSwNCj4gPiArICAgIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBv dGhlciBkcml2ZXJzLiAgRm9yIGV4YW1wbGUsDQo+ID4gKyAgICB0aGUgRFBBQTIgRXRoZXJuZXQg ZHJpdmVyIG5lZWRzOg0KPiA+ICsgICAgICAgLURQTUNQcyB0byBzZW5kIE1DIGNvbW1hbmRzLCB0 byBjb25maWd1cmUgbmV0d29yayBpbnRlcmZhY2VzDQo+ID4gKyAgICAgICAtRFBCUHMgZm9yIG5l dHdvcmsgYnVmZmVyIHBvb2xzDQo+ID4gKw0KPiA+ICsgICAgVGhlIGFsbG9jYXRvciBkcml2ZXIg cmVnaXN0ZXJzIGZvciB0aGVzZSBhbGxvY2F0YWJsZSBvYmplY3QgdHlwZXMNCj4gPiArICAgIGFu ZCB0aG9zZSBvYmplY3RzIGFyZSBib3VuZCB0byB0aGUgYWxsb2NhdG9yIHdoZW4gdGhlIGJ1cyBp cyBwcm9iZWQuDQo+ID4gKyAgICBUaGUgYWxsb2NhdG9yIG1haW50YWlucyBhIHBvb2wgb2Ygb2Jq ZWN0cyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yDQo+ID4gKyAgICBhbGxvY2F0aW9uIGJ5IG90aGVy IERQQUEyIGRyaXZlcnMuDQo+ID4gKw0KPiA+ICsgICAgRFBJTyBkcml2ZXINCj4gPiArICAgIC0t LS0tLS0tLS0tDQo+ID4gKyAgICBUaGUgRFBJTyBkcml2ZXIgaXMgYm91bmQgdG8gRFBJTyBvYmpl Y3RzIGFuZCBwcm92aWRlcyBzZXJ2aWNlcyB0aGF0IGFsbG93DQo+ID4gKyAgICBvdGhlciBkcml2 ZXJzIHN1Y2ggYXMgdGhlIEV0aGVybmV0IGRyaXZlciB0byByZWNlaXZlIGFuZCB0cmFuc21pdCBk YXRhLg0KPiA+ICsgICAgS2V5IHNlcnZpY2VzIGluY2x1ZGU6DQo+ID4gKyAgICAgICAgLWRhdGEg YXZhaWxhYmlsaXR5IG5vdGlmaWNhdGlvbnMNCj4gPiArICAgICAgICAtaGFyZHdhcmUgcXVldWlu ZyBvcGVyYXRpb25zIChlbnF1ZXVlIGFuZCBkZXF1ZXVlIG9mIGRhdGEpDQo+ID4gKyAgICAgICAg LWhhcmR3YXJlIGJ1ZmZlciBwb29sIG1hbmFnZW1lbnQNCj4gPiArDQo+ID4gKyAgICBUaGVyZSBp cyB0eXBpY2FsbHkgb25lIERQSU8gb2JqZWN0IHBlciBwaHlzaWNhbCBDUFUgZm9yIG9wdGltdW0N Cj4gPiArICAgIHBlcmZvcm1hbmNlLCBhbGxvd2luZyBlYWNoIENQVSB0byBzaW11bHRhbmVvdXNs eSBlbnF1ZXVlDQo+ID4gKyAgICBhbmQgZGVxdWV1ZSBkYXRhLg0KPiANCj4gYWxsb3dpbmcgZGlm ZmVyZW50IENQVXMgdG8gc2ltdWx0YW5lb3VzbHkgLi4uDQo+IA0KPiA+ICsNCj4gPiArICAgIFRo ZSBEUElPIGRyaXZlciBvcGVyYXRlcyBvbiBiZWhhbGYgb2YgYWxsIERQQUEyIGRyaXZlcnMNCj4g PiArICAgIGFjdGl2ZSBpbiB0aGUga2VybmVsLS0gIEV0aGVybmV0LCBjcnlwdG8sIGNvbXByZXNz aW9uLA0KPiA+ICsgICAgZXRjLg0KPiA+ICsNCj4gPiArICAgIEV0aGVybmV0DQo+ID4gKyAgICAt LS0tLS0tLQ0KPiA+ICsgICAgVGhlIEV0aGVybmV0IGRyaXZlciBpcyBib3VuZCB0byBhIERQTkkg YW5kIGltcGxlbWVudHMgdGhlIGtlcm5lbA0KPiA+ICsgICAgaW50ZXJmYWNlcyBuZWVkZWQgdG8g Y29ubmVjdCB0aGUgRFBBQTIgbmV0d29yayBpbnRlcmZhY2UgdG8NCj4gPiArICAgIHRoZSBuZXR3 b3JrIHN0YWNrLg0KPiA+ICsNCj4gPiArICAgIEVhY2ggRFBOSSBjb3JyZXNwb25kcyB0byBhIExp bnV4IG5ldHdvcmsgaW50ZXJmYWNlLg0KPiA+ICsNCj4gPiArICAgIE1BQyBkcml2ZXINCj4gPiAr ICAgIC0tLS0tLS0tLS0NCj4gPiArICAgIEFuIEV0aGVybmV0IFBIWSBpcyBhbiBvZmYtY2hpcCwg Ym9hcmQgc3BlY2lmaWMgY29tcG9uZW50IGFuZCBpcyBtYW5hZ2VkDQo+ID4gKyAgICBieSB0aGUg YXBwcm9wcmlhdGUgUEhZIGRyaXZlciB2aWEgYW4gbWRpbyBidXMuICBUaGUgTUFDIGRyaXZlcg0K PiA+ICsgICAgcGxheXMgYSByb2xlIG9mIGJlaW5nIGEgcHJveHkgYmV0d2VlbiB0aGUgUEhZIGRy aXZlciBhbmQgdGhlDQo+ID4gKyAgICBNQy4gIEl0IGRvZXMgdGhpcyBwcm94eSB2aWEgdGhlIE1D IGNvbW1hbmRzIHRvIGEgRFBNQUMgb2JqZWN0Lg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvZnNsLW1jL1RPRE8gYi9kcml2ZXJzL3N0YWdpbmcvZnNsLW1jL1RPRE8NCj4gPiBpbmRl eCBjMjk1MTZiLi4zODk0MzY4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9mc2wt bWMvVE9ETw0KPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9mc2wtbWMvVE9ETw0KPiA+IEBAIC0x LDcgKzEsMyBAQA0KPiA+IC0qIEFkZCBSRUFETUUgZmlsZSAod2l0aCBBU0NJSSBhcnQpIGRlc2Ny aWJpbmcgcmVsYXRpb25zaGlwcyBiZXR3ZWVuDQo+ID4gLSAgRFBBQTIgb2JqZWN0cyBhbmQgaG93 IGNvbWJpbmUgdGhlbSB0byBtYWtlIGEgTklDLCBhbiBMUzIgc3dpdGNoLCBldGMuDQo+ID4gLSAg QWxzbywgZGVmaW5lIGFsbCBhY3JvbnltcyB1c2VkLg0KPiA+IC0NCj4gPiAgKiBEZWNpZGUgaWYg bXVsdGlwbGUgcm9vdCBmc2wtbWMgYnVzZXMgd2lsbCBiZSBzdXBwb3J0ZWQgcGVyIExpbnV4IGlu c3RhbmNlLA0KPiA+ICAgIGFuZCBpZiBzbyBhZGQgc3VwcG9ydCBmb3IgdGhpcy4NCj4gPg0KDQpB cHByZWNpYXRlIHRoZSBkZXRhaWxlZCByZXZpZXcuICBMaWtlIG1vc3Qgb2YgeW91ciBzdWdnZXN0 aW9ucyBhbmQNCndpbGwgaW5jb3Jwb3JhdGUgb24gdGhlIG5leHQgdXBkYXRlIHRvIHRoaXMgZG9j dW1lbnQuDQoNClN0dWFydA0K -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web