Data set Packages
##----------------------------------------------------------------------------------
## data()
##----------------------------------------------------------------------------------
if("hflights" %in% installed.packages() == FALSE)install.packages("hflights")
library(hflights)
# 미국 휴스턴에서 출발하는 모든 비행기의 2011년 이착륙기록이 수록된 것으로
# 227,496건의 이착륙기록에 대해 21개 항목을 수집한 데이터
if("MASS" %in% installed.packages() == FALSE)install.packages("MASS")
library(MASS)
if("datasets" %in% installed.packages() == FALSE)install.packages("datasets")
library(datasets)
data()
Data sets in package ¡®plyr¡¯:
# baseball Yearly batting records for all
# major league baseball players
# ozone Monthly ozone measurements
# over Central America.
#
# Data sets in package ¡®reshape¡¯:
#
# french_fries Sensory data from a french
# fries experiment
# smiths Demo data describing the
# Smiths
# tips Tipping data
#
Data sets in package ¡®dplyr¡¯:
# band_instruments
# Band membership
# band_instruments2
# Band membership
# band_members Band membership
# nasa NASA spatio-temporal data
# starwars Starwars characters
# storms Storm tracks data
#
# Data sets in package ¡®ggmap¡¯:
#
# crime Crime data
# hadley Highly unofficial ggplot2
# image
# wind Wind data from Hurricane Ike
# zips Zip code data for the Greater
# Houston Metropolitan Area from
# the 2000 census
#
# Data sets in package ¡®ggplot2¡¯:
#
# diamonds Prices of 50,000 round cut
# diamonds
# economics US economic time series
# economics_long
# US economic time series
# faithfuld 2d density estimate of Old
# Faithful data
# luv_colours 'colors()' in Luv space
# midwest Midwest demographics
# mpg Fuel economy data from 1999
# and 2008 for 38 popular models
# of car
# msleep An updated and expanded
# version of the mammals sleep
# dataset
# presidential Terms of 11 presidents from
# Eisenhower to Obama
# seals Vector field of seal movements
# txhousing Housing sales in TX
Data sets in package ¡®datasets¡¯:
#
# AirPassengers
# Monthly Airline Passenger
# Numbers 1949-1960
# BJsales Sales Data with Leading
# Indicator
# BJsales.lead (BJsales)
# Sales Data with Leading
# Indicator
# BOD Biochemical Oxygen Demand
# CO2 Carbon Dioxide Uptake in Grass
# Plants
# ChickWeight Weight versus age of chicks on
# different diets
# DNase Elisa assay of DNase
# EuStockMarkets
# Daily Closing Prices of Major
# European Stock Indices,
# 1991-1998
# Formaldehyde Determination of Formaldehyde
# HairEyeColor Hair and Eye Color of
# Statistics Students
# Harman23.cor Harman Example 2.3
# Harman74.cor Harman Example 7.4
# Indometh Pharmacokinetics of
# Indomethacin
# InsectSprays Effectiveness of Insect Sprays
# JohnsonJohnson
# Quarterly Earnings per Johnson
# & Johnson Share
# LakeHuron Level of Lake Huron 1875-1972
# LifeCycleSavings
# Intercountry Life-Cycle
# Savings Data
# Loblolly Growth of Loblolly pine trees
# Nile Flow of the River Nile
# Orange Growth of Orange Trees
# OrchardSprays
# Potency of Orchard Sprays
# PlantGrowth Results from an Experiment on
# Plant Growth
# Puromycin Reaction Velocity of an
# Enzymatic Reaction
# Seatbelts Road Casualties in Great
# Britain 1969-84
# Theoph Pharmacokinetics of
# Theophylline
# Titanic Survival of passengers on the
# Titanic
# ToothGrowth The Effect of Vitamin C on
# Tooth Growth in Guinea Pigs
# UCBAdmissions
# Student Admissions at UC
# Berkeley
# UKDriverDeaths
# Road Casualties in Great
# Britain 1969-84
# UKgas UK Quarterly Gas Consumption
# USAccDeaths Accidental Deaths in the US
# 1973-1978
# USArrests Violent Crime Rates by US
# State
# USJudgeRatings
# Lawyers' Ratings of State
# Judges in the US Superior
# Court
# USPersonalExpenditure
# Personal Expenditure Data
# UScitiesD Distances Between European
# Cities and Between US Cities
# VADeaths Death Rates in Virginia (1940)
# WWWusage Internet Usage per Minute
# WorldPhones The World's Telephones
# ability.cov Ability and Intelligence Tests
# airmiles Passenger Miles on Commercial
# US Airlines, 1937-1960
# airquality New York Air Quality
# Measurements
# anscombe Anscombe's Quartet of
# 'Identical' Simple Linear
# Regressions
# attenu The Joyner-Boore Attenuation
# Data
# attitude The Chatterjee-Price Attitude
# Data
# austres Quarterly Time Series of the
# Number of Australian Residents
# beaver1 (beavers)
# Body Temperature Series of Two
# Beavers
# beaver2 (beavers)
# Body Temperature Series of Two
# Beavers
# cars Speed and Stopping Distances
# of Cars
# chickwts Chicken Weights by Feed Type
# co2 Mauna Loa Atmospheric CO2
# Concentration
# crimtab Student's 3000 Criminals Data
# discoveries Yearly Numbers of Important
# Discoveries
# esoph Smoking, Alcohol and
# (O)esophageal Cancer
# euro Conversion Rates of Euro
# Currencies
# euro.cross (euro)
# Conversion Rates of Euro
# Currencies
# eurodist Distances Between European
# Cities and Between US Cities
# faithful Old Faithful Geyser Data
# fdeaths (UKLungDeaths)
# Monthly Deaths from Lung
# Diseases in the UK
# freeny Freeny's Revenue Data
# freeny.x (freeny)
# Freeny's Revenue Data
# freeny.y (freeny)
# Freeny's Revenue Data
# infert Infertility after Spontaneous
# and Induced Abortion
# iris Edgar Anderson's Iris Data
# iris3 Edgar Anderson's Iris Data
# islands Areas of the World's Major
# Landmasses
# ldeaths (UKLungDeaths)
# Monthly Deaths from Lung
# Diseases in the UK
# lh Luteinizing Hormone in Blood
# Samples
# longley Longley's Economic Regression
# Data
# lynx Annual Canadian Lynx trappings
# 1821-1934
# mdeaths (UKLungDeaths)
# Monthly Deaths from Lung
# Diseases in the UK
# morley Michelson Speed of Light Data
# mtcars Motor Trend Car Road Tests
# nhtemp Average Yearly Temperatures in
# New Haven
# nottem Average Monthly Temperatures
# at Nottingham, 1920-1939
# npk Classical N, P, K Factorial
# Experiment
# occupationalStatus
# Occupational Status of Fathers
# and their Sons
# precip Annual Precipitation in US
# Cities
# presidents Quarterly Approval Ratings of
# US Presidents
# pressure Vapor Pressure of Mercury as a
# Function of Temperature
# quakes Locations of Earthquakes off
# Fiji
# randu Random Numbers from
# Congruential Generator RANDU
# rivers Lengths of Major North
# American Rivers
# rock Measurements on Petroleum Rock
# Samples
# sleep Student's Sleep Data
# stack.loss (stackloss)
# Brownlee's Stack Loss Plant
# Data
# stack.x (stackloss)
# Brownlee's Stack Loss Plant
# Data
# stackloss Brownlee's Stack Loss Plant
# Data
# state.abb (state)
# US State Facts and Figures
# state.area (state)
# US State Facts and Figures
# state.center (state)
# US State Facts and Figures
# state.division (state)
# US State Facts and Figures
# state.name (state)
# US State Facts and Figures
# state.region (state)
# US State Facts and Figures
# state.x77 (state)
# US State Facts and Figures
# sunspot.month
# Monthly Sunspot Data, from
# 1749 to "Present"
# sunspot.year Yearly Sunspot Data, 1700-1988
# sunspots Monthly Sunspot Numbers,
# 1749-1983
# swiss Swiss Fertility and
# Socioeconomic Indicators
# (1888) Data
# treering Yearly Treering Data,
# -6000-1979
# trees Girth, Height and Volume for
# Black Cherry Trees
# uspop Populations Recorded by the US
# Census
# volcano Topographic Information on
# Auckland's Maunga Whau Volcano
# warpbreaks The Number of Breaks in Yarn
# during Weaving
# women Average Heights and Weights
# for American Women
#
Data sets in package ¡®googleVis¡¯:
# Andrew Hurricane Andrew: googleVis
# example data set
# Cairo Daily temperature data for
# Cairo
# CityPopularity
# CityPopularity: googleVis
# example data set
# Exports Exports: googleVis example
# data set
# Fruits Fruits: googleVis example data
# set
# OpenClose OpenClose: googleVis example
# data set
# Population Population: googleVis example
# data set
# Regions Regions: googleVis example
# data set
# Stock Stock: googleVis example data
# set
# dino Dinosaur data
Data sets in package ¡®hflights¡¯:
# hflights Houston flights data
#
Data sets in package ¡®MASS¡¯:
# Aids2 Australian AIDS Survival Data
# Animals Brain and Body Weights for 28
# Species
# Boston Housing Values in Suburbs of
# Boston
# Cars93 Data from 93 Cars on Sale in
# the USA in 1993
# Cushings Diagnostic Tests on Patients
# with Cushing's Syndrome
# DDT DDT in Kale
# GAGurine Level of GAG in Urine of
# Children
# Insurance Numbers of Car Insurance
# claims
# Melanoma Survival from Malignant
# Melanoma
# OME Tests of Auditory Perception
# in Children with OME
# Pima.te Diabetes in Pima Indian Women
# Pima.tr Diabetes in Pima Indian Women
# Pima.tr2 Diabetes in Pima Indian Women
# Rabbit Blood Pressure in Rabbits
# Rubber Accelerated Testing of Tyre
# Rubber
# SP500 Returns of the Standard and
# Poors 500
# Sitka Growth Curves for Sitka Spruce
# Trees in 1988
# Sitka89 Growth Curves for Sitka Spruce
# Trees in 1989
# Skye AFM Compositions of Aphyric
# Skye Lavas
# Traffic Effect of Swedish Speed Limits
# on Accidents
# UScereal Nutritional and Marketing
# Information on US Cereals
# UScrime The Effect of Punishment
# Regimes on Crime Rates
# VA Veteran's Administration Lung
# Cancer Trial
# abbey Determinations of Nickel
# Content
# accdeaths Accidental Deaths in the US
# 1973-1978
# anorexia Anorexia Data on Weight Change
# bacteria Presence of Bacteria after
# Drug Treatments
# beav1 Body Temperature Series of
# Beaver 1
# beav2 Body Temperature Series of
# Beaver 2
# biopsy Biopsy Data on Breast Cancer
# Patients
# birthwt Risk Factors Associated with
# Low Infant Birth Weight
# cabbages Data from a cabbage field
# trial
# caith Colours of Eyes and Hair of
# People in Caithness
# cats Anatomical Data from Domestic
# Cats
# cement Heat Evolved by Setting
# Cements
# chem Copper in Wholemeal Flour
# coop Co-operative Trial in
# Analytical Chemistry
# cpus Performance of Computer CPUs
# crabs Morphological Measurements on
# Leptograpsus Crabs
# deaths Monthly Deaths from Lung
# Diseases in the UK
# drivers Deaths of Car Drivers in Great
# Britain 1969-84
# eagles Foraging Ecology of Bald
# Eagles
# epil Seizure Counts for Epileptics
# farms Ecological Factors in Farm
# Management
# fgl Measurements of Forensic Glass
# Fragments
# forbes Forbes' Data on Boiling Points
# in the Alps
# galaxies Velocities for 82 Galaxies
# gehan Remission Times of Leukaemia
# Patients
# genotype Rat Genotype Data
# geyser Old Faithful Geyser Data
# gilgais Line Transect of Soil in
# Gilgai Territory
# hills Record Times in Scottish Hill
# Races
# housing Frequency Table from a
# Copenhagen Housing Conditions
# Survey
# immer Yields from a Barley Field
# Trial
# leuk Survival Times and White Blood
# Counts for Leukaemia Patients
# mammals Brain and Body Weights for 62
# Species of Land Mammals
# mcycle Data from a Simulated
# Motorcycle Accident
# menarche Age of Menarche in Warsaw
# michelson Michelson's Speed of Light
# Data
# minn38 Minnesota High School
# Graduates of 1938
# motors Accelerated Life Testing of
# Motorettes
# muscle Effect of Calcium Chloride on
# Muscle Contraction in Rat
# Hearts
# newcomb Newcomb's Measurements of the
# Passage Time of Light
# nlschools Eighth-Grade Pupils in the
# Netherlands
# npk Classical N, P, K Factorial
# Experiment
# npr1 US Naval Petroleum Reserve No.
# 1 data
# oats Data from an Oats Field Trial
# painters The Painter's Data of de Piles
# petrol N. L. Prater's Petrol Refinery
# Data
# phones Belgium Phone Calls 1950-1973
# quine Absenteeism from School in
# Rural New South Wales
# road Road Accident Deaths in US
# States
# rotifer Numbers of Rotifers by Fluid
# Density
# ships Ships Damage Data
# shoes Shoe wear data of Box, Hunter
# and Hunter
# shrimp Percentage of Shrimp in Shrimp
# Cocktail
# shuttle Space Shuttle Autolander
# Problem
# snails Snail Mortality Data
# steam The Saturated Steam Pressure
# Data
# stormer The Stormer Viscometer Data
# survey Student Survey Data
# synth.te Synthetic Classification
# Problem
# synth.tr Synthetic Classification
# Problem
# topo Spatial Topographic Data
# waders Counts of Waders at 15 Sites
# in South Africa
# whiteside House Insulation: Whiteside's
# Data
# wtloss Weight Loss Data from an Obese
# Patient
#
Data sets in package ¡®RGA¡¯:
#
# ga Lists all columns for a Google
# Analytics core report type
Data sets in package ¡®stringr¡¯:
# fruit Sample character vectors for
# practicing string
# manipulations.
# sentences Sample character vectors for
# practicing string
# manipulations.
# words Sample character vectors for
# practicing string
# manipulations.
Data sets in package ¡®wordcloud¡¯:
# SOTU United States State of the
# Union Addresses (2010 and
# 2011)
#
# Use ¡®data(package = .packages(all.available = TRUE))¡¯
# to list the data sets in all *available* packages.
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KRGF0YSBzZXQgUGFja2FnZXMNCg0KYGBge3J9DQojIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMjIGRhdGEoKQ0KIyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZigiaGZsaWdodHMiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCkgPT0gRkFMU0UpaW5zdGFsbC5wYWNrYWdlcygiaGZsaWdodHMiKQ0KICAgbGlicmFyeShoZmxpZ2h0cykNCiMg66+46rWtIO2ctOyKpO2EtOyXkOyEnCDstpzrsJztlZjripQg66qo65OgIOu5hO2Wieq4sOydmCAyMDEx64WEIOydtOywqeulmeq4sOuhneydtCDsiJjroZ3rkJwg6rKD7Jy866GcDQojIDIyNyw0OTbqsbTsnZgg7J207LCp66WZ6riw66Gd7JeQIOuMgO2VtCAyMeqwnCDtla3rqqnsnYQg7IiY7KeR7ZWcIOuNsOydtO2EsA0KaWYoIk1BU1MiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCkgPT0gRkFMU0UpaW5zdGFsbC5wYWNrYWdlcygiTUFTUyIpDQogICBsaWJyYXJ5KE1BU1MpDQppZigiZGF0YXNldHMiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCkgPT0gRkFMU0UpaW5zdGFsbC5wYWNrYWdlcygiZGF0YXNldHMiKQ0KICAgbGlicmFyeShkYXRhc2V0cykNCmRhdGEoKQ0KYGBgDQpEYXRhIHNldHMgaW4gcGFja2FnZSDCocKucGx5csKhwq86DQpgYGB7cn0NCiMgYmFzZWJhbGwgICAgICAgWWVhcmx5IGJhdHRpbmcgcmVjb3JkcyBmb3IgYWxsDQojICAgICAgICAgICAgICAgIG1ham9yIGxlYWd1ZSBiYXNlYmFsbCBwbGF5ZXJzDQojIG96b25lICAgICAgICAgIE1vbnRobHkgb3pvbmUgbWVhc3VyZW1lbnRzDQojICAgICAgICAgICAgICAgIG92ZXIgQ2VudHJhbCBBbWVyaWNhLg0KIyANCiMgRGF0YSBzZXRzIGluIHBhY2thZ2UgwqHCrnJlc2hhcGXCocKvOg0KIyANCiMgZnJlbmNoX2ZyaWVzICAgU2Vuc29yeSBkYXRhIGZyb20gYSBmcmVuY2gNCiMgICAgICAgICAgICAgICAgZnJpZXMgZXhwZXJpbWVudA0KIyBzbWl0aHMgICAgICAgICBEZW1vIGRhdGEgZGVzY3JpYmluZyB0aGUNCiMgICAgICAgICAgICAgICAgU21pdGhzDQojIHRpcHMgICAgICAgICAgIFRpcHBpbmcgZGF0YQ0KIyANCmBgYA0KDQpEYXRhIHNldHMgaW4gcGFja2FnZSDCocKuZHBseXLCocKvOg0KYGBge3J9DQojIGJhbmRfaW5zdHJ1bWVudHMNCiMgICAgICAgICAgICAgICAgQmFuZCBtZW1iZXJzaGlwDQojIGJhbmRfaW5zdHJ1bWVudHMyDQojICAgICAgICAgICAgICAgIEJhbmQgbWVtYmVyc2hpcA0KIyBiYW5kX21lbWJlcnMgICBCYW5kIG1lbWJlcnNoaXANCiMgbmFzYSAgICAgICAgICAgTkFTQSBzcGF0aW8tdGVtcG9yYWwgZGF0YQ0KIyBzdGFyd2FycyAgICAgICBTdGFyd2FycyBjaGFyYWN0ZXJzDQojIHN0b3JtcyAgICAgICAgIFN0b3JtIHRyYWNrcyBkYXRhDQojIA0KIyBEYXRhIHNldHMgaW4gcGFja2FnZSDCocKuZ2dtYXDCocKvOg0KIyANCiMgY3JpbWUgICAgICAgICAgQ3JpbWUgZGF0YQ0KIyBoYWRsZXkgICAgICAgICBIaWdobHkgdW5vZmZpY2lhbCBnZ3Bsb3QyDQojICAgICAgICAgICAgICAgIGltYWdlDQojIHdpbmQgICAgICAgICAgIFdpbmQgZGF0YSBmcm9tIEh1cnJpY2FuZSBJa2UNCiMgemlwcyAgICAgICAgICAgWmlwIGNvZGUgZGF0YSBmb3IgdGhlIEdyZWF0ZXINCiMgICAgICAgICAgICAgICAgSG91c3RvbiBNZXRyb3BvbGl0YW4gQXJlYSBmcm9tDQojICAgICAgICAgICAgICAgIHRoZSAyMDAwIGNlbnN1cw0KIyANCiMgRGF0YSBzZXRzIGluIHBhY2thZ2UgwqHCrmdncGxvdDLCocKvOg0KIyANCiMgZGlhbW9uZHMgICAgICAgUHJpY2VzIG9mIDUwLDAwMCByb3VuZCBjdXQNCiMgICAgICAgICAgICAgICAgZGlhbW9uZHMNCiMgZWNvbm9taWNzICAgICAgVVMgZWNvbm9taWMgdGltZSBzZXJpZXMNCiMgZWNvbm9taWNzX2xvbmcNCiMgICAgICAgICAgICAgICAgVVMgZWNvbm9taWMgdGltZSBzZXJpZXMNCiMgZmFpdGhmdWxkICAgICAgMmQgZGVuc2l0eSBlc3RpbWF0ZSBvZiBPbGQNCiMgICAgICAgICAgICAgICAgRmFpdGhmdWwgZGF0YQ0KIyBsdXZfY29sb3VycyAgICAnY29sb3JzKCknIGluIEx1diBzcGFjZQ0KIyBtaWR3ZXN0ICAgICAgICBNaWR3ZXN0IGRlbW9ncmFwaGljcw0KIyBtcGcgICAgICAgICAgICBGdWVsIGVjb25vbXkgZGF0YSBmcm9tIDE5OTkNCiMgICAgICAgICAgICAgICAgYW5kIDIwMDggZm9yIDM4IHBvcHVsYXIgbW9kZWxzDQojICAgICAgICAgICAgICAgIG9mIGNhcg0KIyBtc2xlZXAgICAgICAgICBBbiB1cGRhdGVkIGFuZCBleHBhbmRlZA0KIyAgICAgICAgICAgICAgICB2ZXJzaW9uIG9mIHRoZSBtYW1tYWxzIHNsZWVwDQojICAgICAgICAgICAgICAgIGRhdGFzZXQNCiMgcHJlc2lkZW50aWFsICAgVGVybXMgb2YgMTEgcHJlc2lkZW50cyBmcm9tDQojICAgICAgICAgICAgICAgIEVpc2VuaG93ZXIgdG8gT2JhbWENCiMgc2VhbHMgICAgICAgICAgVmVjdG9yIGZpZWxkIG9mIHNlYWwgbW92ZW1lbnRzDQojIHR4aG91c2luZyAgICAgIEhvdXNpbmcgc2FsZXMgaW4gVFgNCmBgYA0KDQpEYXRhIHNldHMgaW4gcGFja2FnZSDCocKuZGF0YXNldHPCocKvOg0KYGBge3J9DQojIA0KIyBBaXJQYXNzZW5nZXJzDQojICAgICAgICAgICAgICAgIE1vbnRobHkgQWlybGluZSBQYXNzZW5nZXINCiMgICAgICAgICAgICAgICAgTnVtYmVycyAxOTQ5LTE5NjANCiMgQkpzYWxlcyAgICAgICAgU2FsZXMgRGF0YSB3aXRoIExlYWRpbmcNCiMgICAgICAgICAgICAgICAgSW5kaWNhdG9yDQojIEJKc2FsZXMubGVhZCAoQkpzYWxlcykNCiMgICAgICAgICAgICAgICAgU2FsZXMgRGF0YSB3aXRoIExlYWRpbmcNCiMgICAgICAgICAgICAgICAgSW5kaWNhdG9yDQojIEJPRCAgICAgICAgICAgIEJpb2NoZW1pY2FsIE94eWdlbiBEZW1hbmQNCiMgQ08yICAgICAgICAgICAgQ2FyYm9uIERpb3hpZGUgVXB0YWtlIGluIEdyYXNzDQojICAgICAgICAgICAgICAgIFBsYW50cw0KIyBDaGlja1dlaWdodCAgICBXZWlnaHQgdmVyc3VzIGFnZSBvZiBjaGlja3Mgb24NCiMgICAgICAgICAgICAgICAgZGlmZmVyZW50IGRpZXRzDQojIEROYXNlICAgICAgICAgIEVsaXNhIGFzc2F5IG9mIEROYXNlDQojIEV1U3RvY2tNYXJrZXRzDQojICAgICAgICAgICAgICAgIERhaWx5IENsb3NpbmcgUHJpY2VzIG9mIE1ham9yDQojICAgICAgICAgICAgICAgIEV1cm9wZWFuIFN0b2NrIEluZGljZXMsDQojICAgICAgICAgICAgICAgIDE5OTEtMTk5OA0KIyBGb3JtYWxkZWh5ZGUgICBEZXRlcm1pbmF0aW9uIG9mIEZvcm1hbGRlaHlkZQ0KIyBIYWlyRXllQ29sb3IgICBIYWlyIGFuZCBFeWUgQ29sb3Igb2YNCiMgICAgICAgICAgICAgICAgU3RhdGlzdGljcyBTdHVkZW50cw0KIyBIYXJtYW4yMy5jb3IgICBIYXJtYW4gRXhhbXBsZSAyLjMNCiMgSGFybWFuNzQuY29yICAgSGFybWFuIEV4YW1wbGUgNy40DQojIEluZG9tZXRoICAgICAgIFBoYXJtYWNva2luZXRpY3Mgb2YNCiMgICAgICAgICAgICAgICAgSW5kb21ldGhhY2luDQojIEluc2VjdFNwcmF5cyAgIEVmZmVjdGl2ZW5lc3Mgb2YgSW5zZWN0IFNwcmF5cw0KIyBKb2huc29uSm9obnNvbg0KIyAgICAgICAgICAgICAgICBRdWFydGVybHkgRWFybmluZ3MgcGVyIEpvaG5zb24NCiMgICAgICAgICAgICAgICAgJiBKb2huc29uIFNoYXJlDQojIExha2VIdXJvbiAgICAgIExldmVsIG9mIExha2UgSHVyb24gMTg3NS0xOTcyDQojIExpZmVDeWNsZVNhdmluZ3MNCiMgICAgICAgICAgICAgICAgSW50ZXJjb3VudHJ5IExpZmUtQ3ljbGUNCiMgICAgICAgICAgICAgICAgU2F2aW5ncyBEYXRhDQojIExvYmxvbGx5ICAgICAgIEdyb3d0aCBvZiBMb2Jsb2xseSBwaW5lIHRyZWVzDQojIE5pbGUgICAgICAgICAgIEZsb3cgb2YgdGhlIFJpdmVyIE5pbGUNCiMgT3JhbmdlICAgICAgICAgR3Jvd3RoIG9mIE9yYW5nZSBUcmVlcw0KIyBPcmNoYXJkU3ByYXlzDQojICAgICAgICAgICAgICAgIFBvdGVuY3kgb2YgT3JjaGFyZCBTcHJheXMNCiMgUGxhbnRHcm93dGggICAgUmVzdWx0cyBmcm9tIGFuIEV4cGVyaW1lbnQgb24NCiMgICAgICAgICAgICAgICAgUGxhbnQgR3Jvd3RoDQojIFB1cm9teWNpbiAgICAgIFJlYWN0aW9uIFZlbG9jaXR5IG9mIGFuDQojICAgICAgICAgICAgICAgIEVuenltYXRpYyBSZWFjdGlvbg0KIyBTZWF0YmVsdHMgICAgICBSb2FkIENhc3VhbHRpZXMgaW4gR3JlYXQNCiMgICAgICAgICAgICAgICAgQnJpdGFpbiAxOTY5LTg0DQojIFRoZW9waCAgICAgICAgIFBoYXJtYWNva2luZXRpY3Mgb2YNCiMgICAgICAgICAgICAgICAgVGhlb3BoeWxsaW5lDQojIFRpdGFuaWMgICAgICAgIFN1cnZpdmFsIG9mIHBhc3NlbmdlcnMgb24gdGhlDQojICAgICAgICAgICAgICAgIFRpdGFuaWMNCiMgVG9vdGhHcm93dGggICAgVGhlIEVmZmVjdCBvZiBWaXRhbWluIEMgb24NCiMgICAgICAgICAgICAgICAgVG9vdGggR3Jvd3RoIGluIEd1aW5lYSBQaWdzDQojIFVDQkFkbWlzc2lvbnMNCiMgICAgICAgICAgICAgICAgU3R1ZGVudCBBZG1pc3Npb25zIGF0IFVDDQojICAgICAgICAgICAgICAgIEJlcmtlbGV5DQojIFVLRHJpdmVyRGVhdGhzDQojICAgICAgICAgICAgICAgIFJvYWQgQ2FzdWFsdGllcyBpbiBHcmVhdA0KIyAgICAgICAgICAgICAgICBCcml0YWluIDE5NjktODQNCiMgVUtnYXMgICAgICAgICAgVUsgUXVhcnRlcmx5IEdhcyBDb25zdW1wdGlvbg0KIyBVU0FjY0RlYXRocyAgICBBY2NpZGVudGFsIERlYXRocyBpbiB0aGUgVVMNCiMgICAgICAgICAgICAgICAgMTk3My0xOTc4DQojIFVTQXJyZXN0cyAgICAgIFZpb2xlbnQgQ3JpbWUgUmF0ZXMgYnkgVVMNCiMgICAgICAgICAgICAgICAgU3RhdGUNCiMgVVNKdWRnZVJhdGluZ3MNCiMgICAgICAgICAgICAgICAgTGF3eWVycycgUmF0aW5ncyBvZiBTdGF0ZQ0KIyAgICAgICAgICAgICAgICBKdWRnZXMgaW4gdGhlIFVTIFN1cGVyaW9yDQojICAgICAgICAgICAgICAgIENvdXJ0DQojIFVTUGVyc29uYWxFeHBlbmRpdHVyZQ0KIyAgICAgICAgICAgICAgICBQZXJzb25hbCBFeHBlbmRpdHVyZSBEYXRhDQojIFVTY2l0aWVzRCAgICAgIERpc3RhbmNlcyBCZXR3ZWVuIEV1cm9wZWFuDQojICAgICAgICAgICAgICAgIENpdGllcyBhbmQgQmV0d2VlbiBVUyBDaXRpZXMNCiMgVkFEZWF0aHMgICAgICAgRGVhdGggUmF0ZXMgaW4gVmlyZ2luaWEgKDE5NDApDQojIFdXV3VzYWdlICAgICAgIEludGVybmV0IFVzYWdlIHBlciBNaW51dGUNCiMgV29ybGRQaG9uZXMgICAgVGhlIFdvcmxkJ3MgVGVsZXBob25lcw0KIyBhYmlsaXR5LmNvdiAgICBBYmlsaXR5IGFuZCBJbnRlbGxpZ2VuY2UgVGVzdHMNCiMgYWlybWlsZXMgICAgICAgUGFzc2VuZ2VyIE1pbGVzIG9uIENvbW1lcmNpYWwNCiMgICAgICAgICAgICAgICAgVVMgQWlybGluZXMsIDE5MzctMTk2MA0KIyBhaXJxdWFsaXR5ICAgICBOZXcgWW9yayBBaXIgUXVhbGl0eQ0KIyAgICAgICAgICAgICAgICBNZWFzdXJlbWVudHMNCiMgYW5zY29tYmUgICAgICAgQW5zY29tYmUncyBRdWFydGV0IG9mDQojICAgICAgICAgICAgICAgICdJZGVudGljYWwnIFNpbXBsZSBMaW5lYXINCiMgICAgICAgICAgICAgICAgUmVncmVzc2lvbnMNCiMgYXR0ZW51ICAgICAgICAgVGhlIEpveW5lci1Cb29yZSBBdHRlbnVhdGlvbg0KIyAgICAgICAgICAgICAgICBEYXRhDQojIGF0dGl0dWRlICAgICAgIFRoZSBDaGF0dGVyamVlLVByaWNlIEF0dGl0dWRlDQojICAgICAgICAgICAgICAgIERhdGENCiMgYXVzdHJlcyAgICAgICAgUXVhcnRlcmx5IFRpbWUgU2VyaWVzIG9mIHRoZQ0KIyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgQXVzdHJhbGlhbiBSZXNpZGVudHMNCiMgYmVhdmVyMSAoYmVhdmVycykNCiMgICAgICAgICAgICAgICAgQm9keSBUZW1wZXJhdHVyZSBTZXJpZXMgb2YgVHdvDQojICAgICAgICAgICAgICAgIEJlYXZlcnMNCiMgYmVhdmVyMiAoYmVhdmVycykNCiMgICAgICAgICAgICAgICAgQm9keSBUZW1wZXJhdHVyZSBTZXJpZXMgb2YgVHdvDQojICAgICAgICAgICAgICAgIEJlYXZlcnMNCiMgY2FycyAgICAgICAgICAgU3BlZWQgYW5kIFN0b3BwaW5nIERpc3RhbmNlcw0KIyAgICAgICAgICAgICAgICBvZiBDYXJzDQojIGNoaWNrd3RzICAgICAgIENoaWNrZW4gV2VpZ2h0cyBieSBGZWVkIFR5cGUNCiMgY28yICAgICAgICAgICAgTWF1bmEgTG9hIEF0bW9zcGhlcmljIENPMg0KIyAgICAgICAgICAgICAgICBDb25jZW50cmF0aW9uDQojIGNyaW10YWIgICAgICAgIFN0dWRlbnQncyAzMDAwIENyaW1pbmFscyBEYXRhDQojIGRpc2NvdmVyaWVzICAgIFllYXJseSBOdW1iZXJzIG9mIEltcG9ydGFudA0KIyAgICAgICAgICAgICAgICBEaXNjb3Zlcmllcw0KIyBlc29waCAgICAgICAgICBTbW9raW5nLCBBbGNvaG9sIGFuZA0KIyAgICAgICAgICAgICAgICAoTyllc29waGFnZWFsIENhbmNlcg0KIyBldXJvICAgICAgICAgICBDb252ZXJzaW9uIFJhdGVzIG9mIEV1cm8NCiMgICAgICAgICAgICAgICAgQ3VycmVuY2llcw0KIyBldXJvLmNyb3NzIChldXJvKQ0KIyAgICAgICAgICAgICAgICBDb252ZXJzaW9uIFJhdGVzIG9mIEV1cm8NCiMgICAgICAgICAgICAgICAgQ3VycmVuY2llcw0KIyBldXJvZGlzdCAgICAgICBEaXN0YW5jZXMgQmV0d2VlbiBFdXJvcGVhbg0KIyAgICAgICAgICAgICAgICBDaXRpZXMgYW5kIEJldHdlZW4gVVMgQ2l0aWVzDQojIGZhaXRoZnVsICAgICAgIE9sZCBGYWl0aGZ1bCBHZXlzZXIgRGF0YQ0KIyBmZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgZnJlZW55ICAgICAgICAgRnJlZW55J3MgUmV2ZW51ZSBEYXRhDQojIGZyZWVueS54IChmcmVlbnkpDQojICAgICAgICAgICAgICAgIEZyZWVueSdzIFJldmVudWUgRGF0YQ0KIyBmcmVlbnkueSAoZnJlZW55KQ0KIyAgICAgICAgICAgICAgICBGcmVlbnkncyBSZXZlbnVlIERhdGENCiMgaW5mZXJ0ICAgICAgICAgSW5mZXJ0aWxpdHkgYWZ0ZXIgU3BvbnRhbmVvdXMNCiMgICAgICAgICAgICAgICAgYW5kIEluZHVjZWQgQWJvcnRpb24NCiMgaXJpcyAgICAgICAgICAgRWRnYXIgQW5kZXJzb24ncyBJcmlzIERhdGENCiMgaXJpczMgICAgICAgICAgRWRnYXIgQW5kZXJzb24ncyBJcmlzIERhdGENCiMgaXNsYW5kcyAgICAgICAgQXJlYXMgb2YgdGhlIFdvcmxkJ3MgTWFqb3INCiMgICAgICAgICAgICAgICAgTGFuZG1hc3Nlcw0KIyBsZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgbGggICAgICAgICAgICAgTHV0ZWluaXppbmcgSG9ybW9uZSBpbiBCbG9vZA0KIyAgICAgICAgICAgICAgICBTYW1wbGVzDQojIGxvbmdsZXkgICAgICAgIExvbmdsZXkncyBFY29ub21pYyBSZWdyZXNzaW9uDQojICAgICAgICAgICAgICAgIERhdGENCiMgbHlueCAgICAgICAgICAgQW5udWFsIENhbmFkaWFuIEx5bnggdHJhcHBpbmdzDQojICAgICAgICAgICAgICAgIDE4MjEtMTkzNA0KIyBtZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgbW9ybGV5ICAgICAgICAgTWljaGVsc29uIFNwZWVkIG9mIExpZ2h0IERhdGENCiMgbXRjYXJzICAgICAgICAgTW90b3IgVHJlbmQgQ2FyIFJvYWQgVGVzdHMNCiMgbmh0ZW1wICAgICAgICAgQXZlcmFnZSBZZWFybHkgVGVtcGVyYXR1cmVzIGluDQojICAgICAgICAgICAgICAgIE5ldyBIYXZlbg0KIyBub3R0ZW0gICAgICAgICBBdmVyYWdlIE1vbnRobHkgVGVtcGVyYXR1cmVzDQojICAgICAgICAgICAgICAgIGF0IE5vdHRpbmdoYW0sIDE5MjAtMTkzOQ0KIyBucGsgICAgICAgICAgICBDbGFzc2ljYWwgTiwgUCwgSyBGYWN0b3JpYWwNCiMgICAgICAgICAgICAgICAgRXhwZXJpbWVudA0KIyBvY2N1cGF0aW9uYWxTdGF0dXMNCiMgICAgICAgICAgICAgICAgT2NjdXBhdGlvbmFsIFN0YXR1cyBvZiBGYXRoZXJzDQojICAgICAgICAgICAgICAgIGFuZCB0aGVpciBTb25zDQojIHByZWNpcCAgICAgICAgIEFubnVhbCBQcmVjaXBpdGF0aW9uIGluIFVTDQojICAgICAgICAgICAgICAgIENpdGllcw0KIyBwcmVzaWRlbnRzICAgICBRdWFydGVybHkgQXBwcm92YWwgUmF0aW5ncyBvZg0KIyAgICAgICAgICAgICAgICBVUyBQcmVzaWRlbnRzDQojIHByZXNzdXJlICAgICAgIFZhcG9yIFByZXNzdXJlIG9mIE1lcmN1cnkgYXMgYQ0KIyAgICAgICAgICAgICAgICBGdW5jdGlvbiBvZiBUZW1wZXJhdHVyZQ0KIyBxdWFrZXMgICAgICAgICBMb2NhdGlvbnMgb2YgRWFydGhxdWFrZXMgb2ZmDQojICAgICAgICAgICAgICAgIEZpamkNCiMgcmFuZHUgICAgICAgICAgUmFuZG9tIE51bWJlcnMgZnJvbQ0KIyAgICAgICAgICAgICAgICBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIFJBTkRVDQojIHJpdmVycyAgICAgICAgIExlbmd0aHMgb2YgTWFqb3IgTm9ydGgNCiMgICAgICAgICAgICAgICAgQW1lcmljYW4gUml2ZXJzDQojIHJvY2sgICAgICAgICAgIE1lYXN1cmVtZW50cyBvbiBQZXRyb2xldW0gUm9jaw0KIyAgICAgICAgICAgICAgICBTYW1wbGVzDQojIHNsZWVwICAgICAgICAgIFN0dWRlbnQncyBTbGVlcCBEYXRhDQojIHN0YWNrLmxvc3MgKHN0YWNrbG9zcykNCiMgICAgICAgICAgICAgICAgQnJvd25sZWUncyBTdGFjayBMb3NzIFBsYW50DQojICAgICAgICAgICAgICAgIERhdGENCiMgc3RhY2sueCAoc3RhY2tsb3NzKQ0KIyAgICAgICAgICAgICAgICBCcm93bmxlZSdzIFN0YWNrIExvc3MgUGxhbnQNCiMgICAgICAgICAgICAgICAgRGF0YQ0KIyBzdGFja2xvc3MgICAgICBCcm93bmxlZSdzIFN0YWNrIExvc3MgUGxhbnQNCiMgICAgICAgICAgICAgICAgRGF0YQ0KIyBzdGF0ZS5hYmIgKHN0YXRlKQ0KIyAgICAgICAgICAgICAgICBVUyBTdGF0ZSBGYWN0cyBhbmQgRmlndXJlcw0KIyBzdGF0ZS5hcmVhIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUuY2VudGVyIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUuZGl2aXNpb24gKHN0YXRlKQ0KIyAgICAgICAgICAgICAgICBVUyBTdGF0ZSBGYWN0cyBhbmQgRmlndXJlcw0KIyBzdGF0ZS5uYW1lIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUucmVnaW9uIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUueDc3IChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3Vuc3BvdC5tb250aA0KIyAgICAgICAgICAgICAgICBNb250aGx5IFN1bnNwb3QgRGF0YSwgZnJvbQ0KIyAgICAgICAgICAgICAgICAxNzQ5IHRvICJQcmVzZW50Ig0KIyBzdW5zcG90LnllYXIgICBZZWFybHkgU3Vuc3BvdCBEYXRhLCAxNzAwLTE5ODgNCiMgc3Vuc3BvdHMgICAgICAgTW9udGhseSBTdW5zcG90IE51bWJlcnMsDQojICAgICAgICAgICAgICAgIDE3NDktMTk4Mw0KIyBzd2lzcyAgICAgICAgICBTd2lzcyBGZXJ0aWxpdHkgYW5kDQojICAgICAgICAgICAgICAgIFNvY2lvZWNvbm9taWMgSW5kaWNhdG9ycw0KIyAgICAgICAgICAgICAgICAoMTg4OCkgRGF0YQ0KIyB0cmVlcmluZyAgICAgICBZZWFybHkgVHJlZXJpbmcgRGF0YSwNCiMgICAgICAgICAgICAgICAgLTYwMDAtMTk3OQ0KIyB0cmVlcyAgICAgICAgICBHaXJ0aCwgSGVpZ2h0IGFuZCBWb2x1bWUgZm9yDQojICAgICAgICAgICAgICAgIEJsYWNrIENoZXJyeSBUcmVlcw0KIyB1c3BvcCAgICAgICAgICBQb3B1bGF0aW9ucyBSZWNvcmRlZCBieSB0aGUgVVMNCiMgICAgICAgICAgICAgICAgQ2Vuc3VzDQojIHZvbGNhbm8gICAgICAgIFRvcG9ncmFwaGljIEluZm9ybWF0aW9uIG9uDQojICAgICAgICAgICAgICAgIEF1Y2tsYW5kJ3MgTWF1bmdhIFdoYXUgVm9sY2Fubw0KIyB3YXJwYnJlYWtzICAgICBUaGUgTnVtYmVyIG9mIEJyZWFrcyBpbiBZYXJuDQojICAgICAgICAgICAgICAgIGR1cmluZyBXZWF2aW5nDQojIHdvbWVuICAgICAgICAgIEF2ZXJhZ2UgSGVpZ2h0cyBhbmQgV2VpZ2h0cw0KIyAgICAgICAgICAgICAgICBmb3IgQW1lcmljYW4gV29tZW4NCiMgDQpgYGANCkRhdGEgc2V0cyBpbiBwYWNrYWdlIMKhwq5nb29nbGVWaXPCocKvOg0KYGBge3J9DQojIEFuZHJldyAgICAgICAgIEh1cnJpY2FuZSBBbmRyZXc6IGdvb2dsZVZpcw0KIyAgICAgICAgICAgICAgICBleGFtcGxlIGRhdGEgc2V0DQojIENhaXJvICAgICAgICAgIERhaWx5IHRlbXBlcmF0dXJlIGRhdGEgZm9yDQojICAgICAgICAgICAgICAgIENhaXJvDQojIENpdHlQb3B1bGFyaXR5DQojICAgICAgICAgICAgICAgIENpdHlQb3B1bGFyaXR5OiBnb29nbGVWaXMNCiMgICAgICAgICAgICAgICAgZXhhbXBsZSBkYXRhIHNldA0KIyBFeHBvcnRzICAgICAgICBFeHBvcnRzOiBnb29nbGVWaXMgZXhhbXBsZQ0KIyAgICAgICAgICAgICAgICBkYXRhIHNldA0KIyBGcnVpdHMgICAgICAgICBGcnVpdHM6IGdvb2dsZVZpcyBleGFtcGxlIGRhdGENCiMgICAgICAgICAgICAgICAgc2V0DQojIE9wZW5DbG9zZSAgICAgIE9wZW5DbG9zZTogZ29vZ2xlVmlzIGV4YW1wbGUNCiMgICAgICAgICAgICAgICAgZGF0YSBzZXQNCiMgUG9wdWxhdGlvbiAgICAgUG9wdWxhdGlvbjogZ29vZ2xlVmlzIGV4YW1wbGUNCiMgICAgICAgICAgICAgICAgZGF0YSBzZXQNCiMgUmVnaW9ucyAgICAgICAgUmVnaW9uczogZ29vZ2xlVmlzIGV4YW1wbGUNCiMgICAgICAgICAgICAgICAgZGF0YSBzZXQNCiMgU3RvY2sgICAgICAgICAgU3RvY2s6IGdvb2dsZVZpcyBleGFtcGxlIGRhdGENCiMgICAgICAgICAgICAgICAgc2V0DQojIGRpbm8gICAgICAgICAgIERpbm9zYXVyIGRhdGENCmBgYA0KRGF0YSBzZXRzIGluIHBhY2thZ2UgwqHCrmhmbGlnaHRzwqHCrzoNCmBgYHtyfQ0KIyBoZmxpZ2h0cyAgICAgICBIb3VzdG9uIGZsaWdodHMgZGF0YQ0KIw0KYGBgDQoNCkRhdGEgc2V0cyBpbiBwYWNrYWdlIMKhwq5NQVNTwqHCrzoNCmBgYHtyfQ0KIyBBaWRzMiAgICAgICAgICBBdXN0cmFsaWFuIEFJRFMgU3Vydml2YWwgRGF0YQ0KIyBBbmltYWxzICAgICAgICBCcmFpbiBhbmQgQm9keSBXZWlnaHRzIGZvciAyOA0KIyAgICAgICAgICAgICAgICBTcGVjaWVzDQojIEJvc3RvbiAgICAgICAgIEhvdXNpbmcgVmFsdWVzIGluIFN1YnVyYnMgb2YNCiMgICAgICAgICAgICAgICAgQm9zdG9uDQojIENhcnM5MyAgICAgICAgIERhdGEgZnJvbSA5MyBDYXJzIG9uIFNhbGUgaW4NCiMgICAgICAgICAgICAgICAgdGhlIFVTQSBpbiAxOTkzDQojIEN1c2hpbmdzICAgICAgIERpYWdub3N0aWMgVGVzdHMgb24gUGF0aWVudHMNCiMgICAgICAgICAgICAgICAgd2l0aCBDdXNoaW5nJ3MgU3luZHJvbWUNCiMgRERUICAgICAgICAgICAgRERUIGluIEthbGUNCiMgR0FHdXJpbmUgICAgICAgTGV2ZWwgb2YgR0FHIGluIFVyaW5lIG9mDQojICAgICAgICAgICAgICAgIENoaWxkcmVuDQojIEluc3VyYW5jZSAgICAgIE51bWJlcnMgb2YgQ2FyIEluc3VyYW5jZQ0KIyAgICAgICAgICAgICAgICBjbGFpbXMNCiMgTWVsYW5vbWEgICAgICAgU3Vydml2YWwgZnJvbSBNYWxpZ25hbnQNCiMgICAgICAgICAgICAgICAgTWVsYW5vbWENCiMgT01FICAgICAgICAgICAgVGVzdHMgb2YgQXVkaXRvcnkgUGVyY2VwdGlvbg0KIyAgICAgICAgICAgICAgICBpbiBDaGlsZHJlbiB3aXRoIE9NRQ0KIyBQaW1hLnRlICAgICAgICBEaWFiZXRlcyBpbiBQaW1hIEluZGlhbiBXb21lbg0KIyBQaW1hLnRyICAgICAgICBEaWFiZXRlcyBpbiBQaW1hIEluZGlhbiBXb21lbg0KIyBQaW1hLnRyMiAgICAgICBEaWFiZXRlcyBpbiBQaW1hIEluZGlhbiBXb21lbg0KIyBSYWJiaXQgICAgICAgICBCbG9vZCBQcmVzc3VyZSBpbiBSYWJiaXRzDQojIFJ1YmJlciAgICAgICAgIEFjY2VsZXJhdGVkIFRlc3Rpbmcgb2YgVHlyZQ0KIyAgICAgICAgICAgICAgICBSdWJiZXINCiMgU1A1MDAgICAgICAgICAgUmV0dXJucyBvZiB0aGUgU3RhbmRhcmQgYW5kDQojICAgICAgICAgICAgICAgIFBvb3JzIDUwMA0KIyBTaXRrYSAgICAgICAgICBHcm93dGggQ3VydmVzIGZvciBTaXRrYSBTcHJ1Y2UNCiMgICAgICAgICAgICAgICAgVHJlZXMgaW4gMTk4OA0KIyBTaXRrYTg5ICAgICAgICBHcm93dGggQ3VydmVzIGZvciBTaXRrYSBTcHJ1Y2UNCiMgICAgICAgICAgICAgICAgVHJlZXMgaW4gMTk4OQ0KIyBTa3llICAgICAgICAgICBBRk0gQ29tcG9zaXRpb25zIG9mIEFwaHlyaWMNCiMgICAgICAgICAgICAgICAgU2t5ZSBMYXZhcw0KIyBUcmFmZmljICAgICAgICBFZmZlY3Qgb2YgU3dlZGlzaCBTcGVlZCBMaW1pdHMNCiMgICAgICAgICAgICAgICAgb24gQWNjaWRlbnRzDQojIFVTY2VyZWFsICAgICAgIE51dHJpdGlvbmFsIGFuZCBNYXJrZXRpbmcNCiMgICAgICAgICAgICAgICAgSW5mb3JtYXRpb24gb24gVVMgQ2VyZWFscw0KIyBVU2NyaW1lICAgICAgICBUaGUgRWZmZWN0IG9mIFB1bmlzaG1lbnQNCiMgICAgICAgICAgICAgICAgUmVnaW1lcyBvbiBDcmltZSBSYXRlcw0KIyBWQSAgICAgICAgICAgICBWZXRlcmFuJ3MgQWRtaW5pc3RyYXRpb24gTHVuZw0KIyAgICAgICAgICAgICAgICBDYW5jZXIgVHJpYWwNCiMgYWJiZXkgICAgICAgICAgRGV0ZXJtaW5hdGlvbnMgb2YgTmlja2VsDQojICAgICAgICAgICAgICAgIENvbnRlbnQNCiMgYWNjZGVhdGhzICAgICAgQWNjaWRlbnRhbCBEZWF0aHMgaW4gdGhlIFVTDQojICAgICAgICAgICAgICAgIDE5NzMtMTk3OA0KIyBhbm9yZXhpYSAgICAgICBBbm9yZXhpYSBEYXRhIG9uIFdlaWdodCBDaGFuZ2UNCiMgYmFjdGVyaWEgICAgICAgUHJlc2VuY2Ugb2YgQmFjdGVyaWEgYWZ0ZXINCiMgICAgICAgICAgICAgICAgRHJ1ZyBUcmVhdG1lbnRzDQojIGJlYXYxICAgICAgICAgIEJvZHkgVGVtcGVyYXR1cmUgU2VyaWVzIG9mDQojICAgICAgICAgICAgICAgIEJlYXZlciAxDQojIGJlYXYyICAgICAgICAgIEJvZHkgVGVtcGVyYXR1cmUgU2VyaWVzIG9mDQojICAgICAgICAgICAgICAgIEJlYXZlciAyDQojIGJpb3BzeSAgICAgICAgIEJpb3BzeSBEYXRhIG9uIEJyZWFzdCBDYW5jZXINCiMgICAgICAgICAgICAgICAgUGF0aWVudHMNCiMgYmlydGh3dCAgICAgICAgUmlzayBGYWN0b3JzIEFzc29jaWF0ZWQgd2l0aA0KIyAgICAgICAgICAgICAgICBMb3cgSW5mYW50IEJpcnRoIFdlaWdodA0KIyBjYWJiYWdlcyAgICAgICBEYXRhIGZyb20gYSBjYWJiYWdlIGZpZWxkDQojICAgICAgICAgICAgICAgIHRyaWFsDQojIGNhaXRoICAgICAgICAgIENvbG91cnMgb2YgRXllcyBhbmQgSGFpciBvZg0KIyAgICAgICAgICAgICAgICBQZW9wbGUgaW4gQ2FpdGhuZXNzDQojIGNhdHMgICAgICAgICAgIEFuYXRvbWljYWwgRGF0YSBmcm9tIERvbWVzdGljDQojICAgICAgICAgICAgICAgIENhdHMNCiMgY2VtZW50ICAgICAgICAgSGVhdCBFdm9sdmVkIGJ5IFNldHRpbmcNCiMgICAgICAgICAgICAgICAgQ2VtZW50cw0KIyBjaGVtICAgICAgICAgICBDb3BwZXIgaW4gV2hvbGVtZWFsIEZsb3VyDQojIGNvb3AgICAgICAgICAgIENvLW9wZXJhdGl2ZSBUcmlhbCBpbg0KIyAgICAgICAgICAgICAgICBBbmFseXRpY2FsIENoZW1pc3RyeQ0KIyBjcHVzICAgICAgICAgICBQZXJmb3JtYW5jZSBvZiBDb21wdXRlciBDUFVzDQojIGNyYWJzICAgICAgICAgIE1vcnBob2xvZ2ljYWwgTWVhc3VyZW1lbnRzIG9uDQojICAgICAgICAgICAgICAgIExlcHRvZ3JhcHN1cyBDcmFicw0KIyBkZWF0aHMgICAgICAgICBNb250aGx5IERlYXRocyBmcm9tIEx1bmcNCiMgICAgICAgICAgICAgICAgRGlzZWFzZXMgaW4gdGhlIFVLDQojIGRyaXZlcnMgICAgICAgIERlYXRocyBvZiBDYXIgRHJpdmVycyBpbiBHcmVhdA0KIyAgICAgICAgICAgICAgICBCcml0YWluIDE5NjktODQNCiMgZWFnbGVzICAgICAgICAgRm9yYWdpbmcgRWNvbG9neSBvZiBCYWxkDQojICAgICAgICAgICAgICAgIEVhZ2xlcw0KIyBlcGlsICAgICAgICAgICBTZWl6dXJlIENvdW50cyBmb3IgRXBpbGVwdGljcw0KIyBmYXJtcyAgICAgICAgICBFY29sb2dpY2FsIEZhY3RvcnMgaW4gRmFybQ0KIyAgICAgICAgICAgICAgICBNYW5hZ2VtZW50DQojIGZnbCAgICAgICAgICAgIE1lYXN1cmVtZW50cyBvZiBGb3JlbnNpYyBHbGFzcw0KIyAgICAgICAgICAgICAgICBGcmFnbWVudHMNCiMgZm9yYmVzICAgICAgICAgRm9yYmVzJyBEYXRhIG9uIEJvaWxpbmcgUG9pbnRzDQojICAgICAgICAgICAgICAgIGluIHRoZSBBbHBzDQojIGdhbGF4aWVzICAgICAgIFZlbG9jaXRpZXMgZm9yIDgyIEdhbGF4aWVzDQojIGdlaGFuICAgICAgICAgIFJlbWlzc2lvbiBUaW1lcyBvZiBMZXVrYWVtaWENCiMgICAgICAgICAgICAgICAgUGF0aWVudHMNCiMgZ2Vub3R5cGUgICAgICAgUmF0IEdlbm90eXBlIERhdGENCiMgZ2V5c2VyICAgICAgICAgT2xkIEZhaXRoZnVsIEdleXNlciBEYXRhDQojIGdpbGdhaXMgICAgICAgIExpbmUgVHJhbnNlY3Qgb2YgU29pbCBpbg0KIyAgICAgICAgICAgICAgICBHaWxnYWkgVGVycml0b3J5DQojIGhpbGxzICAgICAgICAgIFJlY29yZCBUaW1lcyBpbiBTY290dGlzaCBIaWxsDQojICAgICAgICAgICAgICAgIFJhY2VzDQojIGhvdXNpbmcgICAgICAgIEZyZXF1ZW5jeSBUYWJsZSBmcm9tIGENCiMgICAgICAgICAgICAgICAgQ29wZW5oYWdlbiBIb3VzaW5nIENvbmRpdGlvbnMNCiMgICAgICAgICAgICAgICAgU3VydmV5DQojIGltbWVyICAgICAgICAgIFlpZWxkcyBmcm9tIGEgQmFybGV5IEZpZWxkDQojICAgICAgICAgICAgICAgIFRyaWFsDQojIGxldWsgICAgICAgICAgIFN1cnZpdmFsIFRpbWVzIGFuZCBXaGl0ZSBCbG9vZA0KIyAgICAgICAgICAgICAgICBDb3VudHMgZm9yIExldWthZW1pYSBQYXRpZW50cw0KIyBtYW1tYWxzICAgICAgICBCcmFpbiBhbmQgQm9keSBXZWlnaHRzIGZvciA2Mg0KIyAgICAgICAgICAgICAgICBTcGVjaWVzIG9mIExhbmQgTWFtbWFscw0KIyBtY3ljbGUgICAgICAgICBEYXRhIGZyb20gYSBTaW11bGF0ZWQNCiMgICAgICAgICAgICAgICAgTW90b3JjeWNsZSBBY2NpZGVudA0KIyBtZW5hcmNoZSAgICAgICBBZ2Ugb2YgTWVuYXJjaGUgaW4gV2Fyc2F3DQojIG1pY2hlbHNvbiAgICAgIE1pY2hlbHNvbidzIFNwZWVkIG9mIExpZ2h0DQojICAgICAgICAgICAgICAgIERhdGENCiMgbWlubjM4ICAgICAgICAgTWlubmVzb3RhIEhpZ2ggU2Nob29sDQojICAgICAgICAgICAgICAgIEdyYWR1YXRlcyBvZiAxOTM4DQojIG1vdG9ycyAgICAgICAgIEFjY2VsZXJhdGVkIExpZmUgVGVzdGluZyBvZg0KIyAgICAgICAgICAgICAgICBNb3RvcmV0dGVzDQojIG11c2NsZSAgICAgICAgIEVmZmVjdCBvZiBDYWxjaXVtIENobG9yaWRlIG9uDQojICAgICAgICAgICAgICAgIE11c2NsZSBDb250cmFjdGlvbiBpbiBSYXQNCiMgICAgICAgICAgICAgICAgSGVhcnRzDQojIG5ld2NvbWIgICAgICAgIE5ld2NvbWIncyBNZWFzdXJlbWVudHMgb2YgdGhlDQojICAgICAgICAgICAgICAgIFBhc3NhZ2UgVGltZSBvZiBMaWdodA0KIyBubHNjaG9vbHMgICAgICBFaWdodGgtR3JhZGUgUHVwaWxzIGluIHRoZQ0KIyAgICAgICAgICAgICAgICBOZXRoZXJsYW5kcw0KIyBucGsgICAgICAgICAgICBDbGFzc2ljYWwgTiwgUCwgSyBGYWN0b3JpYWwNCiMgICAgICAgICAgICAgICAgRXhwZXJpbWVudA0KIyBucHIxICAgICAgICAgICBVUyBOYXZhbCBQZXRyb2xldW0gUmVzZXJ2ZSBOby4NCiMgICAgICAgICAgICAgICAgMSBkYXRhDQojIG9hdHMgICAgICAgICAgIERhdGEgZnJvbSBhbiBPYXRzIEZpZWxkIFRyaWFsDQojIHBhaW50ZXJzICAgICAgIFRoZSBQYWludGVyJ3MgRGF0YSBvZiBkZSBQaWxlcw0KIyBwZXRyb2wgICAgICAgICBOLiBMLiBQcmF0ZXIncyBQZXRyb2wgUmVmaW5lcnkNCiMgICAgICAgICAgICAgICAgRGF0YQ0KIyBwaG9uZXMgICAgICAgICBCZWxnaXVtIFBob25lIENhbGxzIDE5NTAtMTk3Mw0KIyBxdWluZSAgICAgICAgICBBYnNlbnRlZWlzbSBmcm9tIFNjaG9vbCBpbg0KIyAgICAgICAgICAgICAgICBSdXJhbCBOZXcgU291dGggV2FsZXMNCiMgcm9hZCAgICAgICAgICAgUm9hZCBBY2NpZGVudCBEZWF0aHMgaW4gVVMNCiMgICAgICAgICAgICAgICAgU3RhdGVzDQojIHJvdGlmZXIgICAgICAgIE51bWJlcnMgb2YgUm90aWZlcnMgYnkgRmx1aWQNCiMgICAgICAgICAgICAgICAgRGVuc2l0eQ0KIyBzaGlwcyAgICAgICAgICBTaGlwcyBEYW1hZ2UgRGF0YQ0KIyBzaG9lcyAgICAgICAgICBTaG9lIHdlYXIgZGF0YSBvZiBCb3gsIEh1bnRlcg0KIyAgICAgICAgICAgICAgICBhbmQgSHVudGVyDQojIHNocmltcCAgICAgICAgIFBlcmNlbnRhZ2Ugb2YgU2hyaW1wIGluIFNocmltcA0KIyAgICAgICAgICAgICAgICBDb2NrdGFpbA0KIyBzaHV0dGxlICAgICAgICBTcGFjZSBTaHV0dGxlIEF1dG9sYW5kZXINCiMgICAgICAgICAgICAgICAgUHJvYmxlbQ0KIyBzbmFpbHMgICAgICAgICBTbmFpbCBNb3J0YWxpdHkgRGF0YQ0KIyBzdGVhbSAgICAgICAgICBUaGUgU2F0dXJhdGVkIFN0ZWFtIFByZXNzdXJlDQojICAgICAgICAgICAgICAgIERhdGENCiMgc3Rvcm1lciAgICAgICAgVGhlIFN0b3JtZXIgVmlzY29tZXRlciBEYXRhDQojIHN1cnZleSAgICAgICAgIFN0dWRlbnQgU3VydmV5IERhdGENCiMgc3ludGgudGUgICAgICAgU3ludGhldGljIENsYXNzaWZpY2F0aW9uDQojICAgICAgICAgICAgICAgIFByb2JsZW0NCiMgc3ludGgudHIgICAgICAgU3ludGhldGljIENsYXNzaWZpY2F0aW9uDQojICAgICAgICAgICAgICAgIFByb2JsZW0NCiMgdG9wbyAgICAgICAgICAgU3BhdGlhbCBUb3BvZ3JhcGhpYyBEYXRhDQojIHdhZGVycyAgICAgICAgIENvdW50cyBvZiBXYWRlcnMgYXQgMTUgU2l0ZXMNCiMgICAgICAgICAgICAgICAgaW4gU291dGggQWZyaWNhDQojIHdoaXRlc2lkZSAgICAgIEhvdXNlIEluc3VsYXRpb246IFdoaXRlc2lkZSdzDQojICAgICAgICAgICAgICAgIERhdGENCiMgd3Rsb3NzICAgICAgICAgV2VpZ2h0IExvc3MgRGF0YSBmcm9tIGFuIE9iZXNlDQojICAgICAgICAgICAgICAgIFBhdGllbnQNCiMgDQpgYGANCg0KRGF0YSBzZXRzIGluIHBhY2thZ2UgwqHCrlJHQcKhwq86DQpgYGB7cn0NCg0KIyANCiMgZ2EgICAgICAgICAgICAgTGlzdHMgYWxsIGNvbHVtbnMgZm9yIGEgR29vZ2xlDQojICAgICAgICAgICAgICAgIEFuYWx5dGljcyBjb3JlIHJlcG9ydCB0eXBlDQpgYGANCg0KRGF0YSBzZXRzIGluIHBhY2thZ2UgwqHCrnN0cmluZ3LCocKvOg0KYGBge3J9DQojIGZydWl0ICAgICAgICAgIFNhbXBsZSBjaGFyYWN0ZXIgdmVjdG9ycyBmb3INCiMgICAgICAgICAgICAgICAgcHJhY3RpY2luZyBzdHJpbmcNCiMgICAgICAgICAgICAgICAgbWFuaXB1bGF0aW9ucy4NCiMgc2VudGVuY2VzICAgICAgU2FtcGxlIGNoYXJhY3RlciB2ZWN0b3JzIGZvcg0KIyAgICAgICAgICAgICAgICBwcmFjdGljaW5nIHN0cmluZw0KIyAgICAgICAgICAgICAgICBtYW5pcHVsYXRpb25zLg0KIyB3b3JkcyAgICAgICAgICBTYW1wbGUgY2hhcmFjdGVyIHZlY3RvcnMgZm9yDQojICAgICAgICAgICAgICAgIHByYWN0aWNpbmcgc3RyaW5nDQojICAgICAgICAgICAgICAgIG1hbmlwdWxhdGlvbnMuDQpgYGANCkRhdGEgc2V0cyBpbiBwYWNrYWdlIMKhwq53b3JkY2xvdWTCocKvOg0KYGBge3J9DQojIFNPVFUgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMgU3RhdGUgb2YgdGhlDQojICAgICAgICAgICAgICAgIFVuaW9uIEFkZHJlc3NlcyAoMjAxMCBhbmQNCiMgICAgICAgICAgICAgICAgMjAxMSkNCiMgDQpgYGANCg0KYGBge3J9DQojIFVzZSDCocKuZGF0YShwYWNrYWdlID0gLnBhY2thZ2VzKGFsbC5hdmFpbGFibGUgPSBUUlVFKSnCocKvDQojIHRvIGxpc3QgdGhlIGRhdGEgc2V0cyBpbiBhbGwgKmF2YWlsYWJsZSogcGFja2FnZXMuDQpgYGANCg0K