Giriş
Bu kurs, Derin Ögrenme (Deep Learning - DL) ve Büyük Dil Modelleri
(Large Language Models - LLM) konularında kapsamlı bir anlayış
geliştirmeyi amaçlamaktadır. Teorik temeller, modern uygulamalar ve
pratik projelerle desteklenen bu program, katılımcılara güncel yapay
zeka teknolojilerinde uzmanlık kazandırmayı hedeflemektedir.
Ögrenim Hedefleri
- Derin ögrenme ve büyük dil modellerinin temel kavramlarını
anlamak
- Modern sinir agı mimarilerini ve optimizasyon tekniklerini
kullanarak modeller geliştirmek
- Uygulamalı projelerle teorik bilgileri pratige dökmek
- Yapay zeka teknolojilerinde güncel trendleri takip edebilmek
1. Nöral Aglara Giriş
1.1. Derin öğrenmeye giriş
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
1.2. Temel Kavramlar
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Nöral network anatomisi: Katmanlar ve ag mimarisi
- Backpropagation ve gradient descent
- Aktivasyon Fonksiyonları
- Multiple input ve output, Softmax ve Argmax
1.3. Aktivasyon Fonksiyonları
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Aktivasyon fonskiyonları: nedir? ne işe yarar
- Dogru aktivasyon fonksiyon seçimi
- Aktivasyon fonksiyonu: linear ve nonlinear familyaları (Tanh, ReLU,
vs)
1.4. Kayıp (loss) Fonksiyonları
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Loss function nedir? neden önemlidir?
- Regression loss function (MSE, MAE, Huber loss vs)
- Classification loss function (log loss, cross entropy loss, hinge
loss vs)
- Dogru loss function seçimi
1.5. Optimizasyon Algoritmaları
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Optimizasyon nedir? ne işe yarar?
- Optimizasyon algoritmaları nelerdir? (GD, SGD, momentum, Nesterov,
RMSProp, Adam, ve AdaGrad)
- Optimizasyon algoritmalarının seçimi
1.6. Regularizasyon Teknikleri
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Nöral networklerde regülarizasyon neden yapılır?
- L1 ve L2 Regularizasyonu
- Data augmentation
- Dropout
- Batch Normalization
- Layer Normalization
- Early Stopping ve Model Checkpointing
- Stochastic Depth
2. Konvolüsyonel Sinir Agları (CNN)
2.1. CNN temelleri ve Mimarisi
Egitmenler: Faysal Saylık, Murat Cap
- İnsan Görme Sistemi ve CNN Analojisi
- Geleneksel Görüntü İşleme vs. CNN
- Giriş Katmanı ve Veri Hazırlama
- Konvolüsyon Katmanları
- Aktivasyon Katmanları
- Pooling Katmanları
- Tam Baglantılı Katmanlar
- Skip Connections ve Residual Ögrenme
2.2. Konvolüsyon Katmanları
Egitmenler: Faysal Saylık, Murat Cap
- Filtreler ve Çekirdekler
- Stride ve Padding Stratejileri
- Feature Map Oluşturma
- Derinlik (Depth), Grup (Group) ve Nokta (Pointwise)
Konvolüsyonları
- Dilated/Atrous Konvolüsyonlar
- Transposed Konvolüsyonlar
2.3. Pooling Katmanları
Egitmenler: Faysal Saylık, Murat Cap
- Pooling (Max Pooling, Average Pooling, Global Pooling, Adaptive
Pooling, Learnable Pooling)
- Batch Normalization
- Layer Normalization
- Instance Normalization
2.4. Modern CNN Mimarileri
Egitmenler: Faysal Saylık, Murat Cap
- Klasik Mimariler (AlexNet, VGG)
- ResNet Ailesi (ResNet, ResNeXt)
- Efficient mimariler (MobileNet, EfficientNet, RegNet)
- Modern Yaklaşımlar (DenseNet, ConvNeXt, Vision Transformers,
CNN-Transformer Hibritleri)
2.5. CNN Optimizasyonu ve Egitimi
Egitmenler: Faysal Saylık, Murat Cap
- Kayıp Fonksiyonları
- Optimizasyon Algoritmaları
- Düzenlileştirme (Regularization) Teknikleri
- Veri Artırma (Data Augmentation)
- Transfer Ögrenme
- Model Sıkıştırma ve Kantizsyon
2.6. CNN Uygulamaları ve İleri Konular
Egitmenler: Faysal Saylık, Murat Cap
- Temel Uygulamalar: Görüntü Sınıflandırma, Nesne Tespiti (YOLO,
RetinaNet), Görüntü Segmentasyonu (U-Net, Mask R-CNN)
- İleri Uygulamalar: Style Transfer, Super Resolution, Anomali
Tespiti, Few-Shot Learning
- Yorumlanabilirlik ve Görselleştirme: Feature Visualization,
Attribution Methods, Class Activation Mapping (CAM)
3. Tekrarlayan Sinir Agları (RNN)
3.1. RNN Temelleri
Egitmenler: Ibrahim Halil Tanboga, Aslan
Erdogan
- RNN Mimarisi ve Çalışma Prensibi
- Hafıza Mekanizması ve İç Durum
- Zaman Serisi ve Sekans Verisi
- Backpropagation Through Time (BPTT)
- Sequence-to-Sequence Modelleme
- Encoder-Decoder Mimarisi
3.2. Gradyan Problemleri
Egitmenler: Ibrahim Halil Tanboga, Aslan
Erdogan
- Vanishing ve Exploding Gradients
- Gradient Clipping Teknikleri
- Layer Normalization
- Skip Connections
- Truncated BPTT
- Residual Connections
3.3. Modern RNN Türleri
Egitmenler: Ibrahim Halil Tanboga, Aslan
Erdogan
- LSTM (forget gate, input gate, output gate, cell gate) ve extended
LSTM
- GRU ve Optimizasyonları
- Bidirectional RNN ve DeepRNN
- Attention-augmented RNNs (Self-Attention, Multi-Head Attention,
Scaled Dot-Product Attention)
3.4. RNN optimizasyonu
Egitmenler: Ibrahim Halil Tanboga, Aslan
Erdogan
- Kayıp Fonksiyonları
- Optimizasyon Algoritmaları
- Regularizasyon Teknikleri
- Dropout Stratejileri
- Teacher Forcing
- Curriculum Learning
3.5. RNN Uygulamaları
Egitmenler: Ibrahim Halil Tanboga, Aslan
Erdogan
- Dogal Dil İşleme: Metin Sınıflandırma, Duygu Analizi, Makine
Çevirisi, Metin Özetleme
- Zaman Serisi: Tahmin ve Öngörü, Anomali Tespiti, Finansal
Tahminler
- Ses ve Müzik: Konuşma Tanıma, Müzik Üretimi, Ses Sentezi
5. Büyük Dil Modelleri (LLM)
5.1. LLM Foundations ve Gelişim
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Model Ölçekleme: Parametre Boyutları, Compute Requirements, Training
Infrastructure
- Tarihsel Gelişim: GPT Ailesi, PaLM, BLOOM, LLaMA, Claude,
Gemini
- Açık Kaynak Modeller: LLaMA, BLOOM, Falcon, Mistral, Phi-2
- Model Boyutları: 7B, 13B, 34B, 70B Comparison
- Context Length: Flash Attention, RoPE, ALiBi, Improvements
- Tokenizasyon: Context Window, Token Ekonomisi, Positional
Encoding
5.2. LLM Training Pipeline
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Pre-training
- Veri Hazırlama: Filtreleme, Deduplikasyon, Temizleme
- Training Stratejileri: Masked LM, Causal LM
- Loss Functions: Cross Entropy, Contrastive Loss
- Compute Efficient Training: ZeRO, DeepSpeed, Megatron
- Fine-tuning
- Instruction Tuning: Natural Instructions, Task Templates
- RLHF Pipeline: Reward Modeling, PPO Training
- DPO (Direct Preference Optimization)
- Constitutional AI: Rule-based Alignment, Value Learning
- Knowledge Distillation: Teacher-Student Training
5.3. Prompt Engineering ve Optimizasyon
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Prompt Patterns
- Zero-shot ve Few-shot Learning
- Chain-of-Thought (CoT)
- Tree of Thoughts
- ReAct Framework
- Advanced Techniques
- System Prompting
- Meta-prompting
- Prompt Chaining
- Temperature Tuning
- Prompt Templates
- Task-specific Templates
- Role-based Prompting
- Consistency Techniques
5.4. Retrieval Augmented Generation (RAG)
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Temel Bileşenler
- Vector Databases
- Embedding Models
- Chunking Strategies
- Retrieval Methods
- Gelişmiş RAG
- Hybrid Search
- Re-ranking
- Multi-step RAG
- Recursive Retrieval
- RAG Optimizasyonu
- Context Window Management
- Query Formulation
- Response Synthesis
5.5. LLM Degerlendirme
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- MMLU Benchmark
- BBH (Big Bench Hard)
- TruthfulQA
- Perplexity ve BLEU
- BERTScore
- Task-Specific Metrics
- Human Evaluation
5.6. LLM Uygulamaları
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Chatbot Development
- Text Generation
- Code Generation
- Document Q&A
- Text Summarization
- Domain Adaptation
- Tool Usage
- Multi-Modal Integration
5.7. LLM Agent’lar
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Agent Mimarisi: ReAct Framework, Plan-and-Execute, Chain of Thought,
Tree of Thoughts
- Tool Kullanımı: Function Calling, Tool Learning, API
Integration,
- Hafıza ve Planlama: Episodic Memory, Working Memory, Task
Planning
- Multi-Agent Sistemler: Agent Communication, Role-based Agents,
Collaborative Problem Solving
- Agent Güvenligi: Sandbox Environments, Action Validation, Resource
Limits, Safety Protocols
- Özel Agent Türleri: Task-Specific Agents, Autonomous Agents,
Embodied Agents, Assistant Agents
5.8. LLM Agent Frameworks
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- LangChain
- AutoGPT
- BabyAGI
- CrewAI
- Microsoft Semantic Kernel
- Agent Frameworks Extensions
5.10. Deployment ve Production
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Infrastructure
- Serving Architectures
- Load Balancing
- Caching Strategies
- Monitoring
- Token Usage
- Response Quality
- Error Rates
- Security
- Prompt Injection Prevention
- Rate Limiting
- Content Filtering
5.11. Emerging Trends
Egitmenler: Ibrahim Halil Tanboga, Taylan
Akgün
- Multimodal Integration
- Vision-Language Models
- Audio Processing
- Multi-modal Chat
- Tool Use
- Function Calling
- Code Interpretation
- External API Integration
- Model Customization
- Domain Adaptation
- Personality Tuning
- Behavior Alignment
6. Vision-Language Modeller (VLM)
6.1. Multimodal Learning
Egitmenler: Faysal Saylık, Selim Topcu
- Temeller: Cross-modal Representations, Joint Embeddings, Attention
Mekanizmaları
- Fusion Stratejileri: Early Fusion, Late Fusion, Hybrid Fusion
- Egitim Teknikleri: Contrastive Learning, Knowledge Distillation,
Curriculum Learning
6.2. Modern VLM Mimarileri
Egitmenler: Faysal Saylık, Selim Topcu
- CLIP Ailesi: CLIP/OpenCLIP, Florence, DeCLIP
- Gelişmiş Modeller: Flamingo, PaLM-E, GPT-4V, Claude Vision, CoCa,
BLIP/BLIP-2
- Mimari Bileşenler: Vision Encoder, Text Encoder, Cross-Attention,
Fusion Layers
6.3. VLM Uygulamaları
Egitmenler: Faysal Saylık, Selim Topcu
- Temel Görevler: Image-Text Retrieval, Visual Question Answering,
Image Captioning
- İleri Uygulamalar: Visual Reasoning, Scene Understanding, Visual
Grounding, Zero-shot Tanıma, Few-shot Ögrenme
6.4. Multimodal Chain-of-Thought
Egitmenler: Faysal Saylık, Selim Topcu
- Visual Reasoning: Step-by-step Analysis, Visual Problem Solving,
Inference Chain Building
- Reasoning Türleri: Spatial Reasoning, Temporal Reasoning, Causal
Reasoning
- Multimodal CoT Stratejileri: Visual Prompting, Cross-modal
Verification, Error Analysis
6.5. VLM Optimizasyon ve Degerlendirme
Egitmenler: Faysal Saylık, Selim Topcu
- Model Optimizasyonu: Memory Efficiency, Inference Speed, Model
Compression
- Degerlendirme Metrikleri: BLEU/ROUGE, METEOR, CIDEr, SPICE
- Benchmark Datasetleri: COCO, Flickr30k, Visual Genome, VQAv2
7. Generative Modeller
7.1. Variational Autoencoders (VAE)
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- VAE Mimarisi: Encoder-Decoder Yapısı, Latent Space,
Reparametrization Trick, KL Divergence
- VAE Türleri: Beta-VAE, Conditional VAE, Hierarchical VAE
- VQ-VAE: Vector Quantization, Codebook Learning, VQ-VAE-2
- NVAE: Hierarchical Structure, Deep Normalization
7.2. GAN (Generative Adversarial Networks)
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- GAN Temelleri: Generator, Discriminator, Training Dynamics, Mode
Collapse
- Modern GAN’lar: StyleGAN3, BigGAN, Progressive GAN, Self-Attention
GAN
- Conditional GANs: Pix2Pix, CycleGAN, SPADE, StarGAN
- Training ve Stabilite: Gradient Penalties, R1 Regularization, Path
Length Regularization
7.3. Diffusion Modeller
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- Temel Diffusion: DDPM, DDIM, Score-based Models, Noise
Scheduling
- Modern Diffusion: Stable Diffusion, DALL-E 3, Imagen,
Midjourney
- Uygulamalar: Text-to-Image, Image-to-Image,
Inpainting/Outpainting
- Optimizasyon: Sampling Strategies, CFG, Guidance Scale
7.4. Flow-based Modeller
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- Temel Kavramlar: Invertible Functions, Change of Variables, Maximum
Likelihood
- Mimari Türleri: Normalizing Flows, Real NVP, Glow, Flow++
- Uygulamalar: Density Estimation, Image Generation, Voice
Synthesis
- Training: Coupling Layers, Affine Transformations, Flow
Composition
7.5. Autoregressive Modeller
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- Görüntü Modelleri: PixelCNN++, Image GPT, Taming Transformers
- Ses Modelleri: WaveNet, SampleRNN, WaveRNN
- Hybrid Yaklaşımlar: VQ-VAE + Transformer, DALL-E, Parti
- Optimizasyon: Context Stacks, Skip Connections, Attention
Mechanisms
7.6. Text-to-Image Modeller
Egitmenler: Ibrahim Halil Tanboga, Murat
Cap
- Model Mimarileri: DALL-E 3, Stable Diffusion, Imagen,
Midjourney
- Kontrol Mekanizmaları: ControlNet, T2I-Adapter, IP-Adapter
- Fine-tuning: Textual Inversion, DreamBooth, LoRA, Hypernetworks
- Prompt Engineering: Negative Prompts, Weight Tuning, Style
Control
8. Model Optimizasyonu ve Deployment
8.1. Model Compression
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Quantization (INT8, INT4)
- Pruning Strategies
- Knowledge Distillation
- Model Architecture Search
- Hardware-aware Optimization
8.2. Distributed Training
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Data Parallelism
- Model Parallelism
- Pipeline Parallelism
- ZeRO Optimization
- Communication Strategies
8.3. Production Deployment
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Model Serving (TorchServe, TensorRT)
- API Development
- Containerization
- Load Balancing
- Monitoring ve Logging
8.4. MLOps
Egitmenler: Faysal Saylık, Aslan
Erdogan
- CI/CD for ML
- Experiment Tracking
- Model Versioning
- Feature Stores
- A/B Testing
9. Responsible AI, Augmented intelligence ve Causal
AI
9.1. Responsible AI
Egitmenler: Taylan Akgün
Responsible AI sistemleri, etik prensipler ve güvenlik önlemleri
çerçevesinde geliştirilir, şeffaflık ve hesap verebilirlik temel
alınarak toplumsal etkiler gözetilir. Veri mahremiyeti, bias yönetimi ve
model güvenligi gibi konular sürekli izlenerek, sürdürülebilir ve adil
AI sistemleri oluşturulması hedeflenir.
9.2. Augmented intelligence
Egitmenler: Süleyman Çagan Efe
Augmented Intelligence, insan yeteneklerini AI sistemleriyle
güçlendirmeyi amaçlar. İnsan-AI işbirligi modellerinde, bilgi
entegrasyonu ve karar destek sistemleri kullanılarak iş süreçleri
optimize edilir. Kullanıcı deneyimi ve erişilebilirlik ön planda
tutularak, sektörel ihtiyaçlara özel çözümler geliştirilir.
9.3. Causal ML/AI
Egitmenler: Ibrahim Halil Tanboga
Causal ML/AI, korelasyon yerine nedensellik iliSkilerini anlamaya
odaklanır. Pearl’ün do-calculus ve yapısal nedensel modeller gibi teorik
temeller üzerine kurulu olan bu alan, treatment effect estimation,
counterfactual analysis ve causal discovery gibi tekniklerle gerçek
dünya problemlerine çözümler sunar. Özellikle healthcare, business ve
policy alanlarında etkili uygulamalar saglar.
11. Explainable AI (XAI)
11.1. XAI Temelleri
Egitmenler: Faysal Saylık, Taylan Akgün
- Temel Kavramlar: Şeffaflık, Yorumlanabilirlik, Açıklanabilirlik,
Güvenilirlik
- Model Analiz Tipleri: Global Interpretability, Local
Interpretability, Post-hoc Analysis
- XAI Metrikleri: Fidelity, Comprehensibility, Completeness,
Consistency
11.2. Global Interpretability Yöntemleri
Egitmenler: Faysal Saylık, Taylan Akgün
- Feature Importance: Permutation Importance, SHAP Values, Feature
Ablation
- Model Distillation: Rule Extraction, Decision Trees, Linear
Approximations
- Model Agnostic: Partial Dependence Plots, Accumulated Local
Effects
11.3. Local Interpretability Yöntemleri
Egitmenler: Faysal Saylık, Taylan Akgün
- LIME: Local Interpretable Model-agnostic Explanations,
SuperPixels
- SHAP: SHapley Additive exPlanations, KernelSHAP, DeepSHAP
- Counterfactuals: DiCE, Counterfactual Explanations, What-If
Analysis
11.4. Deep Learning Spesifik XAI
Egitmenler: Faysal Saylık, Taylan Akgün
- Görüntü Modelleri: Grad-CAM, Integrated Gradients, Occlusion
Sensitivity
- NLP Modelleri: Attention Visualization, Token Attribution, Input
Saliency
- Multimodal: Cross-Modal Attribution, Vision-Language
Explanations
11.5. XAI Uygulamaları
Egitmenler: Faysal Saylık, Taylan Akgün
- Sektör Uygulamaları: Healthcare, Finance, Autonomous Systems
- Regülasyon Uyumlulugu: GDPR, AI Act, Model Documentation
- Bias ve Fairness: Bias Detection, Model Debugging, Fairness
Metrics
12. Multimodal Learning
12.1. Multimodal Foundations
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Representations: Cross-modal Learning, Joint Embeddings, Modal
Alignment
- Fusion Strategies: Early Fusion, Late Fusion, Hybrid Fusion,
Adaptive Fusion
- Learning Techniques: Contrastive Learning, Knowledge Distillation,
Cross-modal Pretraining
- Architectural Components: Modal Encoders, Fusion Modules,
Cross-attention
12.2. Cross-modal Understanding
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Text-Vision Integration: CLIP, ALIGN, Florence
- Audio-Visual Learning: AV-HuBERT, AudioCLIP
- Text-Audio Systems: Whisper, Wav2Vec
- Multi-sensor Fusion: Point Clouds, Depth, Thermal
12.3. Multimodal Applications
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Chatbots: GPT-4V, Claude Vision, LLaVA
- Question Answering: Visual QA, Audio QA, Multi-hop QA
- Content Generation: Text-to-Image, Text-to-Video, Text-to-Audio
- Reasoning: Visual Reasoning, Scene Understanding, Cross-modal
Inference
12.4. Advanced Topics
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Few-shot Learning: Cross-modal Adaptation, Modal Transfer
- Zero-shot Learning: Cross-modal Generalization
- Continual Learning: Modal Incremental Learning
- Robustness: Modal Missing, Noise Handling
12.5. Evaluation & Metrics
Egitmenler: Ibrahim Halil Tanboga, Selim
Topcu
- Task-Specific Metrics: VQA Score, ROUGE, BLEU, CIDEr
- Cross-modal Metrics: Retrieval Metrics, Alignment Scores
- Human Evaluation: User Studies, A/B Testing
- Diagnostic Tools: Attribution Analysis, Error Analysis
13. Tabular Veri ile Derin Ögrenme
13.1. Tabular DL Temelleri
Egitmenler: Faysal Saylık, Murat Cap
- Veri İşleme: Preprocessing, Feature Engineering, Encoding,
Normalization
- Neural Network Yapıları: MLP, Embedding Layers, Categorical
Handling
- Preprocessing: Missing Values, Outliers, Feature Scaling,
Encoding
- Architecture Design: Layer Size, Activation Functions,
Regularization
13.2. Modern Tabular Modeller
Egitmenler: Faysal Saylık, Murat Cap
- TabNet: Feature Selection, Sequential Processing, Instance-wise
Feature Selection
- Transformer-based: TabTransformer, FT-Transformer, SAINT
- Hybrid Modeller: NODE, AdapterBoost, AutoGluon
- Entity Embeddings: Categorical Encoding, Feature Interactions
13.3. Advanced Techniques
Egitmenler: Faysal Saylık, Murat Cap
- Feature Interactions: AutoInt, DCN, CrossNet
- Attention Mechanisms: Self-Attention, Cross-Feature Attention
- Regularization: Dropout, L1/L2, Feature Dropout
- Ensemble Methods: Stacking, Bagging, Model Fusion
13.4. Model Optimization
Egitmenler: Faysal Saylık, Murat Cap
- Hyperparameter Tuning: Grid Search, Bayesian Optimization
- Learning Rate Scheduling: Warm-up, Cyclic LR, One-Cycle
- Model Compression: Pruning, Quantization, Knowledge
Distillation
- Performance Metrics: RMSE, MAE, ROC-AUC, PR-AUC
13.5. Interpretability & Deployment
Egitmenler: Faysal Saylık, Murat Cap
- Model Interpretation: SHAP, LIME, Feature Importance
- Calibration: Platt Scaling, Isotonic Regression
- Deployment: Model Serving, Online Learning
- Monitoring: Drift Detection, Performance Tracking
14. Deep Learning donanım gereksinimleri
14.1. GPU Mimarisi ve Seçimi
Egitmenler: Faysal Saylık, Aslan
Erdogan
- GPU Bileşenleri: CUDA Cores, Tensor Cores, Memory Bandwidth
- GPU Seçim Kriterleri: VRAM, Compute Capability, Power
Efficiency
- Multi-GPU Sistemler: NVLink, Multi-GPU Training
- GPU Alternatifleri: TPU, FPGA, Neural Processors
14.2. Hardware Optimizasyonu
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Memory Management: Gradient Checkpointing, Mixed Precision
Training
- Parallelization: Data Parallel, Model Parallel, Pipeline
Parallel
- Distributed Training: Parameter Server, Ring AllReduce
- Resource Monitoring: GPU Utilization, Memory Usage, Power
Consumption
14.3. Cloud Infrastructure
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Cloud Providers: AWS, GCP, Azure ML
- Instance Types: GPU Instances, High Memory, Spot Instances
- Orchestration: Kubernetes, Docker, Cloud Management
- Cost Optimization: Instance Selection, Spot Strategies
14.4. Deployment Hardware
Egitmenler: Faysal Saylık, Aslan
Erdogan
- Edge Devices: Mobile, IoT, Embedded Systems
- Model Optimization: Quantization, Pruning, Distillation
- Inference Acceleration: TensorRT, ONNX Runtime
- Deployment Strategies: CPU vs GPU vs Edge TPU
15. Computer Vision
15.1. Temel Görüntü İşleme
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
Görüntü Ön İşleme: Filtreleme, Normalizasyon, Augmentation Feature
Extraction: SIFT, SURF, ORB, HOG Segmentation: Threshold, Edge
Detection, Watershed Morphological Operations: Erosion, Dilation,
Opening, Closing
15.2. Derin Ögrenme Mimarileri
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
CNN Mimarileri: ResNet, EfficientNet, Vision Transformer Object
Detection: YOLO, Faster R-CNN, DETR Segmentation Networks: U-Net, Mask
R-CNN, DeepLab Multi-task Learning: MTL Architectures, Feature
Sharing
15.3. 3D Vision
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
3D Reconstruction: SfM, SLAM, NeRF Point Cloud Processing:
PointNet++, DGCNN Depth Estimation: Monocular, Stereo Vision 3D Object
Detection: VoxelNet, PointPillars
15.4. Video Understanding
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
Action Recognition: I3D, SlowFast Networks Tracking: SORT, DeepSORT,
ByteTrack Temporal Modeling: LSTM, 3D CNN, Transformer Video Generation:
Video Diffusion, Motion Transfer
15.5. Advanced Topics
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
Few-shot Learning: Prototypical Networks, MAML Self-supervised
Learning: MoCo, DINO, MAE Multi-modal Learning: CLIP, Florence, CoCa
Neural Rendering: NeRF, GauGAN, StyleGAN3
15.6. Uygulamalar ve Deployment
Egitmenler: Faysal Saylık, Süleyman Çagan
Efe
Model Optimization: Pruning, Quantization, KD Edge Deployment:
TensorRT, CoreML, TFLite Pipeline Design: Data Flow, Caching, Batching
Monitoring: Performance Metrics, Failure Cases
LS0tCnRpdGxlOiAiRGVyaW4gw5ZncmVubWUgdmUgQsO8ecO8ayBEaWwgTW9kZWxsZXJpIEt1cnN1IgphdXRob3I6ICJEaWppdGFsIEthcmRpeW9sb2ppIERlcm5lZ2kiCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZGVwdGg6IDQKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgdGhlbWU6IHVuaXRlZAogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgY29kZV9mb2xkaW5nOiBzaG93Ci0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gVFJVRSwKICB3YXJuaW5nID0gRkFMU0UsCiAgbWVzc2FnZSA9IEZBTFNFCikKYGBgCgojIEt1cnMgRWdpdG1lbmxlcmkKCnwgICAgKipFZ2l0bWVubGVyKiogICAgIHwgICAgICAgICAgICAgICoqVXptYW5sxLFrIEFsYW5sYXLEsSoqICAgICAgICAgICAgICB8Cnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fAp8IElicmFoaW0gSGFsaWwgVGFuYm9nYSB8ICAgICAgICAgICAgICAgQml5b2lzdGF0aXN0aWssIERMICAgICAgICAgICAgICAgIHwKfCAgICAgRmF5c2FsIFNheWzEsWsgICAgIHwgICAgICAgICAgICAgICBCaXlvaXN0YXRpc3RpaywgREwgICAgICAgICAgICAgICAgfAp8ICAgICAgU2VsaW0gVG9wY3UgICAgICB8ICAgICBCaXlvaXN0YXRpc3RpaywgR2VuZWwga2FyZGl5b2xvamkgdmUgQUkgICAgIHwKfCAgICAgVGF5bGFuIEFrZ8O8biAgICAgIHwgICAgICAgICAgICAgRWxla3Ryb2ZpenlvbG9qaSB2ZSBBSSAgICAgICAgICAgICAgfAp8ICAgICAgIE11cmF0IMOHYXAgICAgICAgfCAgICBHaXJpxZ9pbXNlbCBLYXJkaXlvbG9qaSwgR8O2csO8bnTDvGxlbWUgdmUgQUkgICAgfAp8ICBTw7xsZXltYW4gw4dhZ2FuIEVmZSAgIHwgR2lyacWfaW1zZWwgS2FyZGl5b2xvamksIEthbHAgeWV0ZXJzaXpsaWdpIHZlIEFJIHwKfCAgICAgQXNsYW4gRXJkb2dhbiAgICAgfCAgICAgIEdpcmnFn2ltc2VsIEthcmRpeW9sb2ppLCBZYXDEsXNhbCB2ZSBBSSAgICAgIHwKCiMgR2lyacWfCgpCdSBrdXJzLCBEZXJpbiDDlmdyZW5tZSAoRGVlcCBMZWFybmluZyAtIERMKSB2ZSBCw7x5w7xrIERpbCBNb2RlbGxlcmkgKExhcmdlIExhbmd1YWdlIE1vZGVscyAtIExMTSkga29udWxhcsSxbmRhIGthcHNhbWzEsSBiaXIgYW5sYXnEscWfIGdlbGnFn3Rpcm1leWkgYW1hw6dsYW1ha3RhZMSxci4gVGVvcmlrIHRlbWVsbGVyLCBtb2Rlcm4gdXlndWxhbWFsYXIgdmUgcHJhdGlrIHByb2plbGVybGUgZGVzdGVrbGVuZW4gYnUgcHJvZ3JhbSwga2F0xLFsxLFtY8SxbGFyYSBnw7xuY2VsIHlhcGF5IHpla2EgdGVrbm9sb2ppbGVyaW5kZSB1em1hbmzEsWsga2F6YW5kxLFybWF5xLEgaGVkZWZsZW1la3RlZGlyLgoKIyMgw5ZncmVuaW0gSGVkZWZsZXJpCgotICAgRGVyaW4gw7ZncmVubWUgdmUgYsO8ecO8ayBkaWwgbW9kZWxsZXJpbmluIHRlbWVsIGthdnJhbWxhcsSxbsSxIGFubGFtYWsKLSAgIE1vZGVybiBzaW5pciBhZ8SxIG1pbWFyaWxlcmluaSB2ZSBvcHRpbWl6YXN5b24gdGVrbmlrbGVyaW5pIGt1bGxhbmFyYWsgbW9kZWxsZXIgZ2VsacWfdGlybWVrCi0gICBVeWd1bGFtYWzEsSBwcm9qZWxlcmxlIHRlb3JpayBiaWxnaWxlcmkgcHJhdGlnZSBkw7ZrbWVrCi0gICBZYXBheSB6ZWthIHRla25vbG9qaWxlcmluZGUgZ8O8bmNlbCB0cmVuZGxlcmkgdGFraXAgZWRlYmlsbWVrCgojIDEuIE7DtnJhbCBBZ2xhcmEgR2lyacWfIHsudGFic2V0fQoKIyMgMS4xLiBEZXJpbiDDtsSfcmVubWV5ZSBnaXJpxZ8KCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCgojIyAxLjIuIFRlbWVsIEthdnJhbWxhciAKCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBOw7ZyYWwgbmV0d29yayBhbmF0b21pc2k6IEthdG1hbmxhciB2ZSBhZyBtaW1hcmlzaQotICAgQmFja3Byb3BhZ2F0aW9uIHZlIGdyYWRpZW50IGRlc2NlbnQKLSAgIEFrdGl2YXN5b24gRm9ua3NpeW9ubGFyxLEKLSAgIE11bHRpcGxlIGlucHV0IHZlIG91dHB1dCwgU29mdG1heCB2ZSBBcmdtYXgKCiMjIDEuMy4gQWt0aXZhc3lvbiBGb25rc2l5b25sYXLEsQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgQWt0aXZhc3lvbiBmb25za2l5b25sYXLEsTogbmVkaXI/IG5lIGnFn2UgeWFyYXIKLSAgIERvZ3J1IGFrdGl2YXN5b24gZm9ua3NpeW9uIHNlw6dpbWkKLSAgIEFrdGl2YXN5b24gZm9ua3NpeW9udTogbGluZWFyIHZlIG5vbmxpbmVhciBmYW1pbHlhbGFyxLEgKFRhbmgsIFJlTFUsIHZzKQoKIyMgMS40LiBLYXnEsXAgKGxvc3MpIEZvbmtzaXlvbmxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBMb3NzIGZ1bmN0aW9uIG5lZGlyPyBuZWRlbiDDtm5lbWxpZGlyPwotICAgUmVncmVzc2lvbiBsb3NzIGZ1bmN0aW9uIChNU0UsIE1BRSwgSHViZXIgbG9zcyB2cykKLSAgIENsYXNzaWZpY2F0aW9uIGxvc3MgZnVuY3Rpb24gKGxvZyBsb3NzLCBjcm9zcyBlbnRyb3B5IGxvc3MsIGhpbmdlIGxvc3MgdnMpCi0gICBEb2dydSBsb3NzIGZ1bmN0aW9uIHNlw6dpbWkKCiMjIDEuNS4gT3B0aW1pemFzeW9uIEFsZ29yaXRtYWxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBPcHRpbWl6YXN5b24gbmVkaXI/IG5lIGnFn2UgeWFyYXI/Ci0gICBPcHRpbWl6YXN5b24gYWxnb3JpdG1hbGFyxLEgbmVsZXJkaXI/IChHRCwgU0dELCBtb21lbnR1bSwgTmVzdGVyb3YsIFJNU1Byb3AsIEFkYW0sIHZlIEFkYUdyYWQpCi0gICBPcHRpbWl6YXN5b24gYWxnb3JpdG1hbGFyxLFuxLFuIHNlw6dpbWkKCiMjIDEuNi4gUmVndWxhcml6YXN5b24gVGVrbmlrbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgTsO2cmFsIG5ldHdvcmtsZXJkZSByZWfDvGxhcml6YXN5b24gbmVkZW4geWFwxLFsxLFyPwotICAgTDEgdmUgTDIgUmVndWxhcml6YXN5b251Ci0gICBEYXRhIGF1Z21lbnRhdGlvbgotICAgRHJvcG91dAotICAgQmF0Y2ggTm9ybWFsaXphdGlvbgotICAgTGF5ZXIgTm9ybWFsaXphdGlvbgotICAgRWFybHkgU3RvcHBpbmcgdmUgTW9kZWwgQ2hlY2twb2ludGluZwotICAgU3RvY2hhc3RpYyBEZXB0aAoKIyAyLiBLb252b2zDvHN5b25lbCBTaW5pciBBZ2xhcsSxIChDTk4pIHsudGFic2V0fQoKIyMgMi4xLiBDTk4gdGVtZWxsZXJpIHZlIE1pbWFyaXNpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICDEsG5zYW4gR8O2cm1lIFNpc3RlbWkgdmUgQ05OIEFuYWxvamlzaQotICAgR2VsZW5la3NlbCBHw7Zyw7xudMO8IMSwxZ9sZW1lIHZzLiBDTk4KLSAgIEdpcmnFnyBLYXRtYW7EsSB2ZSBWZXJpIEhhesSxcmxhbWEKLSAgIEtvbnZvbMO8c3lvbiBLYXRtYW5sYXLEsQotICAgQWt0aXZhc3lvbiBLYXRtYW5sYXLEsQotICAgUG9vbGluZyBLYXRtYW5sYXLEsQotICAgVGFtIEJhZ2xhbnTEsWzEsSBLYXRtYW5sYXIKLSAgIFNraXAgQ29ubmVjdGlvbnMgdmUgUmVzaWR1YWwgw5ZncmVubWUKCiMjIDIuMi4gS29udm9sw7xzeW9uIEthdG1hbmxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBGaWx0cmVsZXIgdmUgw4dla2lyZGVrbGVyCi0gICBTdHJpZGUgdmUgUGFkZGluZyBTdHJhdGVqaWxlcmkKLSAgIEZlYXR1cmUgTWFwIE9sdcWfdHVybWEKLSAgIERlcmlubGlrIChEZXB0aCksIEdydXAgKEdyb3VwKSB2ZSBOb2t0YSAoUG9pbnR3aXNlKSBLb252b2zDvHN5b25sYXLEsQotICAgRGlsYXRlZC9BdHJvdXMgS29udm9sw7xzeW9ubGFyCi0gICBUcmFuc3Bvc2VkIEtvbnZvbMO8c3lvbmxhcgoKIyMgMi4zLiBQb29saW5nIEthdG1hbmxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBQb29saW5nIChNYXggUG9vbGluZywgQXZlcmFnZSBQb29saW5nLCBHbG9iYWwgUG9vbGluZywgQWRhcHRpdmUgUG9vbGluZywgTGVhcm5hYmxlIFBvb2xpbmcpCi0gICBCYXRjaCBOb3JtYWxpemF0aW9uCi0gICBMYXllciBOb3JtYWxpemF0aW9uCi0gICBJbnN0YW5jZSBOb3JtYWxpemF0aW9uCgojIyAyLjQuIE1vZGVybiBDTk4gTWltYXJpbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgS2xhc2lrIE1pbWFyaWxlciAoQWxleE5ldCwgVkdHKQotICAgUmVzTmV0IEFpbGVzaSAoUmVzTmV0LCBSZXNOZVh0KQotICAgRWZmaWNpZW50IG1pbWFyaWxlciAoTW9iaWxlTmV0LCBFZmZpY2llbnROZXQsIFJlZ05ldCkKLSAgIE1vZGVybiBZYWtsYcWfxLFtbGFyIChEZW5zZU5ldCwgQ29udk5lWHQsIFZpc2lvbiBUcmFuc2Zvcm1lcnMsIENOTi1UcmFuc2Zvcm1lciBIaWJyaXRsZXJpKQoKIyMgMi41LiBDTk4gT3B0aW1pemFzeW9udSB2ZSBFZ2l0aW1pCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBLYXnEsXAgRm9ua3NpeW9ubGFyxLEKLSAgIE9wdGltaXphc3lvbiBBbGdvcml0bWFsYXLEsQotICAgRMO8emVubGlsZcWfdGlybWUgKFJlZ3VsYXJpemF0aW9uKSBUZWtuaWtsZXJpCi0gICBWZXJpIEFydMSxcm1hIChEYXRhIEF1Z21lbnRhdGlvbikKLSAgIFRyYW5zZmVyIMOWZ3Jlbm1lCi0gICBNb2RlbCBTxLFrxLHFn3TEsXJtYSB2ZSBLYW50aXpzeW9uCgojIyAyLjYuIENOTiBVeWd1bGFtYWxhcsSxIHZlIMSwbGVyaSBLb251bGFyCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBUZW1lbCBVeWd1bGFtYWxhcjogR8O2csO8bnTDvCBTxLFuxLFmbGFuZMSxcm1hLCBOZXNuZSBUZXNwaXRpIChZT0xPLCBSZXRpbmFOZXQpLCBHw7Zyw7xudMO8IFNlZ21lbnRhc3lvbnUgKFUtTmV0LCBNYXNrIFItQ05OKQotICAgxLBsZXJpIFV5Z3VsYW1hbGFyOiBTdHlsZSBUcmFuc2ZlciwgU3VwZXIgUmVzb2x1dGlvbiwgQW5vbWFsaSBUZXNwaXRpLCBGZXctU2hvdCBMZWFybmluZwotICAgWW9ydW1sYW5hYmlsaXJsaWsgdmUgR8O2cnNlbGxlxZ90aXJtZTogRmVhdHVyZSBWaXN1YWxpemF0aW9uLCBBdHRyaWJ1dGlvbiBNZXRob2RzLCBDbGFzcyBBY3RpdmF0aW9uIE1hcHBpbmcgKENBTSkKCiMgMy4gVGVrcmFybGF5YW4gU2luaXIgQWdsYXLEsSAoUk5OKSB7LnRhYnNldH0KCiMjIDMuMS4gUk5OIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIEFzbGFuIEVyZG9nYW4qKioKCi0gICBSTk4gTWltYXJpc2kgdmUgw4dhbMSxxZ9tYSBQcmVuc2liaQotICAgSGFmxLF6YSBNZWthbml6bWFzxLEgdmUgxLDDpyBEdXJ1bQotICAgWmFtYW4gU2VyaXNpIHZlIFNla2FucyBWZXJpc2kKLSAgIEJhY2twcm9wYWdhdGlvbiBUaHJvdWdoIFRpbWUgKEJQVFQpCi0gICBTZXF1ZW5jZS10by1TZXF1ZW5jZSBNb2RlbGxlbWUKLSAgIEVuY29kZXItRGVjb2RlciBNaW1hcmlzaQoKIyMgMy4yLiBHcmFkeWFuIFByb2JsZW1sZXJpCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgQXNsYW4gRXJkb2dhbioqKgoKLSAgIFZhbmlzaGluZyB2ZSBFeHBsb2RpbmcgR3JhZGllbnRzCi0gICBHcmFkaWVudCBDbGlwcGluZyBUZWtuaWtsZXJpCi0gICBMYXllciBOb3JtYWxpemF0aW9uCi0gICBTa2lwIENvbm5lY3Rpb25zCi0gICBUcnVuY2F0ZWQgQlBUVAotICAgUmVzaWR1YWwgQ29ubmVjdGlvbnMKCiMjIDMuMy4gTW9kZXJuIFJOTiBUw7xybGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIEFzbGFuIEVyZG9nYW4qKioKCi0gICBMU1RNIChmb3JnZXQgZ2F0ZSwgaW5wdXQgZ2F0ZSwgb3V0cHV0IGdhdGUsIGNlbGwgZ2F0ZSkgdmUgZXh0ZW5kZWQgTFNUTQotICAgR1JVIHZlIE9wdGltaXphc3lvbmxhcsSxCi0gICBCaWRpcmVjdGlvbmFsIFJOTiB2ZSBEZWVwUk5OCi0gICBBdHRlbnRpb24tYXVnbWVudGVkIFJOTnMgKFNlbGYtQXR0ZW50aW9uLCBNdWx0aS1IZWFkIEF0dGVudGlvbiwgU2NhbGVkIERvdC1Qcm9kdWN0IEF0dGVudGlvbikKCiMjIDMuNC4gUk5OIG9wdGltaXphc3lvbnUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgS2F5xLFwIEZvbmtzaXlvbmxhcsSxCi0gICBPcHRpbWl6YXN5b24gQWxnb3JpdG1hbGFyxLEKLSAgIFJlZ3VsYXJpemFzeW9uIFRla25pa2xlcmkKLSAgIERyb3BvdXQgU3RyYXRlamlsZXJpCi0gICBUZWFjaGVyIEZvcmNpbmcKLSAgIEN1cnJpY3VsdW0gTGVhcm5pbmcKCiMjIDMuNS4gUk5OIFV5Z3VsYW1hbGFyxLEKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgRG9nYWwgRGlsIMSwxZ9sZW1lOiBNZXRpbiBTxLFuxLFmbGFuZMSxcm1hLCBEdXlndSBBbmFsaXppLCBNYWtpbmUgw4dldmlyaXNpLCBNZXRpbiDDlnpldGxlbWUKLSAgIFphbWFuIFNlcmlzaTogVGFobWluIHZlIMOWbmfDtnLDvCwgQW5vbWFsaSBUZXNwaXRpLCBGaW5hbnNhbCBUYWhtaW5sZXIKLSAgIFNlcyB2ZSBNw7x6aWs6IEtvbnXFn21hIFRhbsSxbWEsIE3DvHppayDDnHJldGltaSwgU2VzIFNlbnRlemkKCiMgNC4gQXR0ZW50aW9uIHZlIFRyYW5zZm9ybWVyIE1pbWFyaXNpIHsudGFic2V0fQoKIyMgNC4xLiBBdHRlbnRpb24gTWVrYW5pem1hc8SxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFNlbGYtQXR0ZW50aW9uCi0gICBNdWx0aS1IZWFkIEF0dGVudGlvbgotICAgQ3Jvc3MtQXR0ZW50aW9uCi0gICBSZWxhdGl2ZSBQb3NpdGlvbiBFbmNvZGluZwotICAgU3BhcnNlIEF0dGVudGlvbgotICAgTGluZWFyIEF0dGVudGlvbgotICAgTG9jYWwgQXR0ZW50aW9uCgojIyA0LjIuIFRyYW5zZm9ybWVyIE1pbWFyaXNpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIEVuY29kZXItRGVjb2RlciBZYXDEsXPEsQotICAgUG9zaXRpb25hbCBFbmNvZGluZwotICAgTGF5ZXIgTm9ybWFsaXphdGlvbgotICAgRmVlZC1Gb3J3YXJkIE5ldHdvcmtzCi0gICBSZXNpZHVhbCBDb25uZWN0aW9ucwotICAgTWFza2VsZW1lIFN0cmF0ZWppbGVyaQotICAgRGVjb2Rlci1Pbmx5IHZzIEVuY29kZXItT25seQoKIyMgNC4zLiBUcmFuc2Zvcm1lciBPcHRpbWl6YXN5b25sYXLEsQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU8O8bGV5bWFuIMOHYWdhbiBFZmUqKioKCi0gICBHcmFkaWVudCBDaGVja3BvaW50aW5nCi0gICBNZW1vcnkgRWZmaWNpZW50IFRyYWluaW5nCi0gICBNaXhlZCBQcmVjaXNpb24gVHJhaW5pbmcKLSAgIERhdGEgUGFyYWxsZWxpc20KLSAgIE1vZGVsIFBhcmFsbGVsaXNtCi0gICBQaXBlbGluZSBQYXJhbGxlbGlzbQotICAgRmxhc2ggQXR0ZW50aW9uCi0gICBSb3RhcnkgRW1iZWRkaW5ncwoKIyMgNC40LiBNb2Rlcm4gVHJhbnNmb3JtZXIgVmFyeWFudGxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFBlcmZvcm1lcgotICAgUmVmb3JtZXIKLSAgIExpbmZvcm1lcgotICAgTG9uZ2Zvcm1lcgotICAgQmlnQmlyZAotICAgVHJhbnNmb3JtZXJYTAotICAgU3dpdGNoIFRyYW5zZm9ybWVyCi0gICBVbml2ZXJzYWwgVHJhbnNmb3JtZXIKCiMgNS4gQsO8ecO8ayBEaWwgTW9kZWxsZXJpIChMTE0pIHsudGFic2V0fQoKIyMgNS4xLiBMTE0gRm91bmRhdGlvbnMgdmUgR2VsacWfaW0KKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTW9kZWwgw5Zsw6dla2xlbWU6IFBhcmFtZXRyZSBCb3l1dGxhcsSxLCBDb21wdXRlIFJlcXVpcmVtZW50cywgVHJhaW5pbmcgSW5mcmFzdHJ1Y3R1cmUKLSAgIFRhcmloc2VsIEdlbGnFn2ltOiBHUFQgQWlsZXNpLCBQYUxNLCBCTE9PTSwgTExhTUEsIENsYXVkZSwgR2VtaW5pCi0gICBBw6fEsWsgS2F5bmFrIE1vZGVsbGVyOiBMTGFNQSwgQkxPT00sIEZhbGNvbiwgTWlzdHJhbCwgUGhpLTIKLSAgIE1vZGVsIEJveXV0bGFyxLE6IDdCLCAxM0IsIDM0QiwgNzBCIENvbXBhcmlzb24KLSAgIENvbnRleHQgTGVuZ3RoOiBGbGFzaCBBdHRlbnRpb24sIFJvUEUsIEFMaUJpLCBJbXByb3ZlbWVudHMKLSAgIFRva2VuaXphc3lvbjogQ29udGV4dCBXaW5kb3csIFRva2VuIEVrb25vbWlzaSwgUG9zaXRpb25hbCBFbmNvZGluZwoKIyMgNS4yLiBMTE0gVHJhaW5pbmcgUGlwZWxpbmUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgUHJlLXRyYWluaW5nCi0gICBWZXJpIEhhesSxcmxhbWE6IEZpbHRyZWxlbWUsIERlZHVwbGlrYXN5b24sIFRlbWl6bGVtZQotICAgVHJhaW5pbmcgU3RyYXRlamlsZXJpOiBNYXNrZWQgTE0sIENhdXNhbCBMTQotICAgTG9zcyBGdW5jdGlvbnM6IENyb3NzIEVudHJvcHksIENvbnRyYXN0aXZlIExvc3MKLSAgIENvbXB1dGUgRWZmaWNpZW50IFRyYWluaW5nOiBaZVJPLCBEZWVwU3BlZWQsIE1lZ2F0cm9uCi0gICBGaW5lLXR1bmluZwotICAgSW5zdHJ1Y3Rpb24gVHVuaW5nOiBOYXR1cmFsIEluc3RydWN0aW9ucywgVGFzayBUZW1wbGF0ZXMKLSAgIFJMSEYgUGlwZWxpbmU6IFJld2FyZCBNb2RlbGluZywgUFBPIFRyYWluaW5nCi0gICBEUE8gKERpcmVjdCBQcmVmZXJlbmNlIE9wdGltaXphdGlvbikKLSAgIENvbnN0aXR1dGlvbmFsIEFJOiBSdWxlLWJhc2VkIEFsaWdubWVudCwgVmFsdWUgTGVhcm5pbmcKLSAgIEtub3dsZWRnZSBEaXN0aWxsYXRpb246IFRlYWNoZXItU3R1ZGVudCBUcmFpbmluZwoKIyMgNS4zLiBQcm9tcHQgRW5naW5lZXJpbmcgdmUgT3B0aW1pemFzeW9uCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIFByb21wdCBQYXR0ZXJucwotICAgWmVyby1zaG90IHZlIEZldy1zaG90IExlYXJuaW5nCi0gICBDaGFpbi1vZi1UaG91Z2h0IChDb1QpCi0gICBUcmVlIG9mIFRob3VnaHRzCi0gICBSZUFjdCBGcmFtZXdvcmsKLSAgIEFkdmFuY2VkIFRlY2huaXF1ZXMKLSAgIFN5c3RlbSBQcm9tcHRpbmcKLSAgIE1ldGEtcHJvbXB0aW5nCi0gICBQcm9tcHQgQ2hhaW5pbmcKLSAgIFRlbXBlcmF0dXJlIFR1bmluZwotICAgUHJvbXB0IFRlbXBsYXRlcwotICAgVGFzay1zcGVjaWZpYyBUZW1wbGF0ZXMKLSAgIFJvbGUtYmFzZWQgUHJvbXB0aW5nCi0gICBDb25zaXN0ZW5jeSBUZWNobmlxdWVzCgojIyA1LjQuIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFRheWxhbiBBa2fDvG4qKioKCi0gICBUZW1lbCBCaWxlxZ9lbmxlcgotICAgVmVjdG9yIERhdGFiYXNlcwotICAgRW1iZWRkaW5nIE1vZGVscwotICAgQ2h1bmtpbmcgU3RyYXRlZ2llcwotICAgUmV0cmlldmFsIE1ldGhvZHMKLSAgIEdlbGnFn21pxZ8gUkFHCi0gICBIeWJyaWQgU2VhcmNoCi0gICBSZS1yYW5raW5nCi0gICBNdWx0aS1zdGVwIFJBRwotICAgUmVjdXJzaXZlIFJldHJpZXZhbAotICAgUkFHIE9wdGltaXphc3lvbnUKLSAgIENvbnRleHQgV2luZG93IE1hbmFnZW1lbnQKLSAgIFF1ZXJ5IEZvcm11bGF0aW9uCi0gICBSZXNwb25zZSBTeW50aGVzaXMKCiMjIDUuNS4gTExNIERlZ2VybGVuZGlybWUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTU1MVSBCZW5jaG1hcmsKLSAgIEJCSCAoQmlnIEJlbmNoIEhhcmQpCi0gICBUcnV0aGZ1bFFBCi0gICBQZXJwbGV4aXR5IHZlIEJMRVUKLSAgIEJFUlRTY29yZQotICAgVGFzay1TcGVjaWZpYyBNZXRyaWNzCi0gICBIdW1hbiBFdmFsdWF0aW9uCgojIyA1LjYuIExMTSBVeWd1bGFtYWxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIENoYXRib3QgRGV2ZWxvcG1lbnQKLSAgIFRleHQgR2VuZXJhdGlvbgotICAgQ29kZSBHZW5lcmF0aW9uCi0gICBEb2N1bWVudCBRJkEKLSAgIFRleHQgU3VtbWFyaXphdGlvbgotICAgRG9tYWluIEFkYXB0YXRpb24KLSAgIFRvb2wgVXNhZ2UKLSAgIE11bHRpLU1vZGFsIEludGVncmF0aW9uCgojIyA1LjcuIExMTSBBZ2VudCdsYXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgQWdlbnQgTWltYXJpc2k6IFJlQWN0IEZyYW1ld29yaywgUGxhbi1hbmQtRXhlY3V0ZSwgQ2hhaW4gb2YgVGhvdWdodCwgVHJlZSBvZiBUaG91Z2h0cwotICAgVG9vbCBLdWxsYW7EsW3EsTogRnVuY3Rpb24gQ2FsbGluZywgVG9vbCBMZWFybmluZywgQVBJIEludGVncmF0aW9uLAotICAgSGFmxLF6YSB2ZSBQbGFubGFtYTogRXBpc29kaWMgTWVtb3J5LCBXb3JraW5nIE1lbW9yeSwgVGFzayBQbGFubmluZwotICAgTXVsdGktQWdlbnQgU2lzdGVtbGVyOiBBZ2VudCBDb21tdW5pY2F0aW9uLCBSb2xlLWJhc2VkIEFnZW50cywgQ29sbGFib3JhdGl2ZSBQcm9ibGVtIFNvbHZpbmcKLSAgIEFnZW50IEfDvHZlbmxpZ2k6IFNhbmRib3ggRW52aXJvbm1lbnRzLCBBY3Rpb24gVmFsaWRhdGlvbiwgUmVzb3VyY2UgTGltaXRzLCBTYWZldHkgUHJvdG9jb2xzCi0gICDDlnplbCBBZ2VudCBUw7xybGVyaTogVGFzay1TcGVjaWZpYyBBZ2VudHMsIEF1dG9ub21vdXMgQWdlbnRzLCBFbWJvZGllZCBBZ2VudHMsIEFzc2lzdGFudCBBZ2VudHMKCiMjIDUuOC4gTExNIEFnZW50IEZyYW1ld29ya3MKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTGFuZ0NoYWluCi0gICBBdXRvR1BUCi0gICBCYWJ5QUdJCi0gICBDcmV3QUkKLSAgIE1pY3Jvc29mdCBTZW1hbnRpYyBLZXJuZWwKLSAgIEFnZW50IEZyYW1ld29ya3MgRXh0ZW5zaW9ucwoKIyMgNS45LiBNb2RlbCBQZXJmb3JtYW5jZSB2ZSBNZXRyaWtsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTGFuZ3VhZ2UgVW5kZXJzdGFuZGluZwotICAgTU1MVSwgQkJILCBHU004SywgSHVtYW5FdmFsCi0gICBUcnV0aGZ1bFFBLCBCaWFzIEV2YWx1YXRpb24KLSAgIFRveGljaXR5IFRlc3RpbmcKLSAgIFN5c3RlbSBQZXJmb3JtYW5jZQotICAgTGF0ZW5jeSwgVGhyb3VnaHB1dAotICAgTWVtb3J5IFVzYWdlCi0gICBDb3N0IHBlciBUb2tlbgotICAgU3BlY2lhbGl6ZWQgTWV0cmljcwotICAgQ29kZSBHZW5lcmF0aW9uOiBQYXNzXEBrCi0gICBNYXRoOiBTb2x1dGlvbiBBY2N1cmFjeQotICAgUmVhc29uaW5nOiBDb1QgU3VjY2VzcyBSYXRlCgojIyA1LjEwLiBEZXBsb3ltZW50IHZlIFByb2R1Y3Rpb24KKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgSW5mcmFzdHJ1Y3R1cmUKLSAgIFNlcnZpbmcgQXJjaGl0ZWN0dXJlcwotICAgTG9hZCBCYWxhbmNpbmcKLSAgIENhY2hpbmcgU3RyYXRlZ2llcwotICAgTW9uaXRvcmluZwotICAgVG9rZW4gVXNhZ2UKLSAgIFJlc3BvbnNlIFF1YWxpdHkKLSAgIEVycm9yIFJhdGVzCi0gICBTZWN1cml0eQotICAgUHJvbXB0IEluamVjdGlvbiBQcmV2ZW50aW9uCi0gICBSYXRlIExpbWl0aW5nCi0gICBDb250ZW50IEZpbHRlcmluZwoKIyMgNS4xMS4gRW1lcmdpbmcgVHJlbmRzCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIE11bHRpbW9kYWwgSW50ZWdyYXRpb24KLSAgIFZpc2lvbi1MYW5ndWFnZSBNb2RlbHMKLSAgIEF1ZGlvIFByb2Nlc3NpbmcKLSAgIE11bHRpLW1vZGFsIENoYXQKLSAgIFRvb2wgVXNlCi0gICBGdW5jdGlvbiBDYWxsaW5nCi0gICBDb2RlIEludGVycHJldGF0aW9uCi0gICBFeHRlcm5hbCBBUEkgSW50ZWdyYXRpb24KLSAgIE1vZGVsIEN1c3RvbWl6YXRpb24KLSAgIERvbWFpbiBBZGFwdGF0aW9uCi0gICBQZXJzb25hbGl0eSBUdW5pbmcKLSAgIEJlaGF2aW9yIEFsaWdubWVudAoKIyA2LiBWaXNpb24tTGFuZ3VhZ2UgTW9kZWxsZXIgKFZMTSkgey50YWJzZXR9CgojIyA2LjEuIE11bHRpbW9kYWwgTGVhcm5pbmcKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFNlbGltIFRvcGN1KioqCgotICAgVGVtZWxsZXI6IENyb3NzLW1vZGFsIFJlcHJlc2VudGF0aW9ucywgSm9pbnQgRW1iZWRkaW5ncywgQXR0ZW50aW9uIE1la2FuaXptYWxhcsSxCi0gICBGdXNpb24gU3RyYXRlamlsZXJpOiBFYXJseSBGdXNpb24sIExhdGUgRnVzaW9uLCBIeWJyaWQgRnVzaW9uCi0gICBFZ2l0aW0gVGVrbmlrbGVyaTogQ29udHJhc3RpdmUgTGVhcm5pbmcsIEtub3dsZWRnZSBEaXN0aWxsYXRpb24sIEN1cnJpY3VsdW0gTGVhcm5pbmcKCiMjIDYuMi4gTW9kZXJuIFZMTSBNaW1hcmlsZXJpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTZWxpbSBUb3BjdSoqKgoKLSAgIENMSVAgQWlsZXNpOiBDTElQL09wZW5DTElQLCBGbG9yZW5jZSwgRGVDTElQCi0gICBHZWxpxZ9tacWfIE1vZGVsbGVyOiBGbGFtaW5nbywgUGFMTS1FLCBHUFQtNFYsIENsYXVkZSBWaXNpb24sIENvQ2EsIEJMSVAvQkxJUC0yCi0gICBNaW1hcmkgQmlsZcWfZW5sZXI6IFZpc2lvbiBFbmNvZGVyLCBUZXh0IEVuY29kZXIsIENyb3NzLUF0dGVudGlvbiwgRnVzaW9uIExheWVycwoKIyMgNi4zLiBWTE0gVXlndWxhbWFsYXLEsQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU2VsaW0gVG9wY3UqKioKCi0gICBUZW1lbCBHw7ZyZXZsZXI6IEltYWdlLVRleHQgUmV0cmlldmFsLCBWaXN1YWwgUXVlc3Rpb24gQW5zd2VyaW5nLCBJbWFnZSBDYXB0aW9uaW5nCi0gICDEsGxlcmkgVXlndWxhbWFsYXI6IFZpc3VhbCBSZWFzb25pbmcsIFNjZW5lIFVuZGVyc3RhbmRpbmcsIFZpc3VhbCBHcm91bmRpbmcsIFplcm8tc2hvdCBUYW7EsW1hLCBGZXctc2hvdCDDlmdyZW5tZQoKIyMgNi40LiBNdWx0aW1vZGFsIENoYWluLW9mLVRob3VnaHQKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFNlbGltIFRvcGN1KioqCgotICAgVmlzdWFsIFJlYXNvbmluZzogU3RlcC1ieS1zdGVwIEFuYWx5c2lzLCBWaXN1YWwgUHJvYmxlbSBTb2x2aW5nLCBJbmZlcmVuY2UgQ2hhaW4gQnVpbGRpbmcKLSAgIFJlYXNvbmluZyBUw7xybGVyaTogU3BhdGlhbCBSZWFzb25pbmcsIFRlbXBvcmFsIFJlYXNvbmluZywgQ2F1c2FsIFJlYXNvbmluZwotICAgTXVsdGltb2RhbCBDb1QgU3RyYXRlamlsZXJpOiBWaXN1YWwgUHJvbXB0aW5nLCBDcm9zcy1tb2RhbCBWZXJpZmljYXRpb24sIEVycm9yIEFuYWx5c2lzCgojIyA2LjUuIFZMTSBPcHRpbWl6YXN5b24gdmUgRGVnZXJsZW5kaXJtZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU2VsaW0gVG9wY3UqKioKCi0gICBNb2RlbCBPcHRpbWl6YXN5b251OiBNZW1vcnkgRWZmaWNpZW5jeSwgSW5mZXJlbmNlIFNwZWVkLCBNb2RlbCBDb21wcmVzc2lvbgotICAgRGVnZXJsZW5kaXJtZSBNZXRyaWtsZXJpOiBCTEVVL1JPVUdFLCBNRVRFT1IsIENJREVyLCBTUElDRQotICAgQmVuY2htYXJrIERhdGFzZXRsZXJpOiBDT0NPLCBGbGlja3IzMGssIFZpc3VhbCBHZW5vbWUsIFZRQXYyCgojIDcuIEdlbmVyYXRpdmUgTW9kZWxsZXIgey50YWJzZXR9CgojIyA3LjEuIFZhcmlhdGlvbmFsIEF1dG9lbmNvZGVycyAoVkFFKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIFZBRSBNaW1hcmlzaTogRW5jb2Rlci1EZWNvZGVyIFlhcMSxc8SxLCBMYXRlbnQgU3BhY2UsIFJlcGFyYW1ldHJpemF0aW9uIFRyaWNrLCBLTCBEaXZlcmdlbmNlCi0gICBWQUUgVMO8cmxlcmk6IEJldGEtVkFFLCBDb25kaXRpb25hbCBWQUUsIEhpZXJhcmNoaWNhbCBWQUUKLSAgIFZRLVZBRTogVmVjdG9yIFF1YW50aXphdGlvbiwgQ29kZWJvb2sgTGVhcm5pbmcsIFZRLVZBRS0yCi0gICBOVkFFOiBIaWVyYXJjaGljYWwgU3RydWN0dXJlLCBEZWVwIE5vcm1hbGl6YXRpb24KCiMjIDcuMi4gR0FOIChHZW5lcmF0aXZlIEFkdmVyc2FyaWFsIE5ldHdvcmtzKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIEdBTiBUZW1lbGxlcmk6IEdlbmVyYXRvciwgRGlzY3JpbWluYXRvciwgVHJhaW5pbmcgRHluYW1pY3MsIE1vZGUgQ29sbGFwc2UKLSAgIE1vZGVybiBHQU4nbGFyOiBTdHlsZUdBTjMsIEJpZ0dBTiwgUHJvZ3Jlc3NpdmUgR0FOLCBTZWxmLUF0dGVudGlvbiBHQU4KLSAgIENvbmRpdGlvbmFsIEdBTnM6IFBpeDJQaXgsIEN5Y2xlR0FOLCBTUEFERSwgU3RhckdBTgotICAgVHJhaW5pbmcgdmUgU3RhYmlsaXRlOiBHcmFkaWVudCBQZW5hbHRpZXMsIFIxIFJlZ3VsYXJpemF0aW9uLCBQYXRoIExlbmd0aCBSZWd1bGFyaXphdGlvbgoKIyMgNy4zLiBEaWZmdXNpb24gTW9kZWxsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBNdXJhdCBDYXAqKioKCi0gICBUZW1lbCBEaWZmdXNpb246IEREUE0sIERESU0sIFNjb3JlLWJhc2VkIE1vZGVscywgTm9pc2UgU2NoZWR1bGluZwotICAgTW9kZXJuIERpZmZ1c2lvbjogU3RhYmxlIERpZmZ1c2lvbiwgREFMTC1FIDMsIEltYWdlbiwgTWlkam91cm5leQotICAgVXlndWxhbWFsYXI6IFRleHQtdG8tSW1hZ2UsIEltYWdlLXRvLUltYWdlLCBJbnBhaW50aW5nL091dHBhaW50aW5nCi0gICBPcHRpbWl6YXN5b246IFNhbXBsaW5nIFN0cmF0ZWdpZXMsIENGRywgR3VpZGFuY2UgU2NhbGUKCiMjIDcuNC4gRmxvdy1iYXNlZCBNb2RlbGxlcgoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIFRlbWVsIEthdnJhbWxhcjogSW52ZXJ0aWJsZSBGdW5jdGlvbnMsIENoYW5nZSBvZiBWYXJpYWJsZXMsIE1heGltdW0gTGlrZWxpaG9vZAotICAgTWltYXJpIFTDvHJsZXJpOiBOb3JtYWxpemluZyBGbG93cywgUmVhbCBOVlAsIEdsb3csIEZsb3crKwotICAgVXlndWxhbWFsYXI6IERlbnNpdHkgRXN0aW1hdGlvbiwgSW1hZ2UgR2VuZXJhdGlvbiwgVm9pY2UgU3ludGhlc2lzCi0gICBUcmFpbmluZzogQ291cGxpbmcgTGF5ZXJzLCBBZmZpbmUgVHJhbnNmb3JtYXRpb25zLCBGbG93IENvbXBvc2l0aW9uCgojIyA3LjUuIEF1dG9yZWdyZXNzaXZlIE1vZGVsbGVyCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgTXVyYXQgQ2FwKioqCgotICAgR8O2csO8bnTDvCBNb2RlbGxlcmk6IFBpeGVsQ05OKyssIEltYWdlIEdQVCwgVGFtaW5nIFRyYW5zZm9ybWVycwotICAgU2VzIE1vZGVsbGVyaTogV2F2ZU5ldCwgU2FtcGxlUk5OLCBXYXZlUk5OCi0gICBIeWJyaWQgWWFrbGHFn8SxbWxhcjogVlEtVkFFICsgVHJhbnNmb3JtZXIsIERBTEwtRSwgUGFydGkKLSAgIE9wdGltaXphc3lvbjogQ29udGV4dCBTdGFja3MsIFNraXAgQ29ubmVjdGlvbnMsIEF0dGVudGlvbiBNZWNoYW5pc21zCgojIyA3LjYuIFRleHQtdG8tSW1hZ2UgTW9kZWxsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBNdXJhdCBDYXAqKioKCi0gICBNb2RlbCBNaW1hcmlsZXJpOiBEQUxMLUUgMywgU3RhYmxlIERpZmZ1c2lvbiwgSW1hZ2VuLCBNaWRqb3VybmV5Ci0gICBLb250cm9sIE1la2FuaXptYWxhcsSxOiBDb250cm9sTmV0LCBUMkktQWRhcHRlciwgSVAtQWRhcHRlcgotICAgRmluZS10dW5pbmc6IFRleHR1YWwgSW52ZXJzaW9uLCBEcmVhbUJvb3RoLCBMb1JBLCBIeXBlcm5ldHdvcmtzCi0gICBQcm9tcHQgRW5naW5lZXJpbmc6IE5lZ2F0aXZlIFByb21wdHMsIFdlaWdodCBUdW5pbmcsIFN0eWxlIENvbnRyb2wKCiMgOC4gTW9kZWwgT3B0aW1pemFzeW9udSB2ZSBEZXBsb3ltZW50IHsudGFic2V0fQoKIyMgOC4xLiBNb2RlbCBDb21wcmVzc2lvbgoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIFF1YW50aXphdGlvbiAoSU5UOCwgSU5UNCkKLSAgIFBydW5pbmcgU3RyYXRlZ2llcwotICAgS25vd2xlZGdlIERpc3RpbGxhdGlvbgotICAgTW9kZWwgQXJjaGl0ZWN0dXJlIFNlYXJjaAotICAgSGFyZHdhcmUtYXdhcmUgT3B0aW1pemF0aW9uCgojIyA4LjIuIERpc3RyaWJ1dGVkIFRyYWluaW5nCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgRGF0YSBQYXJhbGxlbGlzbQotICAgTW9kZWwgUGFyYWxsZWxpc20KLSAgIFBpcGVsaW5lIFBhcmFsbGVsaXNtCi0gICBaZVJPIE9wdGltaXphdGlvbgotICAgQ29tbXVuaWNhdGlvbiBTdHJhdGVnaWVzCgojIyA4LjMuIFByb2R1Y3Rpb24gRGVwbG95bWVudAoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIE1vZGVsIFNlcnZpbmcgKFRvcmNoU2VydmUsIFRlbnNvclJUKQotICAgQVBJIERldmVsb3BtZW50Ci0gICBDb250YWluZXJpemF0aW9uCi0gICBMb2FkIEJhbGFuY2luZwotICAgTW9uaXRvcmluZyB2ZSBMb2dnaW5nCgojIyA4LjQuIE1MT3BzCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgQ0kvQ0QgZm9yIE1MCi0gICBFeHBlcmltZW50IFRyYWNraW5nCi0gICBNb2RlbCBWZXJzaW9uaW5nCi0gICBGZWF0dXJlIFN0b3JlcwotICAgQS9CIFRlc3RpbmcKCiMgOS4gUmVzcG9uc2libGUgQUksIEF1Z21lbnRlZCBpbnRlbGxpZ2VuY2UgdmUgQ2F1c2FsIEFJIHsudGFic2V0fQoKIyMgOS4xLiBSZXNwb25zaWJsZSBBSSB7LnRhYnNldH0KKioqRWdpdG1lbmxlcjogVGF5bGFuIEFrZ8O8bioqKgoKUmVzcG9uc2libGUgQUkgc2lzdGVtbGVyaSwgZXRpayBwcmVuc2lwbGVyIHZlIGfDvHZlbmxpayDDtm5sZW1sZXJpIMOnZXLDp2V2ZXNpbmRlIGdlbGnFn3RpcmlsaXIsIMWfZWZmYWZsxLFrIHZlIGhlc2FwIHZlcmViaWxpcmxpayB0ZW1lbCBhbMSxbmFyYWsgdG9wbHVtc2FsIGV0a2lsZXIgZ8O2emV0aWxpci4gVmVyaSBtYWhyZW1peWV0aSwgYmlhcyB5w7ZuZXRpbWkgdmUgbW9kZWwgZ8O8dmVubGlnaSBnaWJpIGtvbnVsYXIgc8O8cmVrbGkgaXpsZW5lcmVrLCBzw7xyZMO8csO8bGViaWxpciB2ZSBhZGlsIEFJIHNpc3RlbWxlcmkgb2x1xZ90dXJ1bG1hc8SxIGhlZGVmbGVuaXIuCgojIyA5LjIuIEF1Z21lbnRlZCBpbnRlbGxpZ2VuY2Ugey50YWJzZXR9CioqKkVnaXRtZW5sZXI6IFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpBdWdtZW50ZWQgSW50ZWxsaWdlbmNlLCBpbnNhbiB5ZXRlbmVrbGVyaW5pIEFJIHNpc3RlbWxlcml5bGUgZ8O8w6dsZW5kaXJtZXlpIGFtYcOnbGFyLiDEsG5zYW4tQUkgacWfYmlybGlnaSBtb2RlbGxlcmluZGUsIGJpbGdpIGVudGVncmFzeW9udSB2ZSBrYXJhciBkZXN0ZWsgc2lzdGVtbGVyaSBrdWxsYW7EsWxhcmFrIGnFnyBzw7xyZcOnbGVyaSBvcHRpbWl6ZSBlZGlsaXIuIEt1bGxhbsSxY8SxIGRlbmV5aW1pIHZlIGVyacWfaWxlYmlsaXJsaWsgw7ZuIHBsYW5kYSB0dXR1bGFyYWssIHNla3TDtnJlbCBpaHRpeWHDp2xhcmEgw7Z6ZWwgw6fDtnrDvG1sZXIgZ2VsacWfdGlyaWxpci4KCiMjIDkuMy4gQ2F1c2FsIE1ML0FJIHsudGFic2V0fQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EqKioKCkNhdXNhbCBNTC9BSSwga29yZWxhc3lvbiB5ZXJpbmUgbmVkZW5zZWxsaWsgaWxpU2tpbGVyaW5pIGFubGFtYXlhIG9kYWtsYW7EsXIuIFBlYXJsJ8O8biBkby1jYWxjdWx1cyB2ZSB5YXDEsXNhbCBuZWRlbnNlbCBtb2RlbGxlciBnaWJpIHRlb3JpayB0ZW1lbGxlciDDvHplcmluZSBrdXJ1bHUgb2xhbiBidSBhbGFuLCB0cmVhdG1lbnQgZWZmZWN0IGVzdGltYXRpb24sIGNvdW50ZXJmYWN0dWFsIGFuYWx5c2lzIHZlIGNhdXNhbCBkaXNjb3ZlcnkgZ2liaSB0ZWtuaWtsZXJsZSBnZXLDp2VrIGTDvG55YSBwcm9ibGVtbGVyaW5lIMOnw7Z6w7xtbGVyIHN1bmFyLiDDlnplbGxpa2xlIGhlYWx0aGNhcmUsIGJ1c2luZXNzIHZlIHBvbGljeSBhbGFubGFyxLFuZGEgZXRraWxpIHV5Z3VsYW1hbGFyIHNhZ2xhci4KCgojIDEwLiBWaXNpb24gVHJhbnNmb3JtZXJzIChWaVQpIHsudGFic2V0fQoKIyMgMTAuMS4gVmlzaW9uIFRyYW5zZm9ybWVyIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgVGVtZWwgTWltYXJpOiBQYXRjaCBFbWJlZGRpbmcsIFNlbGYtQXR0ZW50aW9uLCBNTFAgSGVhZCwgQ2xhc3NpZmljYXRpb24gVG9rZW4KLSAgIElucHV0IFByb2Nlc3Npbmc6IEltYWdlIFBhdGNoaW5nLCBMaW5lYXIgUHJvamVjdGlvbiwgUG9zaXRpb24gRW1iZWRkaW5nCi0gICBBdHRlbnRpb24gTWVrYW5pem1hc8SxOiBNdWx0aS1IZWFkIFNlbGYtQXR0ZW50aW9uLCBMYXllciBOb3JtYWxpemF0aW9uLCBTa2lwIENvbm5lY3Rpb25zCi0gICBUcmFpbmluZyBTdHJhdGVqaWxlcmk6IFByZXRyYWluaW5nIERhdGFzZXRzLCBEYXRhIEF1Z21lbnRhdGlvbiwgVHJhbnNmZXIgTGVhcm5pbmcKCiMjIDEwLjIuIE1vZGVybiBWaVQgTWltYXJpbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgRWZmaWNpZW50IFZpVDogRGVpVCwgTW9iaWxlLVZpVCwgQ29tcGFjdCBUcmFuc2Zvcm1lcnMKLSAgIEhpZXJhcmNoaWNhbCBWaVQ6IFN3aW4gVHJhbnNmb3JtZXIsIFBWVCwgVHdpbnMKLSAgIEh5YnJpZCBNb2RlbGxlcjogQ29udk5lWHQsIENvQXROZXQsIENyb3NzVmlUCi0gICBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHM6IFhDaVQsIENhaVQsIExlVmlUCgojIyAxMC4zLiBWaVQgT3B0aW1pemFzeW9ubGFyxLEKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFRyYWluaW5nOiBLbm93bGVkZ2UgRGlzdGlsbGF0aW9uLCBQcm9ncmVzc2l2ZSBMZWFybmluZywgVG9rZW4gTWVyZ2luZwotICAgTWVtb3J5IEVmZmljaWVuY3k6IEF0dGVudGlvbiBBcHByb3hpbWF0aW9ucywgTGluZWFyIENvbXBsZXhpdHkgTWV0aG9kcwotICAgSW5mZXJlbmNlOiBNb2RlbCBQcnVuaW5nLCBRdWFudGl6YXRpb24sIEhhcmR3YXJlIEFjY2VsZXJhdGlvbgotICAgRGF0YSBQaXBlbGluZTogRWZmaWNpZW50IFBhdGNoIEV4dHJhY3Rpb24sIE1lbW9yeSBNYW5hZ2VtZW50CgojIyAxMC40LiBWaVQgVXlndWxhbWFsYXLEsQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgR8O2csO8bnTDvCBTxLFuxLFmbGFuZMSxcm1hOiBJbWFnZU5ldCwgRmluZS1ncmFpbmVkIFJlY29nbml0aW9uLCBNdWx0aS1sYWJlbCBDbGFzc2lmaWNhdGlvbgotICAgTmVzbmUgVGVzcGl0aTogREVUUiwgRGVmb3JtYWJsZSBERVRSLCBWaVQtRlJDTk4KLSAgIFNlZ21lbnRhc3lvbjogU2VnRm9ybWVyLCBTRVRSLCBEZW5zZSBQcmVkaWN0aW9uCi0gICDDlnplbCBHw7ZyZXZsZXI6IERlcHRoIEVzdGltYXRpb24sIFBvc2UgRXN0aW1hdGlvbiwgM0QgVmlzaW9uCgojIDExLiBFeHBsYWluYWJsZSBBSSAoWEFJKSB7LnRhYnNldH0KCiMjIDExLjEuIFhBSSBUZW1lbGxlcmkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFRheWxhbiBBa2fDvG4qKioKCi0gICBUZW1lbCBLYXZyYW1sYXI6IMWeZWZmYWZsxLFrLCBZb3J1bWxhbmFiaWxpcmxpaywgQcOnxLFrbGFuYWJpbGlybGlrLCBHw7x2ZW5pbGlybGlrCi0gICBNb2RlbCBBbmFsaXogVGlwbGVyaTogR2xvYmFsIEludGVycHJldGFiaWxpdHksIExvY2FsIEludGVycHJldGFiaWxpdHksIFBvc3QtaG9jIEFuYWx5c2lzCi0gICBYQUkgTWV0cmlrbGVyaTogRmlkZWxpdHksIENvbXByZWhlbnNpYmlsaXR5LCBDb21wbGV0ZW5lc3MsIENvbnNpc3RlbmN5CgojIyAxMS4yLiBHbG9iYWwgSW50ZXJwcmV0YWJpbGl0eSBZw7ZudGVtbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIEZlYXR1cmUgSW1wb3J0YW5jZTogUGVybXV0YXRpb24gSW1wb3J0YW5jZSwgU0hBUCBWYWx1ZXMsIEZlYXR1cmUgQWJsYXRpb24KLSAgIE1vZGVsIERpc3RpbGxhdGlvbjogUnVsZSBFeHRyYWN0aW9uLCBEZWNpc2lvbiBUcmVlcywgTGluZWFyIEFwcHJveGltYXRpb25zCi0gICBNb2RlbCBBZ25vc3RpYzogUGFydGlhbCBEZXBlbmRlbmNlIFBsb3RzLCBBY2N1bXVsYXRlZCBMb2NhbCBFZmZlY3RzCgojIyAxMS4zLiBMb2NhbCBJbnRlcnByZXRhYmlsaXR5IFnDtm50ZW1sZXJpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTElNRTogTG9jYWwgSW50ZXJwcmV0YWJsZSBNb2RlbC1hZ25vc3RpYyBFeHBsYW5hdGlvbnMsIFN1cGVyUGl4ZWxzCi0gICBTSEFQOiBTSGFwbGV5IEFkZGl0aXZlIGV4UGxhbmF0aW9ucywgS2VybmVsU0hBUCwgRGVlcFNIQVAKLSAgIENvdW50ZXJmYWN0dWFsczogRGlDRSwgQ291bnRlcmZhY3R1YWwgRXhwbGFuYXRpb25zLCBXaGF0LUlmIEFuYWx5c2lzCgojIyAxMS40LiBEZWVwIExlYXJuaW5nIFNwZXNpZmlrIFhBSQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIEfDtnLDvG50w7wgTW9kZWxsZXJpOiBHcmFkLUNBTSwgSW50ZWdyYXRlZCBHcmFkaWVudHMsIE9jY2x1c2lvbiBTZW5zaXRpdml0eQotICAgTkxQIE1vZGVsbGVyaTogQXR0ZW50aW9uIFZpc3VhbGl6YXRpb24sIFRva2VuIEF0dHJpYnV0aW9uLCBJbnB1dCBTYWxpZW5jeQotICAgTXVsdGltb2RhbDogQ3Jvc3MtTW9kYWwgQXR0cmlidXRpb24sIFZpc2lvbi1MYW5ndWFnZSBFeHBsYW5hdGlvbnMKCiMjIDExLjUuIFhBSSBVeWd1bGFtYWxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBUYXlsYW4gQWtnw7xuKioqCgotICAgU2VrdMO2ciBVeWd1bGFtYWxhcsSxOiBIZWFsdGhjYXJlLCBGaW5hbmNlLCBBdXRvbm9tb3VzIFN5c3RlbXMKLSAgIFJlZ8O8bGFzeW9uIFV5dW1sdWx1Z3U6IEdEUFIsIEFJIEFjdCwgTW9kZWwgRG9jdW1lbnRhdGlvbgotICAgQmlhcyB2ZSBGYWlybmVzczogQmlhcyBEZXRlY3Rpb24sIE1vZGVsIERlYnVnZ2luZywgRmFpcm5lc3MgTWV0cmljcwoKIyAxMi4gTXVsdGltb2RhbCBMZWFybmluZyB7LnRhYnNldH0KCiMjIDEyLjEuIE11bHRpbW9kYWwgRm91bmRhdGlvbnMKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTZWxpbSBUb3BjdSoqKgoKLSAgIFJlcHJlc2VudGF0aW9uczogQ3Jvc3MtbW9kYWwgTGVhcm5pbmcsIEpvaW50IEVtYmVkZGluZ3MsIE1vZGFsIEFsaWdubWVudAotICAgRnVzaW9uIFN0cmF0ZWdpZXM6IEVhcmx5IEZ1c2lvbiwgTGF0ZSBGdXNpb24sIEh5YnJpZCBGdXNpb24sIEFkYXB0aXZlIEZ1c2lvbgotICAgTGVhcm5pbmcgVGVjaG5pcXVlczogQ29udHJhc3RpdmUgTGVhcm5pbmcsIEtub3dsZWRnZSBEaXN0aWxsYXRpb24sIENyb3NzLW1vZGFsIFByZXRyYWluaW5nCi0gICBBcmNoaXRlY3R1cmFsIENvbXBvbmVudHM6IE1vZGFsIEVuY29kZXJzLCBGdXNpb24gTW9kdWxlcywgQ3Jvc3MtYXR0ZW50aW9uCgojIyAxMi4yLiBDcm9zcy1tb2RhbCBVbmRlcnN0YW5kaW5nCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBUZXh0LVZpc2lvbiBJbnRlZ3JhdGlvbjogQ0xJUCwgQUxJR04sIEZsb3JlbmNlCi0gICBBdWRpby1WaXN1YWwgTGVhcm5pbmc6IEFWLUh1QkVSVCwgQXVkaW9DTElQCi0gICBUZXh0LUF1ZGlvIFN5c3RlbXM6IFdoaXNwZXIsIFdhdjJWZWMKLSAgIE11bHRpLXNlbnNvciBGdXNpb246IFBvaW50IENsb3VkcywgRGVwdGgsIFRoZXJtYWwKCiMjIDEyLjMuIE11bHRpbW9kYWwgQXBwbGljYXRpb25zCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBDaGF0Ym90czogR1BULTRWLCBDbGF1ZGUgVmlzaW9uLCBMTGFWQQotICAgUXVlc3Rpb24gQW5zd2VyaW5nOiBWaXN1YWwgUUEsIEF1ZGlvIFFBLCBNdWx0aS1ob3AgUUEKLSAgIENvbnRlbnQgR2VuZXJhdGlvbjogVGV4dC10by1JbWFnZSwgVGV4dC10by1WaWRlbywgVGV4dC10by1BdWRpbwotICAgUmVhc29uaW5nOiBWaXN1YWwgUmVhc29uaW5nLCBTY2VuZSBVbmRlcnN0YW5kaW5nLCBDcm9zcy1tb2RhbCBJbmZlcmVuY2UKCiMjIDEyLjQuIEFkdmFuY2VkIFRvcGljcwoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgRmV3LXNob3QgTGVhcm5pbmc6IENyb3NzLW1vZGFsIEFkYXB0YXRpb24sIE1vZGFsIFRyYW5zZmVyCi0gICBaZXJvLXNob3QgTGVhcm5pbmc6IENyb3NzLW1vZGFsIEdlbmVyYWxpemF0aW9uCi0gICBDb250aW51YWwgTGVhcm5pbmc6IE1vZGFsIEluY3JlbWVudGFsIExlYXJuaW5nCi0gICBSb2J1c3RuZXNzOiBNb2RhbCBNaXNzaW5nLCBOb2lzZSBIYW5kbGluZwoKIyMgMTIuNS4gRXZhbHVhdGlvbiAmIE1ldHJpY3MKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTZWxpbSBUb3BjdSoqKgoKLSAgIFRhc2stU3BlY2lmaWMgTWV0cmljczogVlFBIFNjb3JlLCBST1VHRSwgQkxFVSwgQ0lERXIKLSAgIENyb3NzLW1vZGFsIE1ldHJpY3M6IFJldHJpZXZhbCBNZXRyaWNzLCBBbGlnbm1lbnQgU2NvcmVzCi0gICBIdW1hbiBFdmFsdWF0aW9uOiBVc2VyIFN0dWRpZXMsIEEvQiBUZXN0aW5nCi0gICBEaWFnbm9zdGljIFRvb2xzOiBBdHRyaWJ1dGlvbiBBbmFseXNpcywgRXJyb3IgQW5hbHlzaXMKCiMgMTMuIFRhYnVsYXIgVmVyaSBpbGUgRGVyaW4gw5ZncmVubWUgey50YWJzZXR9CgojIyAxMy4xLiBUYWJ1bGFyIERMIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgVmVyaSDEsMWfbGVtZTogUHJlcHJvY2Vzc2luZywgRmVhdHVyZSBFbmdpbmVlcmluZywgRW5jb2RpbmcsIE5vcm1hbGl6YXRpb24KLSAgIE5ldXJhbCBOZXR3b3JrIFlhcMSxbGFyxLE6IE1MUCwgRW1iZWRkaW5nIExheWVycywgQ2F0ZWdvcmljYWwgSGFuZGxpbmcKLSAgIFByZXByb2Nlc3Npbmc6IE1pc3NpbmcgVmFsdWVzLCBPdXRsaWVycywgRmVhdHVyZSBTY2FsaW5nLCBFbmNvZGluZwotICAgQXJjaGl0ZWN0dXJlIERlc2lnbjogTGF5ZXIgU2l6ZSwgQWN0aXZhdGlvbiBGdW5jdGlvbnMsIFJlZ3VsYXJpemF0aW9uCgojIyAxMy4yLiBNb2Rlcm4gVGFidWxhciBNb2RlbGxlcgoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgVGFiTmV0OiBGZWF0dXJlIFNlbGVjdGlvbiwgU2VxdWVudGlhbCBQcm9jZXNzaW5nLCBJbnN0YW5jZS13aXNlIEZlYXR1cmUgU2VsZWN0aW9uCi0gICBUcmFuc2Zvcm1lci1iYXNlZDogVGFiVHJhbnNmb3JtZXIsIEZULVRyYW5zZm9ybWVyLCBTQUlOVAotICAgSHlicmlkIE1vZGVsbGVyOiBOT0RFLCBBZGFwdGVyQm9vc3QsIEF1dG9HbHVvbgotICAgRW50aXR5IEVtYmVkZGluZ3M6IENhdGVnb3JpY2FsIEVuY29kaW5nLCBGZWF0dXJlIEludGVyYWN0aW9ucwoKIyMgMTMuMy4gQWR2YW5jZWQgVGVjaG5pcXVlcwoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgRmVhdHVyZSBJbnRlcmFjdGlvbnM6IEF1dG9JbnQsIERDTiwgQ3Jvc3NOZXQKLSAgIEF0dGVudGlvbiBNZWNoYW5pc21zOiBTZWxmLUF0dGVudGlvbiwgQ3Jvc3MtRmVhdHVyZSBBdHRlbnRpb24KLSAgIFJlZ3VsYXJpemF0aW9uOiBEcm9wb3V0LCBMMS9MMiwgRmVhdHVyZSBEcm9wb3V0Ci0gICBFbnNlbWJsZSBNZXRob2RzOiBTdGFja2luZywgQmFnZ2luZywgTW9kZWwgRnVzaW9uCgojIyAxMy40LiBNb2RlbCBPcHRpbWl6YXRpb24KKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIE11cmF0IENhcCoqKgoKLSAgIEh5cGVycGFyYW1ldGVyIFR1bmluZzogR3JpZCBTZWFyY2gsIEJheWVzaWFuIE9wdGltaXphdGlvbgotICAgTGVhcm5pbmcgUmF0ZSBTY2hlZHVsaW5nOiBXYXJtLXVwLCBDeWNsaWMgTFIsIE9uZS1DeWNsZQotICAgTW9kZWwgQ29tcHJlc3Npb246IFBydW5pbmcsIFF1YW50aXphdGlvbiwgS25vd2xlZGdlIERpc3RpbGxhdGlvbgotICAgUGVyZm9ybWFuY2UgTWV0cmljczogUk1TRSwgTUFFLCBST0MtQVVDLCBQUi1BVUMKCiMjIDEzLjUuIEludGVycHJldGFiaWxpdHkgJiBEZXBsb3ltZW50CioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBNb2RlbCBJbnRlcnByZXRhdGlvbjogU0hBUCwgTElNRSwgRmVhdHVyZSBJbXBvcnRhbmNlCi0gICBDYWxpYnJhdGlvbjogUGxhdHQgU2NhbGluZywgSXNvdG9uaWMgUmVncmVzc2lvbgotICAgRGVwbG95bWVudDogTW9kZWwgU2VydmluZywgT25saW5lIExlYXJuaW5nCi0gICBNb25pdG9yaW5nOiBEcmlmdCBEZXRlY3Rpb24sIFBlcmZvcm1hbmNlIFRyYWNraW5nCgojIDE0LiBEZWVwIExlYXJuaW5nIGRvbmFuxLFtIGdlcmVrc2luaW1sZXJpIHsudGFic2V0fQoKIyMgMTQuMS4gR1BVIE1pbWFyaXNpIHZlIFNlw6dpbWkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIEFzbGFuIEVyZG9nYW4qKioKCi0gICBHUFUgQmlsZcWfZW5sZXJpOiBDVURBIENvcmVzLCBUZW5zb3IgQ29yZXMsIE1lbW9yeSBCYW5kd2lkdGgKLSAgIEdQVSBTZcOnaW0gS3JpdGVybGVyaTogVlJBTSwgQ29tcHV0ZSBDYXBhYmlsaXR5LCBQb3dlciBFZmZpY2llbmN5Ci0gICBNdWx0aS1HUFUgU2lzdGVtbGVyOiBOVkxpbmssIE11bHRpLUdQVSBUcmFpbmluZwotICAgR1BVIEFsdGVybmF0aWZsZXJpOiBUUFUsIEZQR0EsIE5ldXJhbCBQcm9jZXNzb3JzCgojIyAxNC4yLiBIYXJkd2FyZSBPcHRpbWl6YXN5b251CioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgTWVtb3J5IE1hbmFnZW1lbnQ6IEdyYWRpZW50IENoZWNrcG9pbnRpbmcsIE1peGVkIFByZWNpc2lvbiBUcmFpbmluZwotICAgUGFyYWxsZWxpemF0aW9uOiBEYXRhIFBhcmFsbGVsLCBNb2RlbCBQYXJhbGxlbCwgUGlwZWxpbmUgUGFyYWxsZWwKLSAgIERpc3RyaWJ1dGVkIFRyYWluaW5nOiBQYXJhbWV0ZXIgU2VydmVyLCBSaW5nIEFsbFJlZHVjZQotICAgUmVzb3VyY2UgTW9uaXRvcmluZzogR1BVIFV0aWxpemF0aW9uLCBNZW1vcnkgVXNhZ2UsIFBvd2VyIENvbnN1bXB0aW9uCgojIyAxNC4zLiBDbG91ZCBJbmZyYXN0cnVjdHVyZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIENsb3VkIFByb3ZpZGVyczogQVdTLCBHQ1AsIEF6dXJlIE1MCi0gICBJbnN0YW5jZSBUeXBlczogR1BVIEluc3RhbmNlcywgSGlnaCBNZW1vcnksIFNwb3QgSW5zdGFuY2VzCi0gICBPcmNoZXN0cmF0aW9uOiBLdWJlcm5ldGVzLCBEb2NrZXIsIENsb3VkIE1hbmFnZW1lbnQKLSAgIENvc3QgT3B0aW1pemF0aW9uOiBJbnN0YW5jZSBTZWxlY3Rpb24sIFNwb3QgU3RyYXRlZ2llcwoKIyMgMTQuNC4gRGVwbG95bWVudCBIYXJkd2FyZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIEVkZ2UgRGV2aWNlczogTW9iaWxlLCBJb1QsIEVtYmVkZGVkIFN5c3RlbXMKLSAgIE1vZGVsIE9wdGltaXphdGlvbjogUXVhbnRpemF0aW9uLCBQcnVuaW5nLCBEaXN0aWxsYXRpb24KLSAgIEluZmVyZW5jZSBBY2NlbGVyYXRpb246IFRlbnNvclJULCBPTk5YIFJ1bnRpbWUKLSAgIERlcGxveW1lbnQgU3RyYXRlZ2llczogQ1BVIHZzIEdQVSB2cyBFZGdlIFRQVQoKIyAxNS4gQ29tcHV0ZXIgVmlzaW9uIHsudGFic2V0fQojIyAxNS4xLiBUZW1lbCBHw7Zyw7xudMO8IMSwxZ9sZW1lCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKR8O2csO8bnTDvCDDlm4gxLDFn2xlbWU6IEZpbHRyZWxlbWUsIE5vcm1hbGl6YXN5b24sIEF1Z21lbnRhdGlvbgpGZWF0dXJlIEV4dHJhY3Rpb246IFNJRlQsIFNVUkYsIE9SQiwgSE9HClNlZ21lbnRhdGlvbjogVGhyZXNob2xkLCBFZGdlIERldGVjdGlvbiwgV2F0ZXJzaGVkCk1vcnBob2xvZ2ljYWwgT3BlcmF0aW9uczogRXJvc2lvbiwgRGlsYXRpb24sIE9wZW5pbmcsIENsb3NpbmcKCiMjIDE1LjIuIERlcmluIMOWZ3Jlbm1lIE1pbWFyaWxlcmkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpDTk4gTWltYXJpbGVyaTogUmVzTmV0LCBFZmZpY2llbnROZXQsIFZpc2lvbiBUcmFuc2Zvcm1lcgpPYmplY3QgRGV0ZWN0aW9uOiBZT0xPLCBGYXN0ZXIgUi1DTk4sIERFVFIKU2VnbWVudGF0aW9uIE5ldHdvcmtzOiBVLU5ldCwgTWFzayBSLUNOTiwgRGVlcExhYgpNdWx0aS10YXNrIExlYXJuaW5nOiBNVEwgQXJjaGl0ZWN0dXJlcywgRmVhdHVyZSBTaGFyaW5nCgojIyAxNS4zLiAzRCBWaXNpb24KKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgozRCBSZWNvbnN0cnVjdGlvbjogU2ZNLCBTTEFNLCBOZVJGClBvaW50IENsb3VkIFByb2Nlc3Npbmc6IFBvaW50TmV0KyssIERHQ05OCkRlcHRoIEVzdGltYXRpb246IE1vbm9jdWxhciwgU3RlcmVvIFZpc2lvbgozRCBPYmplY3QgRGV0ZWN0aW9uOiBWb3hlbE5ldCwgUG9pbnRQaWxsYXJzCgojIyAxNS40LiBWaWRlbyBVbmRlcnN0YW5kaW5nCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKQWN0aW9uIFJlY29nbml0aW9uOiBJM0QsIFNsb3dGYXN0IE5ldHdvcmtzClRyYWNraW5nOiBTT1JULCBEZWVwU09SVCwgQnl0ZVRyYWNrClRlbXBvcmFsIE1vZGVsaW5nOiBMU1RNLCAzRCBDTk4sIFRyYW5zZm9ybWVyClZpZGVvIEdlbmVyYXRpb246IFZpZGVvIERpZmZ1c2lvbiwgTW90aW9uIFRyYW5zZmVyCgojIyAxNS41LiBBZHZhbmNlZCBUb3BpY3MKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpGZXctc2hvdCBMZWFybmluZzogUHJvdG90eXBpY2FsIE5ldHdvcmtzLCBNQU1MClNlbGYtc3VwZXJ2aXNlZCBMZWFybmluZzogTW9DbywgRElOTywgTUFFCk11bHRpLW1vZGFsIExlYXJuaW5nOiBDTElQLCBGbG9yZW5jZSwgQ29DYQpOZXVyYWwgUmVuZGVyaW5nOiBOZVJGLCBHYXVHQU4sIFN0eWxlR0FOMwoKIyMgMTUuNi4gVXlndWxhbWFsYXIgdmUgRGVwbG95bWVudAoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU8O8bGV5bWFuIMOHYWdhbiBFZmUqKioKCk1vZGVsIE9wdGltaXphdGlvbjogUHJ1bmluZywgUXVhbnRpemF0aW9uLCBLRApFZGdlIERlcGxveW1lbnQ6IFRlbnNvclJULCBDb3JlTUwsIFRGTGl0ZQpQaXBlbGluZSBEZXNpZ246IERhdGEgRmxvdywgQ2FjaGluZywgQmF0Y2hpbmcKTW9uaXRvcmluZzogUGVyZm9ybWFuY2UgTWV0cmljcywgRmFpbHVyZSBDYXNlcwoKCg==