UNPKG

lucide-angular

Version:

A Lucide icon library package for Angular applications.

861 lines 157 kB
// AlarmClockCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockCheck} instead. This alias will be removed in v1.0 */
default as AlarmCheck } from '../icons/alarm-clock-check';
// AlarmClockMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockMinus} instead. This alias will be removed in v1.0 */
default as AlarmMinus } from '../icons/alarm-clock-minus';
// AlarmClockPlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link AlarmClockPlus} instead. This alias will be removed in v1.0 */
default as AlarmPlus } from '../icons/alarm-clock-plus';
// ArrowDownAZ aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownAZ} instead. This alias will be removed in v1.0 */
default as ArrowDownAz } from '../icons/arrow-down-a-z';
// ArrowDownWideNarrow aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownWideNarrow} instead. This alias will be removed in v1.0 */
default as SortDesc } from '../icons/arrow-down-wide-narrow';
// ArrowDownZA aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowDownZA} instead. This alias will be removed in v1.0 */
default as ArrowDownZa } from '../icons/arrow-down-z-a';
// ArrowUpAZ aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpAZ} instead. This alias will be removed in v1.0 */
default as ArrowUpAz } from '../icons/arrow-up-a-z';
// ArrowUpNarrowWide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpNarrowWide} instead. This alias will be removed in v1.0 */
default as SortAsc } from '../icons/arrow-up-narrow-wide';
// ArrowUpZA aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ArrowUpZA} instead. This alias will be removed in v1.0 */
default as ArrowUpZa } from '../icons/arrow-up-z-a';
// Axis3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Axis3d} instead. This alias will be removed in v1.0 */
default as Axis3D } from '../icons/axis-3d';
// BadgeCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BadgeCheck} instead. This alias will be removed in v1.0 */
default as Verified } from '../icons/badge-check';
// BadgeQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BadgeQuestionMark} instead. This alias will be removed in v1.0 */
default as BadgeHelp } from '../icons/badge-question-mark';
// BetweenHorizontalEnd aliases
export { 
/** @deprecated Renamed because of typo, use {@link BetweenHorizontalEnd} instead. This alias will be removed in v1.0 */
default as BetweenHorizonalEnd } from '../icons/between-horizontal-end';
// BetweenHorizontalStart aliases
export { 
/** @deprecated Renamed because of typo, use {@link BetweenHorizontalStart} instead. This alias will be removed in v1.0 */
default as BetweenHorizonalStart } from '../icons/between-horizontal-start';
// BookDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link BookDashed} instead. This alias will be removed in v1.0.0 */
default as BookTemplate } from '../icons/book-dashed';
// Braces aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Braces} instead. This alias will be removed in v1.0 */
default as CurlyBraces } from '../icons/braces';
// Captions aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Captions} instead. This alias will be removed in v1.0 */
default as Subtitles } from '../icons/captions';
// ChartArea aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartArea} instead. This alias will be removed in v1.0 */
default as AreaChart } from '../icons/chart-area';
// ChartBarBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartBarBig} instead. This alias will be removed in v1.0 */
default as BarChartHorizontalBig } from '../icons/chart-bar-big';
// ChartBar aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartBar} instead. This alias will be removed in v1.0 */
default as BarChartHorizontal } from '../icons/chart-bar';
// ChartCandlestick aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartCandlestick} instead. This alias will be removed in v1.0 */
default as CandlestickChart } from '../icons/chart-candlestick';
// ChartColumnBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumnBig} instead. This alias will be removed in v1.0 */
default as BarChartBig } from '../icons/chart-column-big';
// ChartColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumnIncreasing} instead. This alias will be removed in v1.0 */
default as BarChart4 } from '../icons/chart-column-increasing';
// ChartColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartColumn} instead. This alias will be removed in v1.0 */
default as BarChart3 } from '../icons/chart-column';
// ChartLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartLine} instead. This alias will be removed in v1.0 */
default as LineChart } from '../icons/chart-line';
// ChartNoAxesColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesColumnIncreasing} instead. This alias will be removed in v1.0 */
default as BarChart } from '../icons/chart-no-axes-column-increasing';
// ChartNoAxesColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesColumn} instead. This alias will be removed in v1.0 */
default as BarChart2 } from '../icons/chart-no-axes-column';
// ChartNoAxesGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartNoAxesGantt} instead. This alias will be removed in v1.0 */
default as GanttChart } from '../icons/chart-no-axes-gantt';
// ChartPie aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartPie} instead. This alias will be removed in v1.0 */
default as PieChart } from '../icons/chart-pie';
// ChartScatter aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ChartScatter} instead. This alias will be removed in v1.0 */
default as ScatterChart } from '../icons/chart-scatter';
// CircleAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleAlert} instead. This alias will be removed in v1.0 */
default as AlertCircle } from '../icons/circle-alert';
// CircleArrowDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowDown} instead. This alias will be removed in v1.0 */
default as ArrowDownCircle } from '../icons/circle-arrow-down';
// CircleArrowLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowLeft} instead. This alias will be removed in v1.0 */
default as ArrowLeftCircle } from '../icons/circle-arrow-left';
// CircleArrowOutDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftFromCircle } from '../icons/circle-arrow-out-down-left';
// CircleArrowOutDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightFromCircle } from '../icons/circle-arrow-out-down-right';
// CircleArrowOutUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftFromCircle } from '../icons/circle-arrow-out-up-left';
// CircleArrowOutUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowOutUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightFromCircle } from '../icons/circle-arrow-out-up-right';
// CircleArrowRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowRight} instead. This alias will be removed in v1.0 */
default as ArrowRightCircle } from '../icons/circle-arrow-right';
// CircleArrowUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleArrowUp} instead. This alias will be removed in v1.0 */
default as ArrowUpCircle } from '../icons/circle-arrow-up';
// CircleCheckBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleCheckBig} instead. This alias will be removed in v1.0 */
default as CheckCircle } from '../icons/circle-check-big';
// CircleCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleCheck} instead. This alias will be removed in v1.0 */
default as CheckCircle2 } from '../icons/circle-check';
// CircleChevronDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronDown} instead. This alias will be removed in v1.0 */
default as ChevronDownCircle } from '../icons/circle-chevron-down';
// CircleChevronLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronLeft} instead. This alias will be removed in v1.0 */
default as ChevronLeftCircle } from '../icons/circle-chevron-left';
// CircleChevronRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronRight} instead. This alias will be removed in v1.0 */
default as ChevronRightCircle } from '../icons/circle-chevron-right';
// CircleChevronUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleChevronUp} instead. This alias will be removed in v1.0 */
default as ChevronUpCircle } from '../icons/circle-chevron-up';
// CircleDivide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleDivide} instead. This alias will be removed in v1.0 */
default as DivideCircle } from '../icons/circle-divide';
// CircleGauge aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleGauge} instead. This alias will be removed in v1.0 */
default as GaugeCircle } from '../icons/circle-gauge';
// CircleMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleMinus} instead. This alias will be removed in v1.0 */
default as MinusCircle } from '../icons/circle-minus';
// CircleParkingOff aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleParkingOff} instead. This alias will be removed in v1.0 */
default as ParkingCircleOff } from '../icons/circle-parking-off';
// CircleParking aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleParking} instead. This alias will be removed in v1.0 */
default as ParkingCircle } from '../icons/circle-parking';
// CirclePause aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePause} instead. This alias will be removed in v1.0 */
default as PauseCircle } from '../icons/circle-pause';
// CirclePercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePercent} instead. This alias will be removed in v1.0 */
default as PercentCircle } from '../icons/circle-percent';
// CirclePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePlay} instead. This alias will be removed in v1.0 */
default as PlayCircle } from '../icons/circle-play';
// CirclePlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePlus} instead. This alias will be removed in v1.0 */
default as PlusCircle } from '../icons/circle-plus';
// CirclePower aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CirclePower} instead. This alias will be removed in v1.0 */
default as PowerCircle } from '../icons/circle-power';
// CircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleQuestionMark} instead. This alias will be removed in v1.0 */
default as HelpCircle } from '../icons/circle-question-mark';
// CircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleQuestionMark} instead. This alias will be removed in v1.0 */
default as CircleHelp } from '../icons/circle-question-mark';
// CircleSlash2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleSlash2} instead. This alias will be removed in v1.0 */
default as CircleSlashed } from '../icons/circle-slash-2';
// CircleStop aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleStop} instead. This alias will be removed in v1.0 */
default as StopCircle } from '../icons/circle-stop';
// CircleUserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleUserRound} instead. This alias will be removed in v1.0 */
default as UserCircle2 } from '../icons/circle-user-round';
// CircleUser aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleUser} instead. This alias will be removed in v1.0 */
default as UserCircle } from '../icons/circle-user';
// CircleX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CircleX} instead. This alias will be removed in v1.0 */
default as XCircle } from '../icons/circle-x';
// ClipboardPenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ClipboardPenLine} instead. This alias will be removed in v1.0 */
default as ClipboardSignature } from '../icons/clipboard-pen-line';
// ClipboardPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ClipboardPen} instead. This alias will be removed in v1.0 */
default as ClipboardEdit } from '../icons/clipboard-pen';
// CloudDownload aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CloudDownload} instead. This alias will be removed in v1.0 */
default as DownloadCloud } from '../icons/cloud-download';
// CloudUpload aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CloudUpload} instead. This alias will be removed in v1.0 */
default as UploadCloud } from '../icons/cloud-upload';
// CodeXml aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link CodeXml} instead. This alias will be removed in v1.0 */
default as Code2 } from '../icons/code-xml';
// Columns2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns2} instead. This alias will be removed in v1.0 */
default as Columns } from '../icons/columns-2';
// Columns3Cog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3Cog} instead. This alias will be removed in v1.0 */
default as ColumnsSettings } from '../icons/columns-3-cog';
// Columns3Cog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3Cog} instead. This alias will be removed in v1.0 */
default as TableConfig } from '../icons/columns-3-cog';
// Columns3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Columns3} instead. This alias will be removed in v1.0 */
default as PanelsLeftRight } from '../icons/columns-3';
// ContactRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ContactRound} instead. This alias will be removed in v1.0 */
default as Contact2 } from '../icons/contact-round';
// DiamondPercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link DiamondPercent} instead. This alias will be removed in v1.0 */
default as PercentDiamond } from '../icons/diamond-percent';
// Earth aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Earth} instead. This alias will be removed in v1.0 */
default as Globe2 } from '../icons/earth';
// EllipsisVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link EllipsisVertical} instead. This alias will be removed in v1.0 */
default as MoreVertical } from '../icons/ellipsis-vertical';
// Ellipsis aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Ellipsis} instead. This alias will be removed in v1.0 */
default as MoreHorizontal } from '../icons/ellipsis';
// FileAxis3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileAxis3d} instead. This alias will be removed in v1.0 */
default as FileAxis3D } from '../icons/file-axis-3d';
// FileChartColumnIncreasing aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartColumnIncreasing} instead. This alias will be removed in v1.0 */
default as FileBarChart } from '../icons/file-chart-column-increasing';
// FileChartColumn aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartColumn} instead. This alias will be removed in v1.0 */
default as FileBarChart2 } from '../icons/file-chart-column';
// FileChartLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartLine} instead. This alias will be removed in v1.0 */
default as FileLineChart } from '../icons/file-chart-line';
// FileChartPie aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileChartPie} instead. This alias will be removed in v1.0 */
default as FilePieChart } from '../icons/file-chart-pie';
// FileCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileCog} instead. This alias will be removed in v1.0 */
default as FileCog2 } from '../icons/file-cog';
// FilePenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePenLine} instead. This alias will be removed in v1.0 */
default as FileSignature } from '../icons/file-pen-line';
// FilePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePen} instead. This alias will be removed in v1.0 */
default as FileEdit } from '../icons/file-pen';
// FilePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FilePlay} instead. This alias will be removed in v1.0 */
default as FileVideo } from '../icons/file-play';
// FileQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileQuestionMark} instead. This alias will be removed in v1.0 */
default as FileQuestion } from '../icons/file-question-mark';
// FileVideoCamera aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FileVideoCamera} instead. This alias will be removed in v1.0 */
default as FileVideo2 } from '../icons/file-video-camera';
// FolderCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FolderCog} instead. This alias will be removed in v1.0 */
default as FolderCog2 } from '../icons/folder-cog';
// FolderPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FolderPen} instead. This alias will be removed in v1.0 */
default as FolderEdit } from '../icons/folder-pen';
// FunnelX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link FunnelX} instead. This alias will be removed in v1.0 */
default as FilterX } from '../icons/funnel-x';
// Funnel aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Funnel} instead. This alias will be removed in v1.0 */
default as Filter } from '../icons/funnel';
// GitCommitHorizontal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link GitCommitHorizontal} instead. This alias will be removed in v1.0 */
default as GitCommit } from '../icons/git-commit-horizontal';
// Grid2x2Check aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2Check} instead. This alias will be removed in v1.0 */
default as Grid2X2Check } from '../icons/grid-2x2-check';
// Grid2x2Plus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2Plus} instead. This alias will be removed in v1.0 */
default as Grid2X2Plus } from '../icons/grid-2x2-plus';
// Grid2x2X aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2X} instead. This alias will be removed in v1.0 */
default as Grid2X2X } from '../icons/grid-2x2-x';
// Grid2x2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid2x2} instead. This alias will be removed in v1.0 */
default as Grid2X2 } from '../icons/grid-2x2';
// Grid3x3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid3x3} instead. This alias will be removed in v1.0 */
default as Grid } from '../icons/grid-3x3';
// Grid3x3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Grid3x3} instead. This alias will be removed in v1.0 */
default as Grid3X3 } from '../icons/grid-3x3';
// HandGrab aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link HandGrab} instead. This alias will be removed in v1.0 */
default as Grab } from '../icons/hand-grab';
// HandHelping aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link HandHelping} instead. This alias will be removed in v1.0 */
default as HelpingHand } from '../icons/hand-helping';
// House aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link House} instead. This alias will be removed in v1.0 */
default as Home } from '../icons/house';
// IceCreamBowl aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IceCreamBowl} instead. This alias will be removed in v1.0 */
default as IceCream2 } from '../icons/ice-cream-bowl';
// IceCreamCone aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IceCreamCone} instead. This alias will be removed in v1.0 */
default as IceCream } from '../icons/ice-cream-cone';
// IndentDecrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IndentDecrease} instead. This alias will be removed in v1.0 */
default as Outdent } from '../icons/indent-decrease';
// IndentIncrease aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link IndentIncrease} instead. This alias will be removed in v1.0 */
default as Indent } from '../icons/indent-increase';
// LaptopMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LaptopMinimal} instead. This alias will be removed in v1.0 */
default as Laptop2 } from '../icons/laptop-minimal';
// Layers aliases
export { 
/** @deprecated The icon was combined with another icon that shares the same use case, use {@link Layers} instead. This alias will be removed in v1.0 */
default as Layers3 } from '../icons/layers';
// LoaderCircle aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LoaderCircle} instead. This alias will be removed in v1.0 */
default as Loader2 } from '../icons/loader-circle';
// LockKeyholeOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LockKeyholeOpen} instead. This alias will be removed in v1.0 */
default as UnlockKeyhole } from '../icons/lock-keyhole-open';
// LockOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link LockOpen} instead. This alias will be removed in v1.0 */
default as Unlock } from '../icons/lock-open';
// MailQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MailQuestionMark} instead. This alias will be removed in v1.0 */
default as MailQuestion } from '../icons/mail-question-mark';
// MapPinPen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MapPinPen} instead. This alias will be removed in v1.0 */
default as LocationEdit } from '../icons/map-pin-pen';
// MessageCircleQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MessageCircleQuestionMark} instead. This alias will be removed in v1.0 */
default as MessageCircleQuestion } from '../icons/message-circle-question-mark';
// MicVocal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link MicVocal} instead. This alias will be removed in v1.0 */
default as Mic2 } from '../icons/mic-vocal';
// Move3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Move3d} instead. This alias will be removed in v1.0 */
default as Move3D } from '../icons/move-3d';
// OctagonAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonAlert} instead. This alias will be removed in v1.0 */
default as AlertOctagon } from '../icons/octagon-alert';
// OctagonPause aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonPause} instead. This alias will be removed in v1.0 */
default as PauseOctagon } from '../icons/octagon-pause';
// OctagonX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link OctagonX} instead. This alias will be removed in v1.0 */
default as XOctagon } from '../icons/octagon-x';
// PaintbrushVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PaintbrushVertical} instead. This alias will be removed in v1.0 */
default as Paintbrush2 } from '../icons/paintbrush-vertical';
// PanelBottomDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelBottomDashed} instead. This alias will be removed in v1.0 */
default as PanelBottomInactive } from '../icons/panel-bottom-dashed';
// PanelLeftClose aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftClose} instead. This alias will be removed in v1.0 */
default as SidebarClose } from '../icons/panel-left-close';
// PanelLeftDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftDashed} instead. This alias will be removed in v1.0 */
default as PanelLeftInactive } from '../icons/panel-left-dashed';
// PanelLeftOpen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeftOpen} instead. This alias will be removed in v1.0 */
default as SidebarOpen } from '../icons/panel-left-open';
// PanelLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelLeft} instead. This alias will be removed in v1.0 */
default as Sidebar } from '../icons/panel-left';
// PanelRightDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelRightDashed} instead. This alias will be removed in v1.0 */
default as PanelRightInactive } from '../icons/panel-right-dashed';
// PanelTopDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelTopDashed} instead. This alias will be removed in v1.0 */
default as PanelTopInactive } from '../icons/panel-top-dashed';
// PanelsTopLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PanelsTopLeft} instead. This alias will be removed in v1.0 */
default as Layout } from '../icons/panels-top-left';
// PenLine aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PenLine} instead. This alias will be removed in v1.0 */
default as Edit3 } from '../icons/pen-line';
// Pen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Pen} instead. This alias will be removed in v1.0 */
default as Edit2 } from '../icons/pen';
// PlugZap aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link PlugZap} instead. This alias will be removed in v1.0 */
default as PlugZap2 } from '../icons/plug-zap';
// RectangleEllipsis aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link RectangleEllipsis} instead. This alias will be removed in v1.0 */
default as FormInput } from '../icons/rectangle-ellipsis';
// Rotate3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rotate3d} instead. This alias will be removed in v1.0 */
default as Rotate3D } from '../icons/rotate-3d';
// Rows2 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rows2} instead. This alias will be removed in v1.0 */
default as Rows } from '../icons/rows-2';
// Rows3 aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Rows3} instead. This alias will be removed in v1.0 */
default as PanelsTopBottom } from '../icons/rows-3';
// Scale3d aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Scale3d} instead. This alias will be removed in v1.0 */
default as Scale3D } from '../icons/scale-3d';
// SendHorizontal aliases
export { 
/** @deprecated Renamed because of typo, use {@link SendHorizontal} instead. This alias will be removed in v1.0 */
default as SendHorizonal } from '../icons/send-horizontal';
// ShieldQuestionMark aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ShieldQuestionMark} instead. This alias will be removed in v1.0 */
default as ShieldQuestion } from '../icons/shield-question-mark';
// ShieldX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ShieldX} instead. This alias will be removed in v1.0 */
default as ShieldClose } from '../icons/shield-x';
// SlidersVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SlidersVertical} instead. This alias will be removed in v1.0 */
default as Sliders } from '../icons/sliders-vertical';
// Sparkles aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Sparkles} instead. This alias will be removed in v1.0 */
default as Stars } from '../icons/sparkles';
// SquareActivity aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareActivity} instead. This alias will be removed in v1.0 */
default as ActivitySquare } from '../icons/square-activity';
// SquareArrowDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftSquare } from '../icons/square-arrow-down-left';
// SquareArrowDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightSquare } from '../icons/square-arrow-down-right';
// SquareArrowDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowDown} instead. This alias will be removed in v1.0 */
default as ArrowDownSquare } from '../icons/square-arrow-down';
// SquareArrowLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowLeft} instead. This alias will be removed in v1.0 */
default as ArrowLeftSquare } from '../icons/square-arrow-left';
// SquareArrowOutDownLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutDownLeft} instead. This alias will be removed in v1.0 */
default as ArrowDownLeftFromSquare } from '../icons/square-arrow-out-down-left';
// SquareArrowOutDownRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutDownRight} instead. This alias will be removed in v1.0 */
default as ArrowDownRightFromSquare } from '../icons/square-arrow-out-down-right';
// SquareArrowOutUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftFromSquare } from '../icons/square-arrow-out-up-left';
// SquareArrowOutUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowOutUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightFromSquare } from '../icons/square-arrow-out-up-right';
// SquareArrowRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowRight} instead. This alias will be removed in v1.0 */
default as ArrowRightSquare } from '../icons/square-arrow-right';
// SquareArrowUpLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUpLeft} instead. This alias will be removed in v1.0 */
default as ArrowUpLeftSquare } from '../icons/square-arrow-up-left';
// SquareArrowUpRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUpRight} instead. This alias will be removed in v1.0 */
default as ArrowUpRightSquare } from '../icons/square-arrow-up-right';
// SquareArrowUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareArrowUp} instead. This alias will be removed in v1.0 */
default as ArrowUpSquare } from '../icons/square-arrow-up';
// SquareAsterisk aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareAsterisk} instead. This alias will be removed in v1.0 */
default as AsteriskSquare } from '../icons/square-asterisk';
// SquareBottomDashedScissors aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareBottomDashedScissors} instead. This alias will be removed in v1.0 */
default as ScissorsSquareDashedBottom } from '../icons/square-bottom-dashed-scissors';
// SquareChartGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChartGantt} instead. This alias will be removed in v1.0 */
default as GanttChartSquare } from '../icons/square-chart-gantt';
// SquareChartGantt aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChartGantt} instead. This alias will be removed in v1.0 */
default as SquareGanttChart } from '../icons/square-chart-gantt';
// SquareCheckBig aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCheckBig} instead. This alias will be removed in v1.0 */
default as CheckSquare } from '../icons/square-check-big';
// SquareCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCheck} instead. This alias will be removed in v1.0 */
default as CheckSquare2 } from '../icons/square-check';
// SquareChevronDown aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronDown} instead. This alias will be removed in v1.0 */
default as ChevronDownSquare } from '../icons/square-chevron-down';
// SquareChevronLeft aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronLeft} instead. This alias will be removed in v1.0 */
default as ChevronLeftSquare } from '../icons/square-chevron-left';
// SquareChevronRight aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronRight} instead. This alias will be removed in v1.0 */
default as ChevronRightSquare } from '../icons/square-chevron-right';
// SquareChevronUp aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareChevronUp} instead. This alias will be removed in v1.0 */
default as ChevronUpSquare } from '../icons/square-chevron-up';
// SquareCode aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareCode} instead. This alias will be removed in v1.0 */
default as CodeSquare } from '../icons/square-code';
// SquareDashedKanban aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashedKanban} instead. This alias will be removed in v1.0 */
default as KanbanSquareDashed } from '../icons/square-dashed-kanban';
// SquareDashedMousePointer aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashedMousePointer} instead. This alias will be removed in v1.0 */
default as MousePointerSquareDashed } from '../icons/square-dashed-mouse-pointer';
// SquareDashed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDashed} instead. This alias will be removed in v1.0 */
default as BoxSelect } from '../icons/square-dashed';
// SquareDivide aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDivide} instead. This alias will be removed in v1.0 */
default as DivideSquare } from '../icons/square-divide';
// SquareDot aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareDot} instead. This alias will be removed in v1.0 */
default as DotSquare } from '../icons/square-dot';
// SquareEqual aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareEqual} instead. This alias will be removed in v1.0 */
default as EqualSquare } from '../icons/square-equal';
// SquareFunction aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareFunction} instead. This alias will be removed in v1.0 */
default as FunctionSquare } from '../icons/square-function';
// SquareKanban aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareKanban} instead. This alias will be removed in v1.0 */
default as KanbanSquare } from '../icons/square-kanban';
// SquareLibrary aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareLibrary} instead. This alias will be removed in v1.0 */
default as LibrarySquare } from '../icons/square-library';
// SquareM aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareM} instead. This alias will be removed in v1.0 */
default as MSquare } from '../icons/square-m';
// SquareMenu aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMenu} instead. This alias will be removed in v1.0 */
default as MenuSquare } from '../icons/square-menu';
// SquareMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMinus} instead. This alias will be removed in v1.0 */
default as MinusSquare } from '../icons/square-minus';
// SquareMousePointer aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareMousePointer} instead. This alias will be removed in v1.0 */
default as Inspect } from '../icons/square-mouse-pointer';
// SquareParkingOff aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareParkingOff} instead. This alias will be removed in v1.0 */
default as ParkingSquareOff } from '../icons/square-parking-off';
// SquareParking aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareParking} instead. This alias will be removed in v1.0 */
default as ParkingSquare } from '../icons/square-parking';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as PenBox } from '../icons/square-pen';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as Edit } from '../icons/square-pen';
// SquarePen aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePen} instead. This alias will be removed in v1.0 */
default as PenSquare } from '../icons/square-pen';
// SquarePercent aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePercent} instead. This alias will be removed in v1.0 */
default as PercentSquare } from '../icons/square-percent';
// SquarePi aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePi} instead. This alias will be removed in v1.0 */
default as PiSquare } from '../icons/square-pi';
// SquarePilcrow aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePilcrow} instead. This alias will be removed in v1.0 */
default as PilcrowSquare } from '../icons/square-pilcrow';
// SquarePlay aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePlay} instead. This alias will be removed in v1.0 */
default as PlaySquare } from '../icons/square-play';
// SquarePlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePlus} instead. This alias will be removed in v1.0 */
default as PlusSquare } from '../icons/square-plus';
// SquarePower aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquarePower} instead. This alias will be removed in v1.0 */
default as PowerSquare } from '../icons/square-power';
// SquareScissors aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareScissors} instead. This alias will be removed in v1.0 */
default as ScissorsSquare } from '../icons/square-scissors';
// SquareSigma aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSigma} instead. This alias will be removed in v1.0 */
default as SigmaSquare } from '../icons/square-sigma';
// SquareSlash aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSlash} instead. This alias will be removed in v1.0 */
default as SlashSquare } from '../icons/square-slash';
// SquareSplitHorizontal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSplitHorizontal} instead. This alias will be removed in v1.0 */
default as SplitSquareHorizontal } from '../icons/square-split-horizontal';
// SquareSplitVertical aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareSplitVertical} instead. This alias will be removed in v1.0 */
default as SplitSquareVertical } from '../icons/square-split-vertical';
// SquareTerminal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareTerminal} instead. This alias will be removed in v1.0 */
default as TerminalSquare } from '../icons/square-terminal';
// SquareUserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareUserRound} instead. This alias will be removed in v1.0 */
default as UserSquare2 } from '../icons/square-user-round';
// SquareUser aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareUser} instead. This alias will be removed in v1.0 */
default as UserSquare } from '../icons/square-user';
// SquareX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link SquareX} instead. This alias will be removed in v1.0 */
default as XSquare } from '../icons/square-x';
// TextSelect aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TextSelect} instead. This alias will be removed in v1.0 */
default as TextSelection } from '../icons/text-select';
// TestTubeDiagonal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TestTubeDiagonal} instead. This alias will be removed in v1.0 */
default as TestTube2 } from '../icons/test-tube-diagonal';
// TramFront aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TramFront} instead. This alias will be removed in v1.0 */
default as Train } from '../icons/tram-front';
// TreePalm aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TreePalm} instead. This alias will be removed in v1.0 */
default as Palmtree } from '../icons/tree-palm';
// TriangleAlert aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TriangleAlert} instead. This alias will be removed in v1.0 */
default as AlertTriangle } from '../icons/triangle-alert';
// TvMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link TvMinimal} instead. This alias will be removed in v1.0 */
default as Tv2 } from '../icons/tv-minimal';
// University aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link University} instead. This alias will be removed in v1.0 */
default as School2 } from '../icons/university';
// UserRoundCheck aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundCheck} instead. This alias will be removed in v1.0 */
default as UserCheck2 } from '../icons/user-round-check';
// UserRoundCog aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundCog} instead. This alias will be removed in v1.0 */
default as UserCog2 } from '../icons/user-round-cog';
// UserRoundMinus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundMinus} instead. This alias will be removed in v1.0 */
default as UserMinus2 } from '../icons/user-round-minus';
// UserRoundPlus aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundPlus} instead. This alias will be removed in v1.0 */
default as UserPlus2 } from '../icons/user-round-plus';
// UserRoundX aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRoundX} instead. This alias will be removed in v1.0 */
default as UserX2 } from '../icons/user-round-x';
// UserRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UserRound} instead. This alias will be removed in v1.0 */
default as User2 } from '../icons/user-round';
// UsersRound aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UsersRound} instead. This alias will be removed in v1.0 */
default as Users2 } from '../icons/users-round';
// UtensilsCrossed aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link UtensilsCrossed} instead. This alias will be removed in v1.0 */
default as ForkKnifeCrossed } from '../icons/utensils-crossed';
// Utensils aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link Utensils} instead. This alias will be removed in v1.0 */
default as ForkKnife } from '../icons/utensils';
// WandSparkles aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link WandSparkles} instead. This alias will be removed in v1.0 */
default as Wand2 } from '../icons/wand-sparkles';
// WalletMinimal aliases
export { 
/** @deprecated The name of this icon was changed because it didn't meet our guidelines anymore, use {@link WalletMinimal} instead. This alias will be removed in v1.0 */
default as Wallet2 } from '../icons/wallet-minimal';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hbGlhc2VzL2FsaWFzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQywwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyw4QkFBOEI7QUFDOUIsT0FBTztBQUNMLCtLQUErSztBQUMvSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQiw0QkFBNEI7QUFDNUIsT0FBTztBQUNMLDZLQUE2SztBQUM3SyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLG9CQUFvQjtBQUNwQixPQUFPO0FBQ0wscUtBQXFLO0FBQ3JLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsaUJBQWlCO0FBQ2pCLE9BQU87QUFDTCxrS0FBa0s7QUFDbEssT0FBTyxJQUFJLE1BQU0sRUFDbEIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLDRCQUE0QjtBQUM1QixPQUFPO0FBQ0wsNktBQTZLO0FBQzdLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsK0JBQStCO0FBQy9CLE9BQU87QUFDTCx3SEFBd0g7QUFDeEgsT0FBTyxJQUFJLG1CQUFtQixFQUMvQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLGlDQUFpQztBQUNqQyxPQUFPO0FBQ0wsMEhBQTBIO0FBQzFILE9BQU8sSUFBSSxxQkFBcUIsRUFDakMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxxQkFBcUI7QUFDckIsT0FBTztBQUNMLHdLQUF3SztBQUN4SyxPQUFPLElBQUksWUFBWSxFQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLGlCQUFpQjtBQUNqQixPQUFPO0FBQ0wsa0tBQWtLO0FBQ2xLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixvQkFBb0I7QUFDcEIsT0FBTztBQUNMLHFLQUFxSztBQUNySyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxxQkFBcUIsRUFDakMsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksa0JBQWtCLEVBQzlCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsMkJBQTJCO0FBQzNCLE9BQU87QUFDTCw0S0FBNEs7QUFDNUssT0FBTyxJQUFJLGdCQUFnQixFQUM1QixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsZ0NBQWdDO0FBQ2hDLE9BQU87QUFDTCxpTEFBaUw7QUFDakwsT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLG9CQUFvQjtBQUNwQixPQUFPO0FBQ0wscUtBQXFLO0FBQ3JLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFFN0Isc0NBQXNDO0FBQ3RDLE9BQU87QUFDTCx1TEFBdUw7QUFDdkwsT0FBTyxJQUFJLFFBQVEsRUFDcEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCw0QkFBNEI7QUFDNUIsT0FBTztBQUNMLDZLQUE2SztBQUM3SyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLDJCQUEyQjtBQUMzQixPQUFPO0FBQ0wsNEtBQTRLO0FBQzVLLE9BQU8sSUFBSSxVQUFVLEVBQ3RCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLFFBQVEsRUFDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1Qix1QkFBdUI7QUFDdkIsT0FBTztBQUNMLHdLQUF3SztBQUN4SyxPQUFPLElBQUksWUFBWSxFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGVBQWUsRUFDM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQywwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksZUFBZSxFQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLGlDQUFpQztBQUNqQyxPQUFPO0FBQ0wsa0xBQWtMO0FBQ2xMLE9BQU8sSUFBSSx1QkFBdUIsRUFDbkMsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxrQ0FBa0M7QUFDbEMsT0FBTztBQUNMLG1MQUFtTDtBQUNuTCxPQUFPLElBQUksd0JBQXdCLEVBQ3BDLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsK0JBQStCO0FBQy9CLE9BQU87QUFDTCxnTEFBZ0w7QUFDaEwsT0FBTyxJQUFJLHFCQUFxQixFQUNqQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLGdDQUFnQztBQUNoQyxPQUFPO0FBQ0wsaUxBQWlMO0FBQ2pMLE9BQU8sSUFBSSxzQkFBc0IsRUFDbEMsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1QywyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksZ0JBQWdCLEVBQzVCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyx5QkFBeUI7QUFDekIsT0FBTztBQUNMLDBLQUEwSztBQUMxSyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsNEJBQTRCO0FBQzVCLE9BQU87QUFDTCw2S0FBNks7QUFDN0ssT0FBTyxJQUFJLGlCQUFpQixFQUM3QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLDRCQUE0QjtBQUM1QixPQUFPO0FBQ0wsNktBQTZLO0FBQzdLLE9BQU8sSUFBSSxpQkFBaUIsRUFDN0IsTUFBTSw4QkFBOEIsQ0FBQztBQUV0Qyw2QkFBNkI7QUFDN0IsT0FBTztBQUNMLDhLQUE4SztBQUM5SyxPQUFPLElBQUksa0JBQWtCLEVBQzlCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGVBQWUsRUFDM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyx1QkFBdUI7QUFDdkIsT0FBTztBQUNMLHdLQUF3SztBQUN4SyxPQUFPLElBQUksWUFBWSxFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0Isc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQiwyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksZ0JBQWdCLEVBQzVCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxhQUFhLEVBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsNkJBQTZCO0FBQzdCLE9BQU87QUFDTCw4S0FBOEs7QUFDOUssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2Qyw2QkFBNkI7QUFDN0IsT0FBTztBQUNMLDhLQUE4SztBQUM5SyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxhQUFhLEVBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QiwwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHFCQUFxQjtBQUNyQixPQUFPO0FBQ0wsc0tBQXNLO0FBQ3RLLE9BQU8sSUFBSSxVQUFVLEVBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQiwyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksa0JBQWtCLEVBQzlCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsdUJBQXVCO0FBQ3ZCLE9BQU87QUFDTCx3S0FBd0s7QUFDeEssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyx3QkFBd0I7QUFDeEIsT0FBTztBQUNMLHlLQUF5SztBQUN6SyxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0Isa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLEtBQUssRUFDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxlQUFlLEVBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksZUFBZSxFQUMzQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxRQUFRLEVBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMseUJBQXlCO0FBQ3pCLE9BQU87QUFDTCwwS0FBMEs7QUFDMUssT0FBTyxJQUFJLGNBQWMsRUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxnQkFBZ0I7QUFDaEIsT0FBTztBQUNMLGlLQUFpSztBQUNqSyxPQUFPLElBQUksTUFBTSxFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLDJCQUEyQjtBQUMzQixPQUFPO0FBQ0wsNEtBQTRLO0FBQzVLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLGNBQWMsRUFDMUIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLG9DQUFvQztBQUNwQyxPQUFPO0FBQ0wscUxBQXFMO0FBQ3JMLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sdUNBQXVDLENBQUM7QUFFL0MsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyx3QkFBd0I7QUFDeEIsT0FBTztBQUNMLHlLQUF5SztBQUN6SyxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLFFBQVEsRUFDcEIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLGtCQUFrQjtBQUNsQixPQUFPO0FBQ0wsbUtBQW1LO0FBQ25LLE9BQU8sSUFBSSxRQUFRLEVBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QiwyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksWUFBWSxFQUN4QixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLDBCQUEwQjtBQUMxQixPQUFPO0FBQ0wsMktBQTJLO0FBQzNLLE9BQU8sSUFBSSxVQUFVLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixvQkFBb0I7QUFDcEIsT0FBTztBQUNMLHFLQUFxSztBQUNySyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLGtCQUFrQjtBQUNsQixPQUFPO0FBQ0wsbUtBQW1LO0FBQ25LLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsaUJBQWlCO0FBQ2pCLE9BQU87QUFDTCxrS0FBa0s7QUFDbEssT0FBTyxJQUFJLE1BQU0sRUFDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qiw4QkFBOEI7QUFDOUIsT0FBTztBQUNMLCtLQUErSztBQUMvSyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLGtCQUFrQjtBQUNsQixPQUFPO0FBQ0wsbUtBQW1LO0FBQ25LLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFFM0Isa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLElBQUksRUFDaEIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixrQkFBa0I7QUFDbEIsT0FBTztBQUNMLG1LQUFtSztBQUNuSyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLG1CQUFtQjtBQUNuQixPQUFPO0FBQ0wsb0tBQW9LO0FBQ3BLLE9BQU8sSUFBSSxJQUFJLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixnQkFBZ0I7QUFDaEIsT0FBTztBQUNMLGlLQUFpSztBQUNqSyxPQUFPLElBQUksSUFBSSxFQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsdUJBQXVCO0FBQ3ZCLE9BQU87QUFDTCx3S0FBd0s7QUFDeEssT0FBTyxJQUFJLFFBQVEsRUFDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyx5QkFBeUI7QUFDekIsT0FBTztBQUNMLDBLQUEwSztBQUMxSyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxNQUFNLEVBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxpQkFBaUI7QUFDakIsT0FBTztBQUNMLHdKQUF3SjtBQUN4SixPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksTUFBTSxFQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLDJCQUEyQjtBQUMzQixPQUFPO0FBQ0wsNEtBQTRLO0FBQzVLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLFlBQVksRUFDeEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixvQ0FBb0M7QUFDcEMsT0FBTztBQUNMLHFMQUFxTDtBQUNyTCxPQUFPLElBQUkscUJBQXFCLEVBQ2pDLE1BQU0sdUNBQXVDLENBQUM7QUFFL0MsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLElBQUksRUFDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixpQkFBaUI7QUFDakIsT0FBTztBQUNMLGtLQUFrSztBQUNsSyxPQUFPLElBQUksTUFBTSxFQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsdUJBQXVCO0FBQ3ZCLE9BQU87QUFDTCx3S0FBd0s7QUFDeEssT0FBTyxJQUFJLFlBQVksRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLDZCQUE2QjtBQUM3QixPQUFPO0FBQ0wsOEtBQThLO0FBQzlLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsNEJBQTRCO0FBQzVCLE9BQU87QUFDTCw2S0FBNks7QUFDN0ssT0FBTyxJQUFJLG1CQUFtQixFQUMvQixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGlCQUFpQixFQUM3QixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QiwyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksa0JBQWtCLEVBQzlCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMseUJBQXlCO0FBQ3pCLE9BQU87QUFDTCwwS0FBMEs7QUFDMUssT0FBTyxJQUFJLGdCQUFnQixFQUM1QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxNQUFNLEVBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLEtBQUssRUFDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixjQUFjO0FBQ2QsT0FBTztBQUNMLCtKQUErSjtBQUMvSixPQUFPLElBQUksS0FBSyxFQUNqQixNQUFNLGNBQWMsQ0FBQztBQUV0QixrQkFBa0I7QUFDbEIsT0FBTztBQUNMLG1LQUFtSztBQUNuSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLDRCQUE0QjtBQUM1QixPQUFPO0FBQ0wsNktBQTZLO0FBQzdLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsbUJBQW1CO0FBQ25CLE9BQU87QUFDTCxvS0FBb0s7QUFDcEssT0FBTyxJQUFJLFFBQVEsRUFDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixnQkFBZ0I7QUFDaEIsT0FBTztBQUNMLGlLQUFpSztBQUNqSyxPQUFPLElBQUksSUFBSSxFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLGdCQUFnQjtBQUNoQixPQUFPO0FBQ0wsaUtBQWlLO0FBQ2pLLE9BQU8sSUFBSSxlQUFlLEVBQzNCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQix5QkFBeUI7QUFDekIsT0FBTztBQUNMLGtIQUFrSDtBQUNsSCxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLDZCQUE2QjtBQUM3QixPQUFPO0FBQ0wsOEtBQThLO0FBQzlLLE9BQU8sSUFBSSxjQUFjLEVBQzFCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsa0JBQWtCO0FBQ2xCLE9BQU87QUFDTCxtS0FBbUs7QUFDbkssT0FBTyxJQUFJLFdBQVcsRUFDdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQiwwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLG1CQUFtQjtBQUNuQixPQUFPO0FBQ0wsb0tBQW9LO0FBQ3BLLE9BQU8sSUFBSSxLQUFLLEVBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IseUJBQXlCO0FBQ3pCLE9BQU87QUFDTCwwS0FBMEs7QUFDMUssT0FBTyxJQUFJLGNBQWMsRUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyw4QkFBOEI7QUFDOUIsT0FBTztBQUNMLCtLQUErSztBQUMvSyxPQUFPLElBQUksbUJBQW1CLEVBQy9CLE1BQU0saUNBQWlDLENBQUM7QUFFekMsK0JBQStCO0FBQy9CLE9BQU87QUFDTCxnTEFBZ0w7QUFDaEwsT0FBTyxJQUFJLG9CQUFvQixFQUNoQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLDBCQUEwQjtBQUMxQixPQUFPO0FBQ0wsMktBQTJLO0FBQzNLLE9BQU8sSUFBSSxlQUFlLEVBQzNCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsMEJBQTBCO0FBQzFCLE9BQU87QUFDTCwyS0FBMks7QUFDM0ssT0FBTyxJQUFJLGVBQWUsRUFDM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxpQ0FBaUM7QUFDakMsT0FBTztBQUNMLGtMQUFrTDtBQUNsTCxPQUFPLElBQUksdUJBQXVCLEVBQ25DLE1BQU0scUNBQXFDLENBQUM7QUFFN0Msa0NBQWtDO0FBQ2xDLE9BQU87QUFDTCxtTEFBbUw7QUFDbkwsT0FBTyxJQUFJLHdCQUF3QixFQUNwQyxNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLCtCQUErQjtBQUMvQixPQUFPO0FBQ0wsZ0xBQWdMO0FBQ2hMLE9BQU8sSUFBSSxxQkFBcUIsRUFDakMsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxnQ0FBZ0M7QUFDaEMsT0FBTztBQUNMLGlMQUFpTDtBQUNqTCxPQUFPLElBQUksc0JBQXNCLEVBQ2xDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsMkJBQTJCO0FBQzNCLE9BQU87QUFDTCw0S0FBNEs7QUFDNUssT0FBTyxJQUFJLGdCQUFnQixFQUM1QixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLDRCQUE0QjtBQUM1QixPQUFPO0FBQ0wsNktBQTZLO0FBQzdLLE9BQU8sSUFBSSxpQkFBaUIsRUFDN0IsTUFBTSwrQkFBK0IsQ0FBQztBQUV2Qyw2QkFBNkI7QUFDN0IsT0FBTztBQUNMLDhLQUE4SztBQUM5SyxPQUFPLElBQUksa0JBQWtCLEVBQzlCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyx5QkFBeUI7QUFDekIsT0FBTztBQUNMLDBLQUEwSztBQUMxSyxPQUFPLElBQUksY0FBYyxFQUMxQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLHFDQUFxQztBQUNyQyxPQUFPO0FBQ0wsc0xBQXNMO0FBQ3RMLE9BQU8sSUFBSSwwQkFBMEIsRUFDdEMsTUFBTSx3Q0FBd0MsQ0FBQztBQUVoRCwyQkFBMkI7QUFDM0IsT0FBTztBQUNMLDRLQUE0SztBQUM1SyxPQUFPLElBQUksZ0JBQWdCLEVBQzVCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsMkJBQTJCO0FBQzNCLE9BQU87QUFDTCw0S0FBNEs7QUFDNUssT0FBTyxJQUFJLGdCQUFnQixFQUM1QixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsc0JBQXNCO0FBQ3RCLE9BQU87QUFDTCx1S0FBdUs7QUFDdkssT0FBTyxJQUFJLFlBQVksRUFDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQiw0QkFBNEI7QUFDNUIsT0FBTztBQUNMLDZLQUE2SztBQUM3SyxPQUFPLElBQUksaUJBQWlCLEVBQzdCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsNEJBQTRCO0FBQzVCLE9BQU87QUFDTCw2S0FBNks7QUFDN0ssT0FBTyxJQUFJLGlCQUFpQixFQUM3QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLDZCQUE2QjtBQUM3QixPQUFPO0FBQ0wsOEtBQThLO0FBQzlLLE9BQU8sSUFBSSxrQkFBa0IsRUFDOUIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QywwQkFBMEI7QUFDMUIsT0FBTztBQUNMLDJLQUEySztBQUMzSyxPQUFPLElBQUksZUFBZSxFQUMzQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLHFCQUFxQjtBQUNyQixPQUFPO0FBQ0wsc0tBQXNLO0FBQ3RLLE9BQU8sSUFBSSxVQUFVLEVBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsNkJBQTZCO0FBQzdCLE9BQU87QUFDTCw4S0FBOEs7QUFDOUssT0FBTyxJQUFJLGtCQUFrQixFQUM5QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLG1DQUFtQztBQUNuQyxPQUFPO0FBQ0wsb0xBQW9MO0FBQ3BMLE9BQU8sSUFBSSx3QkFBd0IsRUFDcEMsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5Qyx1QkFBdUI7QUFDdkIsT0FBTztBQUNMLHdLQUF3SztBQUN4SyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxZQUFZLEVBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLHlCQUF5QjtBQUN6QixPQUFPO0FBQ0wsMEtBQTBLO0FBQzFLLE9BQU8sSUFBSSxjQUFjLEVBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsdUJBQXVCO0FBQ3ZCLE9BQU87QUFDTCx3S0FBd0s7QUFDeEssT0FBTyxJQUFJLFlBQVksRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyx3QkFBd0I7QUFDeEIsT0FBTztBQUNMLHlLQUF5SztBQUN6SyxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLGtCQUFrQjtBQUNsQixPQUFPO0FBQ0wsbUtBQW1LO0FBQ25LLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLDZCQUE2QjtBQUM3QixPQUFPO0FBQ0wsOEtBQThLO0FBQzlLLE9BQU8sSUFBSSxPQUFPLEVBQ25CLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsMkJBQTJCO0FBQzNCLE9BQU87QUFDTCw0S0FBNEs7QUFDNUssT0FBTyxJQUFJLGdCQUFnQixFQUM1QixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxhQUFhLEVBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLE1BQU0sRUFDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixvQkFBb0I7QUFDcEIsT0FBTztBQUNMLHFLQUFxSztBQUNySyxPQUFPLElBQUksSUFBSSxFQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLG9CQUFvQjtBQUNwQixPQUFPO0FBQ0wscUtBQXFLO0FBQ3JLLE9BQU8sSUFBSSxTQUFTLEVBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFFN0Isd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksUUFBUSxFQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLHdCQUF3QjtBQUN4QixPQUFPO0FBQ0wseUtBQXlLO0FBQ3pLLE9BQU8sSUFBSSxhQUFhLEVBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IseUJBQXlCO0FBQ3pCLE9BQU87QUFDTCwwS0FBMEs7QUFDMUssT0FBTyxJQUFJLGNBQWMsRUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxzQkFBc0I7QUFDdEIsT0FBTztBQUNMLHVLQUF1SztBQUN2SyxPQUFPLElBQUksV0FBVyxFQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLHNCQUFzQjtBQUN0QixPQUFPO0FBQ0wsdUtBQXVLO0FBQ3ZLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsZ0NBQWdDO0FBQ2hDLE9BQU87QUFDTCxpTEFBaUw7QUFDakwsT0FBTyxJQUFJLHFCQUFxQixFQUNqQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLDhCQUE4QjtBQUM5QixPQUFPO0FBQ0wsK0tBQStLO0FBQy9LLE9BQU8sSUFBSSxtQkFBbUIsRUFDL0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4Qyx5QkFBeUI7QUFDekIsT0FBTztBQUNMLDBLQUEwSztBQUMxSyxPQUFPLElBQUksY0FBYyxFQUMxQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLDBCQUEwQjtBQUMxQixPQUFPO0FBQ0wsMktBQTJLO0FBQzNLLE9BQU8sSUFBSSxXQUFXLEVBQ3ZCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixrQkFBa0I7QUFDbEIsT0FBTztBQUNMLG1LQUFtSztBQUNuSyxPQUFPLElBQUksT0FBTyxFQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLHFCQUFxQjtBQUNyQixPQUFPO0FBQ0wsc0tBQXNLO0FBQ3RLLE9BQU8sSUFBSSxhQUFhLEVBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsMkJBQTJCO0FBQzNCLE9BQU87QUFDTCw0S0FBNEs7QUFDNUssT0FBTyxJQUFJLFNBQVMsRUFDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxvQkFBb0I7QUFDcEIsT0FBTztBQUNMLHFLQUFxSztBQUNySyxPQUFPLElBQUksS0FBSyxFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLG1CQUFtQjtBQUNuQixPQUFPO0FBQ0wsb0tBQW9LO0FBQ3BLLE9BQU8sSUFBSSxRQUFRLEVBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLGFBQWEsRUFDekIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxvQkFBb0I7QUFDcEIsT0FBTztBQUNMLHFLQUFxSztBQUNySyxPQUFPLElBQUksR0FBRyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFFN0IscUJBQXFCO0FBQ3JCLE9BQU87QUFDTCxzS0FBc0s7QUFDdEssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qix5QkFBeUI7QUFDekIsT0FBTztBQUNMLDBLQUEwSztBQUMxSyxPQUFPLElBQUksVUFBVSxFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxRQUFRLEVBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFFakMseUJBQXlCO0FBQ3pCLE9BQU87QUFDTCwwS0FBMEs7QUFDMUssT0FBTyxJQUFJLFVBQVUsRUFDdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyx3QkFBd0I7QUFDeEIsT0FBTztBQUNMLHlLQUF5SztBQUN6SyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLHFCQUFxQjtBQUNyQixPQUFPO0FBQ0wsc0tBQXNLO0FBQ3RLLE9BQU8sSUFBSSxNQUFNLEVBQ2xCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0Isb0JBQW9CO0FBQ3BCLE9BQU87QUFDTCxxS0FBcUs7QUFDckssT0FBTyxJQUFJLEtBQUssRUFDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixxQkFBcUI7QUFDckIsT0FBTztBQUNMLHNLQUFzSztBQUN0SyxPQUFPLElBQUksTUFBTSxFQUNsQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLDBCQUEwQjtBQUMxQixPQUFPO0FBQ0wsMktBQTJLO0FBQzNLLE9BQU8sSUFBSSxnQkFBZ0IsRUFDNUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxtQkFBbUI7QUFDbkIsT0FBTztBQUNMLG9LQUFvSztBQUNwSyxPQUFPLElBQUksU0FBUyxFQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLHVCQUF1QjtBQUN2QixPQUFPO0FBQ0wsd0tBQXdLO0FBQ3hLLE9BQU8sSUFBSSxLQUFLLEVBQ2pCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDTCx5S0FBeUs7QUFDekssT0FBTyxJQUFJLE9BQU8sRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gQWxhcm1DbG9ja0NoZWNrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFsYXJtQ2xvY2tDaGVja30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFsYXJtQ2hlY2tcbn0gZnJvbSAnLi4vaWNvbnMvYWxhcm0tY2xvY2stY2hlY2snO1xuXG4vLyBBbGFybUNsb2NrTWludXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQWxhcm1DbG9ja01pbnVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxhcm1NaW51c1xufSBmcm9tICcuLi9pY29ucy9hbGFybS1jbG9jay1taW51cyc7XG5cbi8vIEFsYXJtQ2xvY2tQbHVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFsYXJtQ2xvY2tQbHVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxhcm1QbHVzXG59IGZyb20gJy4uL2ljb25zL2FsYXJtLWNsb2NrLXBsdXMnO1xuXG4vLyBBcnJvd0Rvd25BWiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd0Rvd25BWn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkF6XG59IGZyb20gJy4uL2ljb25zL2Fycm93LWRvd24tYS16JztcblxuLy8gQXJyb3dEb3duV2lkZU5hcnJvdyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd0Rvd25XaWRlTmFycm93fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU29ydERlc2Ncbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctZG93bi13aWRlLW5hcnJvdyc7XG5cbi8vIEFycm93RG93blpBIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFycm93RG93blpBfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duWmFcbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctZG93bi16LWEnO1xuXG4vLyBBcnJvd1VwQVogYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQXJyb3dVcEFafSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcEF6XG59IGZyb20gJy4uL2ljb25zL2Fycm93LXVwLWEteic7XG5cbi8vIEFycm93VXBOYXJyb3dXaWRlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEFycm93VXBOYXJyb3dXaWRlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU29ydEFzY1xufSBmcm9tICcuLi9pY29ucy9hcnJvdy11cC1uYXJyb3ctd2lkZSc7XG5cbi8vIEFycm93VXBaQSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBBcnJvd1VwWkF9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwWmFcbn0gZnJvbSAnLi4vaWNvbnMvYXJyb3ctdXAtei1hJztcblxuLy8gQXhpczNkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEF4aXMzZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEF4aXMzRFxufSBmcm9tICcuLi9pY29ucy9heGlzLTNkJztcblxuLy8gQmFkZ2VDaGVjayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCYWRnZUNoZWNrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVmVyaWZpZWRcbn0gZnJvbSAnLi4vaWNvbnMvYmFkZ2UtY2hlY2snO1xuXG4vLyBCYWRnZVF1ZXN0aW9uTWFyayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCYWRnZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhZGdlSGVscFxufSBmcm9tICcuLi9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrJztcblxuLy8gQmV0d2Vlbkhvcml6b250YWxFbmQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgYmVjYXVzZSBvZiB0eXBvLCB1c2Uge0BsaW5rIEJldHdlZW5Ib3Jpem9udGFsRW5kfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmV0d2Vlbkhvcml6b25hbEVuZFxufSBmcm9tICcuLi9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kJztcblxuLy8gQmV0d2Vlbkhvcml6b250YWxTdGFydCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCBiZWNhdXNlIG9mIHR5cG8sIHVzZSB7QGxpbmsgQmV0d2Vlbkhvcml6b250YWxTdGFydH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJldHdlZW5Ib3Jpem9uYWxTdGFydFxufSBmcm9tICcuLi9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtc3RhcnQnO1xuXG4vLyBCb29rRGFzaGVkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEJvb2tEYXNoZWR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAuMCAqL1xuICBkZWZhdWx0IGFzIEJvb2tUZW1wbGF0ZVxufSBmcm9tICcuLi9pY29ucy9ib29rLWRhc2hlZCc7XG5cbi8vIEJyYWNlcyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBCcmFjZXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDdXJseUJyYWNlc1xufSBmcm9tICcuLi9pY29ucy9icmFjZXMnO1xuXG4vLyBDYXB0aW9ucyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDYXB0aW9uc30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFN1YnRpdGxlc1xufSBmcm9tICcuLi9pY29ucy9jYXB0aW9ucyc7XG5cbi8vIENoYXJ0QXJlYSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydEFyZWF9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcmVhQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtYXJlYSc7XG5cbi8vIENoYXJ0QmFyQmlnIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0QmFyQmlnfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmFyQ2hhcnRIb3Jpem9udGFsQmlnXG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWJhci1iaWcnO1xuXG4vLyBDaGFydEJhciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydEJhcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhckNoYXJ0SG9yaXpvbnRhbFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1iYXInO1xuXG4vLyBDaGFydENhbmRsZXN0aWNrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q2FuZGxlc3RpY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDYW5kbGVzdGlja0NoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWNhbmRsZXN0aWNrJztcblxuLy8gQ2hhcnRDb2x1bW5CaWcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2hhcnRDb2x1bW5CaWd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydEJpZ1xufSBmcm9tICcuLi9pY29ucy9jaGFydC1jb2x1bW4tYmlnJztcblxuLy8gQ2hhcnRDb2x1bW5JbmNyZWFzaW5nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q29sdW1uSW5jcmVhc2luZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEJhckNoYXJ0NFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1jb2x1bW4taW5jcmVhc2luZyc7XG5cbi8vIENoYXJ0Q29sdW1uIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Q29sdW1ufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQmFyQ2hhcnQzXG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LWNvbHVtbic7XG5cbi8vIENoYXJ0TGluZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydExpbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBMaW5lQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtbGluZSc7XG5cbi8vIENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydFxufSBmcm9tICcuLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nJztcblxuLy8gQ2hhcnROb0F4ZXNDb2x1bW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2hhcnROb0F4ZXNDb2x1bW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBCYXJDaGFydDJcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4nO1xuXG4vLyBDaGFydE5vQXhlc0dhbnR0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENoYXJ0Tm9BeGVzR2FudHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHYW50dENoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQnO1xuXG4vLyBDaGFydFBpZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydFBpZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBpZUNoYXJ0XG59IGZyb20gJy4uL2ljb25zL2NoYXJ0LXBpZSc7XG5cbi8vIENoYXJ0U2NhdHRlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaGFydFNjYXR0ZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTY2F0dGVyQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvY2hhcnQtc2NhdHRlcic7XG5cbi8vIENpcmNsZUFsZXJ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFsZXJ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWxlcnRDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFsZXJ0JztcblxuLy8gQ2lyY2xlQXJyb3dEb3duIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93RG93bn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93bkNpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtYXJyb3ctZG93bic7XG5cbi8vIENpcmNsZUFycm93TGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVBcnJvd0xlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0xlZnRDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LWxlZnQnO1xuXG4vLyBDaXJjbGVBcnJvd091dERvd25MZWZ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93T3V0RG93bkxlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tbGVmdCc7XG5cbi8vIENpcmNsZUFycm93T3V0RG93blJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93T3V0RG93blJpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1yaWdodCc7XG5cbi8vIENpcmNsZUFycm93T3V0VXBMZWZ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93T3V0VXBMZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcExlZnRGcm9tQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdCc7XG5cbi8vIENpcmNsZUFycm93T3V0VXBSaWdodCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVBcnJvd091dFVwUmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtcmlnaHQnO1xuXG4vLyBDaXJjbGVBcnJvd1JpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUFycm93UmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1JpZ2h0Q2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodCc7XG5cbi8vIENpcmNsZUFycm93VXAgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQXJyb3dVcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWFycm93LXVwJztcblxuLy8gQ2lyY2xlQ2hlY2tCaWcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQ2hlY2tCaWd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGVja0NpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hlY2stYmlnJztcblxuLy8gQ2lyY2xlQ2hlY2sgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQ2hlY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGVja0NpcmNsZTJcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWNoZWNrJztcblxuLy8gQ2lyY2xlQ2hldnJvbkRvd24gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQ2hldnJvbkRvd259IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uRG93bkNpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hldnJvbi1kb3duJztcblxuLy8gQ2lyY2xlQ2hldnJvbkxlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlQ2hldnJvbkxlZnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uTGVmdENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hldnJvbi1sZWZ0JztcblxuLy8gQ2lyY2xlQ2hldnJvblJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZUNoZXZyb25SaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25SaWdodENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtY2hldnJvbi1yaWdodCc7XG5cbi8vIENpcmNsZUNoZXZyb25VcCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVDaGV2cm9uVXB9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDaGV2cm9uVXBDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLWNoZXZyb24tdXAnO1xuXG4vLyBDaXJjbGVEaXZpZGUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlRGl2aWRlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRGl2aWRlQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1kaXZpZGUnO1xuXG4vLyBDaXJjbGVHYXVnZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVHYXVnZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdhdWdlQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1nYXVnZSc7XG5cbi8vIENpcmNsZU1pbnVzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZU1pbnVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTWludXNDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLW1pbnVzJztcblxuLy8gQ2lyY2xlUGFya2luZ09mZiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVQYXJraW5nT2ZmfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFya2luZ0NpcmNsZU9mZlxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYnO1xuXG4vLyBDaXJjbGVQYXJraW5nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVBhcmtpbmd9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYXJraW5nQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wYXJraW5nJztcblxuLy8gQ2lyY2xlUGF1c2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlUGF1c2V9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYXVzZUNpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtcGF1c2UnO1xuXG4vLyBDaXJjbGVQZXJjZW50IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVBlcmNlbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQZXJjZW50Q2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wZXJjZW50JztcblxuLy8gQ2lyY2xlUGxheSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVQbGF5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGxheUNpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtcGxheSc7XG5cbi8vIENpcmNsZVBsdXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlUGx1c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBsdXNDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXBsdXMnO1xuXG4vLyBDaXJjbGVQb3dlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVQb3dlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBvd2VyQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1wb3dlcic7XG5cbi8vIENpcmNsZVF1ZXN0aW9uTWFyayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVRdWVzdGlvbk1hcmt9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBIZWxwQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrJztcblxuLy8gQ2lyY2xlUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENpcmNsZUhlbHBcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLW1hcmsnO1xuXG4vLyBDaXJjbGVTbGFzaDIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlU2xhc2gyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2lyY2xlU2xhc2hlZFxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUtc2xhc2gtMic7XG5cbi8vIENpcmNsZVN0b3AgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlU3RvcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFN0b3BDaXJjbGVcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXN0b3AnO1xuXG4vLyBDaXJjbGVVc2VyUm91bmQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2lyY2xlVXNlclJvdW5kfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXNlckNpcmNsZTJcbn0gZnJvbSAnLi4vaWNvbnMvY2lyY2xlLXVzZXItcm91bmQnO1xuXG4vLyBDaXJjbGVVc2VyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENpcmNsZVVzZXJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyQ2lyY2xlXG59IGZyb20gJy4uL2ljb25zL2NpcmNsZS11c2VyJztcblxuLy8gQ2lyY2xlWCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDaXJjbGVYfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgWENpcmNsZVxufSBmcm9tICcuLi9pY29ucy9jaXJjbGUteCc7XG5cbi8vIENsaXBib2FyZFBlbkxpbmUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2xpcGJvYXJkUGVuTGluZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENsaXBib2FyZFNpZ25hdHVyZVxufSBmcm9tICcuLi9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUnO1xuXG4vLyBDbGlwYm9hcmRQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ2xpcGJvYXJkUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2xpcGJvYXJkRWRpdFxufSBmcm9tICcuLi9pY29ucy9jbGlwYm9hcmQtcGVuJztcblxuLy8gQ2xvdWREb3dubG9hZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDbG91ZERvd25sb2FkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRG93bmxvYWRDbG91ZFxufSBmcm9tICcuLi9pY29ucy9jbG91ZC1kb3dubG9hZCc7XG5cbi8vIENsb3VkVXBsb2FkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENsb3VkVXBsb2FkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXBsb2FkQ2xvdWRcbn0gZnJvbSAnLi4vaWNvbnMvY2xvdWQtdXBsb2FkJztcblxuLy8gQ29kZVhtbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDb2RlWG1sfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ29kZTJcbn0gZnJvbSAnLi4vaWNvbnMvY29kZS14bWwnO1xuXG4vLyBDb2x1bW5zMiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDb2x1bW5zMn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENvbHVtbnNcbn0gZnJvbSAnLi4vaWNvbnMvY29sdW1ucy0yJztcblxuLy8gQ29sdW1uczNDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgQ29sdW1uczNDb2d9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDb2x1bW5zU2V0dGluZ3Ncbn0gZnJvbSAnLi4vaWNvbnMvY29sdW1ucy0zLWNvZyc7XG5cbi8vIENvbHVtbnMzQ29nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENvbHVtbnMzQ29nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVGFibGVDb25maWdcbn0gZnJvbSAnLi4vaWNvbnMvY29sdW1ucy0zLWNvZyc7XG5cbi8vIENvbHVtbnMzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIENvbHVtbnMzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFuZWxzTGVmdFJpZ2h0XG59IGZyb20gJy4uL2ljb25zL2NvbHVtbnMtMyc7XG5cbi8vIENvbnRhY3RSb3VuZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBDb250YWN0Um91bmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBDb250YWN0MlxufSBmcm9tICcuLi9pY29ucy9jb250YWN0LXJvdW5kJztcblxuLy8gRGlhbW9uZFBlcmNlbnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRGlhbW9uZFBlcmNlbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQZXJjZW50RGlhbW9uZFxufSBmcm9tICcuLi9pY29ucy9kaWFtb25kLXBlcmNlbnQnO1xuXG4vLyBFYXJ0aCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBFYXJ0aH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdsb2JlMlxufSBmcm9tICcuLi9pY29ucy9lYXJ0aCc7XG5cbi8vIEVsbGlwc2lzVmVydGljYWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRWxsaXBzaXNWZXJ0aWNhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIE1vcmVWZXJ0aWNhbFxufSBmcm9tICcuLi9pY29ucy9lbGxpcHNpcy12ZXJ0aWNhbCc7XG5cbi8vIEVsbGlwc2lzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEVsbGlwc2lzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTW9yZUhvcml6b250YWxcbn0gZnJvbSAnLi4vaWNvbnMvZWxsaXBzaXMnO1xuXG4vLyBGaWxlQXhpczNkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVBeGlzM2R9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlQXhpczNEXG59IGZyb20gJy4uL2ljb25zL2ZpbGUtYXhpcy0zZCc7XG5cbi8vIEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmcgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVCYXJDaGFydFxufSBmcm9tICcuLi9pY29ucy9maWxlLWNoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nJztcblxuLy8gRmlsZUNoYXJ0Q29sdW1uIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVDaGFydENvbHVtbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVCYXJDaGFydDJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4nO1xuXG4vLyBGaWxlQ2hhcnRMaW5lIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVDaGFydExpbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlTGluZUNoYXJ0XG59IGZyb20gJy4uL2ljb25zL2ZpbGUtY2hhcnQtbGluZSc7XG5cbi8vIEZpbGVDaGFydFBpZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlQ2hhcnRQaWV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlUGllQ2hhcnRcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1jaGFydC1waWUnO1xuXG4vLyBGaWxlQ29nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVDb2d9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlQ29nMlxufSBmcm9tICcuLi9pY29ucy9maWxlLWNvZyc7XG5cbi8vIEZpbGVQZW5MaW5lIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVQZW5MaW5lfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZVNpZ25hdHVyZVxufSBmcm9tICcuLi9pY29ucy9maWxlLXBlbi1saW5lJztcblxuLy8gRmlsZVBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsZUVkaXRcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1wZW4nO1xuXG4vLyBGaWxlUGxheSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBGaWxlUGxheX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVWaWRlb1xufSBmcm9tICcuLi9pY29ucy9maWxlLXBsYXknO1xuXG4vLyBGaWxlUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVRdWVzdGlvbk1hcmt9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGaWxlUXVlc3Rpb25cbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS1xdWVzdGlvbi1tYXJrJztcblxuLy8gRmlsZVZpZGVvQ2FtZXJhIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZpbGVWaWRlb0NhbWVyYX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbGVWaWRlbzJcbn0gZnJvbSAnLi4vaWNvbnMvZmlsZS12aWRlby1jYW1lcmEnO1xuXG4vLyBGb2xkZXJDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRm9sZGVyQ29nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRm9sZGVyQ29nMlxufSBmcm9tICcuLi9pY29ucy9mb2xkZXItY29nJztcblxuLy8gRm9sZGVyUGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEZvbGRlclBlbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZvbGRlckVkaXRcbn0gZnJvbSAnLi4vaWNvbnMvZm9sZGVyLXBlbic7XG5cbi8vIEZ1bm5lbFggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRnVubmVsWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEZpbHRlclhcbn0gZnJvbSAnLi4vaWNvbnMvZnVubmVsLXgnO1xuXG4vLyBGdW5uZWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgRnVubmVsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRmlsdGVyXG59IGZyb20gJy4uL2ljb25zL2Z1bm5lbCc7XG5cbi8vIEdpdENvbW1pdEhvcml6b250YWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR2l0Q29tbWl0SG9yaXpvbnRhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdpdENvbW1pdFxufSBmcm9tICcuLi9pY29ucy9naXQtY29tbWl0LWhvcml6b250YWwnO1xuXG4vLyBHcmlkMngyQ2hlY2sgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR3JpZDJ4MkNoZWNrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR3JpZDJYMkNoZWNrXG59IGZyb20gJy4uL2ljb25zL2dyaWQtMngyLWNoZWNrJztcblxuLy8gR3JpZDJ4MlBsdXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR3JpZDJ4MlBsdXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmlkMlgyUGx1c1xufSBmcm9tICcuLi9pY29ucy9ncmlkLTJ4Mi1wbHVzJztcblxuLy8gR3JpZDJ4MlggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR3JpZDJ4Mlh9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmlkMlgyWFxufSBmcm9tICcuLi9pY29ucy9ncmlkLTJ4Mi14JztcblxuLy8gR3JpZDJ4MiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBHcmlkMngyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgR3JpZDJYMlxufSBmcm9tICcuLi9pY29ucy9ncmlkLTJ4Mic7XG5cbi8vIEdyaWQzeDMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgR3JpZDN4M30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdyaWRcbn0gZnJvbSAnLi4vaWNvbnMvZ3JpZC0zeDMnO1xuXG4vLyBHcmlkM3gzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEdyaWQzeDN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmlkM1gzXG59IGZyb20gJy4uL2ljb25zL2dyaWQtM3gzJztcblxuLy8gSGFuZEdyYWIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgSGFuZEdyYWJ9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBHcmFiXG59IGZyb20gJy4uL2ljb25zL2hhbmQtZ3JhYic7XG5cbi8vIEhhbmRIZWxwaW5nIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEhhbmRIZWxwaW5nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgSGVscGluZ0hhbmRcbn0gZnJvbSAnLi4vaWNvbnMvaGFuZC1oZWxwaW5nJztcblxuLy8gSG91c2UgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgSG91c2V9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBIb21lXG59IGZyb20gJy4uL2ljb25zL2hvdXNlJztcblxuLy8gSWNlQ3JlYW1Cb3dsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEljZUNyZWFtQm93bH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEljZUNyZWFtMlxufSBmcm9tICcuLi9pY29ucy9pY2UtY3JlYW0tYm93bCc7XG5cbi8vIEljZUNyZWFtQ29uZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBJY2VDcmVhbUNvbmV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBJY2VDcmVhbVxufSBmcm9tICcuLi9pY29ucy9pY2UtY3JlYW0tY29uZSc7XG5cbi8vIEluZGVudERlY3JlYXNlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIEluZGVudERlY3JlYXNlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgT3V0ZGVudFxufSBmcm9tICcuLi9pY29ucy9pbmRlbnQtZGVjcmVhc2UnO1xuXG4vLyBJbmRlbnRJbmNyZWFzZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBJbmRlbnRJbmNyZWFzZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEluZGVudFxufSBmcm9tICcuLi9pY29ucy9pbmRlbnQtaW5jcmVhc2UnO1xuXG4vLyBMYXB0b3BNaW5pbWFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExhcHRvcE1pbmltYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBMYXB0b3AyXG59IGZyb20gJy4uL2ljb25zL2xhcHRvcC1taW5pbWFsJztcblxuLy8gTGF5ZXJzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgaWNvbiB3YXMgY29tYmluZWQgd2l0aCBhbm90aGVyIGljb24gdGhhdCBzaGFyZXMgdGhlIHNhbWUgdXNlIGNhc2UsIHVzZSB7QGxpbmsgTGF5ZXJzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTGF5ZXJzM1xufSBmcm9tICcuLi9pY29ucy9sYXllcnMnO1xuXG4vLyBMb2FkZXJDaXJjbGUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTG9hZGVyQ2lyY2xlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTG9hZGVyMlxufSBmcm9tICcuLi9pY29ucy9sb2FkZXItY2lyY2xlJztcblxuLy8gTG9ja0tleWhvbGVPcGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIExvY2tLZXlob2xlT3Blbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVubG9ja0tleWhvbGVcbn0gZnJvbSAnLi4vaWNvbnMvbG9jay1rZXlob2xlLW9wZW4nO1xuXG4vLyBMb2NrT3BlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBMb2NrT3Blbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVubG9ja1xufSBmcm9tICcuLi9pY29ucy9sb2NrLW9wZW4nO1xuXG4vLyBNYWlsUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIE1haWxRdWVzdGlvbk1hcmt9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNYWlsUXVlc3Rpb25cbn0gZnJvbSAnLi4vaWNvbnMvbWFpbC1xdWVzdGlvbi1tYXJrJztcblxuLy8gTWFwUGluUGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIE1hcFBpblBlbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIExvY2F0aW9uRWRpdFxufSBmcm9tICcuLi9pY29ucy9tYXAtcGluLXBlbic7XG5cbi8vIE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcmsgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGVRdWVzdGlvblxufSBmcm9tICcuLi9pY29ucy9tZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrJztcblxuLy8gTWljVm9jYWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgTWljVm9jYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNaWMyXG59IGZyb20gJy4uL2ljb25zL21pYy12b2NhbCc7XG5cbi8vIE1vdmUzZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBNb3ZlM2R9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNb3ZlM0Rcbn0gZnJvbSAnLi4vaWNvbnMvbW92ZS0zZCc7XG5cbi8vIE9jdGFnb25BbGVydCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBPY3RhZ29uQWxlcnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGVydE9jdGFnb25cbn0gZnJvbSAnLi4vaWNvbnMvb2N0YWdvbi1hbGVydCc7XG5cbi8vIE9jdGFnb25QYXVzZSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBPY3RhZ29uUGF1c2V9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYXVzZU9jdGFnb25cbn0gZnJvbSAnLi4vaWNvbnMvb2N0YWdvbi1wYXVzZSc7XG5cbi8vIE9jdGFnb25YIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIE9jdGFnb25YfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgWE9jdGFnb25cbn0gZnJvbSAnLi4vaWNvbnMvb2N0YWdvbi14JztcblxuLy8gUGFpbnRicnVzaFZlcnRpY2FsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhaW50YnJ1c2hWZXJ0aWNhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhaW50YnJ1c2gyXG59IGZyb20gJy4uL2ljb25zL3BhaW50YnJ1c2gtdmVydGljYWwnO1xuXG4vLyBQYW5lbEJvdHRvbURhc2hlZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbEJvdHRvbURhc2hlZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhbmVsQm90dG9tSW5hY3RpdmVcbn0gZnJvbSAnLi4vaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZCc7XG5cbi8vIFBhbmVsTGVmdENsb3NlIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhbmVsTGVmdENsb3NlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2lkZWJhckNsb3NlXG59IGZyb20gJy4uL2ljb25zL3BhbmVsLWxlZnQtY2xvc2UnO1xuXG4vLyBQYW5lbExlZnREYXNoZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGFuZWxMZWZ0RGFzaGVkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFuZWxMZWZ0SW5hY3RpdmVcbn0gZnJvbSAnLi4vaWNvbnMvcGFuZWwtbGVmdC1kYXNoZWQnO1xuXG4vLyBQYW5lbExlZnRPcGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhbmVsTGVmdE9wZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTaWRlYmFyT3BlblxufSBmcm9tICcuLi9pY29ucy9wYW5lbC1sZWZ0LW9wZW4nO1xuXG4vLyBQYW5lbExlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGFuZWxMZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2lkZWJhclxufSBmcm9tICcuLi9pY29ucy9wYW5lbC1sZWZ0JztcblxuLy8gUGFuZWxSaWdodERhc2hlZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbFJpZ2h0RGFzaGVkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFuZWxSaWdodEluYWN0aXZlXG59IGZyb20gJy4uL2ljb25zL3BhbmVsLXJpZ2h0LWRhc2hlZCc7XG5cbi8vIFBhbmVsVG9wRGFzaGVkIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBhbmVsVG9wRGFzaGVkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFuZWxUb3BJbmFjdGl2ZVxufSBmcm9tICcuLi9pY29ucy9wYW5lbC10b3AtZGFzaGVkJztcblxuLy8gUGFuZWxzVG9wTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBQYW5lbHNUb3BMZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTGF5b3V0XG59IGZyb20gJy4uL2ljb25zL3BhbmVscy10b3AtbGVmdCc7XG5cbi8vIFBlbkxpbmUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGVuTGluZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEVkaXQzXG59IGZyb20gJy4uL2ljb25zL3Blbi1saW5lJztcblxuLy8gUGVuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFBlbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEVkaXQyXG59IGZyb20gJy4uL2ljb25zL3Blbic7XG5cbi8vIFBsdWdaYXAgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUGx1Z1phcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBsdWdaYXAyXG59IGZyb20gJy4uL2ljb25zL3BsdWctemFwJztcblxuLy8gUmVjdGFuZ2xlRWxsaXBzaXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUmVjdGFuZ2xlRWxsaXBzaXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGb3JtSW5wdXRcbn0gZnJvbSAnLi4vaWNvbnMvcmVjdGFuZ2xlLWVsbGlwc2lzJztcblxuLy8gUm90YXRlM2QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUm90YXRlM2R9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBSb3RhdGUzRFxufSBmcm9tICcuLi9pY29ucy9yb3RhdGUtM2QnO1xuXG4vLyBSb3dzMiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBSb3dzMn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFJvd3Ncbn0gZnJvbSAnLi4vaWNvbnMvcm93cy0yJztcblxuLy8gUm93czMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgUm93czN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYW5lbHNUb3BCb3R0b21cbn0gZnJvbSAnLi4vaWNvbnMvcm93cy0zJztcblxuLy8gU2NhbGUzZCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTY2FsZTNkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2NhbGUzRFxufSBmcm9tICcuLi9pY29ucy9zY2FsZS0zZCc7XG5cbi8vIFNlbmRIb3Jpem9udGFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIGJlY2F1c2Ugb2YgdHlwbywgdXNlIHtAbGluayBTZW5kSG9yaXpvbnRhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNlbmRIb3Jpem9uYWxcbn0gZnJvbSAnLi4vaWNvbnMvc2VuZC1ob3Jpem9udGFsJztcblxuLy8gU2hpZWxkUXVlc3Rpb25NYXJrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNoaWVsZFF1ZXN0aW9uTWFya30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNoaWVsZFF1ZXN0aW9uXG59IGZyb20gJy4uL2ljb25zL3NoaWVsZC1xdWVzdGlvbi1tYXJrJztcblxuLy8gU2hpZWxkWCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTaGllbGRYfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2hpZWxkQ2xvc2Vcbn0gZnJvbSAnLi4vaWNvbnMvc2hpZWxkLXgnO1xuXG4vLyBTbGlkZXJzVmVydGljYWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU2xpZGVyc1ZlcnRpY2FsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2xpZGVyc1xufSBmcm9tICcuLi9pY29ucy9zbGlkZXJzLXZlcnRpY2FsJztcblxuLy8gU3BhcmtsZXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3BhcmtsZXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTdGFyc1xufSBmcm9tICcuLi9pY29ucy9zcGFya2xlcyc7XG5cbi8vIFNxdWFyZUFjdGl2aXR5IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFjdGl2aXR5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQWN0aXZpdHlTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFjdGl2aXR5JztcblxuLy8gU3F1YXJlQXJyb3dEb3duTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd0Rvd25MZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duTGVmdFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1sZWZ0JztcblxuLy8gU3F1YXJlQXJyb3dEb3duUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dEb3duUmlnaHR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0Rvd25SaWdodFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1yaWdodCc7XG5cbi8vIFNxdWFyZUFycm93RG93biBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd0Rvd259IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd0Rvd25TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LWRvd24nO1xuXG4vLyBTcXVhcmVBcnJvd0xlZnQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dMZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dMZWZ0U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hcnJvdy1sZWZ0JztcblxuLy8gU3F1YXJlQXJyb3dPdXREb3duTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd091dERvd25MZWZ0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dEb3duTGVmdEZyb21TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLWxlZnQnO1xuXG4vLyBTcXVhcmVBcnJvd091dERvd25SaWdodCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd091dERvd25SaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93RG93blJpZ2h0RnJvbVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tcmlnaHQnO1xuXG4vLyBTcXVhcmVBcnJvd091dFVwTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd091dFVwTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBMZWZ0RnJvbVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLWxlZnQnO1xuXG4vLyBTcXVhcmVBcnJvd091dFVwUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0JztcblxuLy8gU3F1YXJlQXJyb3dSaWdodCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd1JpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXJyb3dSaWdodFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHQnO1xuXG4vLyBTcXVhcmVBcnJvd1VwTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVBcnJvd1VwTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBMZWZ0U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hcnJvdy11cC1sZWZ0JztcblxuLy8gU3F1YXJlQXJyb3dVcFJpZ2h0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFycm93VXBSaWdodH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEFycm93VXBSaWdodFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQnO1xuXG4vLyBTcXVhcmVBcnJvd1VwIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFycm93VXB9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBcnJvd1VwU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1hcnJvdy11cCc7XG5cbi8vIFNxdWFyZUFzdGVyaXNrIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUFzdGVyaXNrfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQXN0ZXJpc2tTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWFzdGVyaXNrJztcblxuLy8gU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTY2lzc29yc1NxdWFyZURhc2hlZEJvdHRvbVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycyc7XG5cbi8vIFNxdWFyZUNoYXJ0R2FudHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hhcnRHYW50dH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEdhbnR0Q2hhcnRTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0JztcblxuLy8gU3F1YXJlQ2hhcnRHYW50dCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGFydEdhbnR0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU3F1YXJlR2FudHRDaGFydFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hhcnQtZ2FudHQnO1xuXG4vLyBTcXVhcmVDaGVja0JpZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGVja0JpZ30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZWNrU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jaGVjay1iaWcnO1xuXG4vLyBTcXVhcmVDaGVjayBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGVja30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZWNrU3F1YXJlMlxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hlY2snO1xuXG4vLyBTcXVhcmVDaGV2cm9uRG93biBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGV2cm9uRG93bn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25Eb3duU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24nO1xuXG4vLyBTcXVhcmVDaGV2cm9uTGVmdCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVDaGV2cm9uTGVmdH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25MZWZ0U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jaGV2cm9uLWxlZnQnO1xuXG4vLyBTcXVhcmVDaGV2cm9uUmlnaHQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ2hldnJvblJpZ2h0fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQ2hldnJvblJpZ2h0U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1jaGV2cm9uLXJpZ2h0JztcblxuLy8gU3F1YXJlQ2hldnJvblVwIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUNoZXZyb25VcH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENoZXZyb25VcFNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtY2hldnJvbi11cCc7XG5cbi8vIFNxdWFyZUNvZGUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlQ29kZX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIENvZGVTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWNvZGUnO1xuXG4vLyBTcXVhcmVEYXNoZWRLYW5iYW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlRGFzaGVkS2FuYmFufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgS2FuYmFuU3F1YXJlRGFzaGVkXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1kYXNoZWQta2FuYmFuJztcblxuLy8gU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXInO1xuXG4vLyBTcXVhcmVEYXNoZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlRGFzaGVkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgQm94U2VsZWN0XG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1kYXNoZWQnO1xuXG4vLyBTcXVhcmVEaXZpZGUgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlRGl2aWRlfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRGl2aWRlU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1kaXZpZGUnO1xuXG4vLyBTcXVhcmVEb3QgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlRG90fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRG90U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1kb3QnO1xuXG4vLyBTcXVhcmVFcXVhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVFcXVhbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEVxdWFsU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1lcXVhbCc7XG5cbi8vIFNxdWFyZUZ1bmN0aW9uIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUZ1bmN0aW9ufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRnVuY3Rpb25TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLWZ1bmN0aW9uJztcblxuLy8gU3F1YXJlS2FuYmFuIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZUthbmJhbn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIEthbmJhblNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUta2FuYmFuJztcblxuLy8gU3F1YXJlTGlicmFyeSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVMaWJyYXJ5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgTGlicmFyeVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtbGlicmFyeSc7XG5cbi8vIFNxdWFyZU0gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlTX0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIE1TcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLW0nO1xuXG4vLyBTcXVhcmVNZW51IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZU1lbnV9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNZW51U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1tZW51JztcblxuLy8gU3F1YXJlTWludXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlTWludXN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBNaW51c1NxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtbWludXMnO1xuXG4vLyBTcXVhcmVNb3VzZVBvaW50ZXIgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlTW91c2VQb2ludGVyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgSW5zcGVjdFxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtbW91c2UtcG9pbnRlcic7XG5cbi8vIFNxdWFyZVBhcmtpbmdPZmYgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGFya2luZ09mZn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBhcmtpbmdTcXVhcmVPZmZcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBhcmtpbmctb2ZmJztcblxuLy8gU3F1YXJlUGFya2luZyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQYXJraW5nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGFya2luZ1NxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGFya2luZyc7XG5cbi8vIFNxdWFyZVBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQZW5Cb3hcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBlbic7XG5cbi8vIFNxdWFyZVBlbiBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQZW59IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBFZGl0XG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wZW4nO1xuXG4vLyBTcXVhcmVQZW4gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGVufSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGVuU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wZW4nO1xuXG4vLyBTcXVhcmVQZXJjZW50IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBlcmNlbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQZXJjZW50U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wZXJjZW50JztcblxuLy8gU3F1YXJlUGkgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGl9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQaVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGknO1xuXG4vLyBTcXVhcmVQaWxjcm93IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVBpbGNyb3d9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQaWxjcm93U3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1waWxjcm93JztcblxuLy8gU3F1YXJlUGxheSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQbGF5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgUGxheVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtcGxheSc7XG5cbi8vIFNxdWFyZVBsdXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlUGx1c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBsdXNTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXBsdXMnO1xuXG4vLyBTcXVhcmVQb3dlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVQb3dlcn0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFBvd2VyU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1wb3dlcic7XG5cbi8vIFNxdWFyZVNjaXNzb3JzIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVNjaXNzb3JzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2Npc3NvcnNTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXNjaXNzb3JzJztcblxuLy8gU3F1YXJlU2lnbWEgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlU2lnbWF9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTaWdtYVNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtc2lnbWEnO1xuXG4vLyBTcXVhcmVTbGFzaCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVTbGFzaH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFNsYXNoU3F1YXJlXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1zbGFzaCc7XG5cbi8vIFNxdWFyZVNwbGl0SG9yaXpvbnRhbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVTcGxpdEhvcml6b250YWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTcGxpdFNxdWFyZUhvcml6b250YWxcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWwnO1xuXG4vLyBTcXVhcmVTcGxpdFZlcnRpY2FsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVNwbGl0VmVydGljYWx9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBTcGxpdFNxdWFyZVZlcnRpY2FsXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbCc7XG5cbi8vIFNxdWFyZVRlcm1pbmFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVRlcm1pbmFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVGVybWluYWxTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXRlcm1pbmFsJztcblxuLy8gU3F1YXJlVXNlclJvdW5kIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFNxdWFyZVVzZXJSb3VuZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJTcXVhcmUyXG59IGZyb20gJy4uL2ljb25zL3NxdWFyZS11c2VyLXJvdW5kJztcblxuLy8gU3F1YXJlVXNlciBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBTcXVhcmVVc2VyfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXNlclNxdWFyZVxufSBmcm9tICcuLi9pY29ucy9zcXVhcmUtdXNlcic7XG5cbi8vIFNxdWFyZVggYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgU3F1YXJlWH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFhTcXVhcmVcbn0gZnJvbSAnLi4vaWNvbnMvc3F1YXJlLXgnO1xuXG4vLyBUZXh0U2VsZWN0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFRleHRTZWxlY3R9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBUZXh0U2VsZWN0aW9uXG59IGZyb20gJy4uL2ljb25zL3RleHQtc2VsZWN0JztcblxuLy8gVGVzdFR1YmVEaWFnb25hbCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUZXN0VHViZURpYWdvbmFsfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVGVzdFR1YmUyXG59IGZyb20gJy4uL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbCc7XG5cbi8vIFRyYW1Gcm9udCBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBUcmFtRnJvbnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBUcmFpblxufSBmcm9tICcuLi9pY29ucy90cmFtLWZyb250JztcblxuLy8gVHJlZVBhbG0gYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVHJlZVBhbG19IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBQYWxtdHJlZVxufSBmcm9tICcuLi9pY29ucy90cmVlLXBhbG0nO1xuXG4vLyBUcmlhbmdsZUFsZXJ0IGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFRyaWFuZ2xlQWxlcnR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBBbGVydFRyaWFuZ2xlXG59IGZyb20gJy4uL2ljb25zL3RyaWFuZ2xlLWFsZXJ0JztcblxuLy8gVHZNaW5pbWFsIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFR2TWluaW1hbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFR2MlxufSBmcm9tICcuLi9pY29ucy90di1taW5pbWFsJztcblxuLy8gVW5pdmVyc2l0eSBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBVbml2ZXJzaXR5fSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgU2Nob29sMlxufSBmcm9tICcuLi9pY29ucy91bml2ZXJzaXR5JztcblxuLy8gVXNlclJvdW5kQ2hlY2sgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kQ2hlY2t9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyQ2hlY2syXG59IGZyb20gJy4uL2ljb25zL3VzZXItcm91bmQtY2hlY2snO1xuXG4vLyBVc2VyUm91bmRDb2cgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kQ29nfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgVXNlckNvZzJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZC1jb2cnO1xuXG4vLyBVc2VyUm91bmRNaW51cyBhbGlhc2VzXG5leHBvcnQge1xuICAvKiogQGRlcHJlY2F0ZWQgVGhlIG5hbWUgb2YgdGhpcyBpY29uIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgZGlkbid0IG1lZXQgb3VyIGd1aWRlbGluZXMgYW55bW9yZSwgdXNlIHtAbGluayBVc2VyUm91bmRNaW51c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJNaW51czJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZC1taW51cyc7XG5cbi8vIFVzZXJSb3VuZFBsdXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXNlclJvdW5kUGx1c30gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXJQbHVzMlxufSBmcm9tICcuLi9pY29ucy91c2VyLXJvdW5kLXBsdXMnO1xuXG4vLyBVc2VyUm91bmRYIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFVzZXJSb3VuZFh9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyWDJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlci1yb3VuZC14JztcblxuLy8gVXNlclJvdW5kIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFVzZXJSb3VuZH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFVzZXIyXG59IGZyb20gJy4uL2ljb25zL3VzZXItcm91bmQnO1xuXG4vLyBVc2Vyc1JvdW5kIGFsaWFzZXNcbmV4cG9ydCB7XG4gIC8qKiBAZGVwcmVjYXRlZCBUaGUgbmFtZSBvZiB0aGlzIGljb24gd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBkaWRuJ3QgbWVldCBvdXIgZ3VpZGVsaW5lcyBhbnltb3JlLCB1c2Uge0BsaW5rIFVzZXJzUm91bmR9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBVc2VyczJcbn0gZnJvbSAnLi4vaWNvbnMvdXNlcnMtcm91bmQnO1xuXG4vLyBVdGVuc2lsc0Nyb3NzZWQgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXRlbnNpbHNDcm9zc2VkfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgRm9ya0tuaWZlQ3Jvc3NlZFxufSBmcm9tICcuLi9pY29ucy91dGVuc2lscy1jcm9zc2VkJztcblxuLy8gVXRlbnNpbHMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgVXRlbnNpbHN9IGluc3RlYWQuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYxLjAgKi9cbiAgZGVmYXVsdCBhcyBGb3JrS25pZmVcbn0gZnJvbSAnLi4vaWNvbnMvdXRlbnNpbHMnO1xuXG4vLyBXYW5kU3BhcmtsZXMgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgV2FuZFNwYXJrbGVzfSBpbnN0ZWFkLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wICovXG4gIGRlZmF1bHQgYXMgV2FuZDJcbn0gZnJvbSAnLi4vaWNvbnMvd2FuZC1zcGFya2xlcyc7XG5cbi8vIFdhbGxldE1pbmltYWwgYWxpYXNlc1xuZXhwb3J0IHtcbiAgLyoqIEBkZXByZWNhdGVkIFRoZSBuYW1lIG9mIHRoaXMgaWNvbiB3YXMgY2hhbmdlZCBiZWNhdXNlIGl0IGRpZG4ndCBtZWV0IG91ciBndWlkZWxpbmVzIGFueW1vcmUsIHVzZSB7QGxpbmsgV2FsbGV0TWluaW1hbH0gaW5zdGVhZC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMCAqL1xuICBkZWZhdWx0IGFzIFdhbGxldDJcbn0gZnJvbSAnLi4vaWNvbnMvd2FsbGV0LW1pbmltYWwnO1xuXG4iXX0=