1. load libraries

2. Load Seurat Object


#Load Seurat Object merged from cell lines and a control after filtration
load("../0-R_Objects/CD4Tcells_harmony_integrated_0.5_theta_patientorigin_cell_line.Robj")

3. Harmony Visualization


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "cell_line",
              label = TRUE, 
              label.box = TRUE) 

    

DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.1",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.2",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.3",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.4",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.5",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.6",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.7",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.8",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_0.9",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_1",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "harmony_res_1.2",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "predicted.celltype.l1",
              label = TRUE, 
              label.box = TRUE) 



DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "predicted.celltype.l2",
              label = TRUE, 
              label.box = TRUE) 


DimPlot(All_samples_Merged, 
              reduction = "umap", 
              group.by = "predicted.celltype.l3",
              label = TRUE, 
              label.box = TRUE) 

4. clusTree

library(clustree)
clustree(All_samples_Merged, prefix = "harmony_res_")

Visualize Harmony Integrated Data distribution


#0.6
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$cell_line)
                   
                      L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
  B intermediate       0    0    2    1    2    2    0    0        0
  B memory             0    0   11    1   38   82  120    0        0
  CD14 Mono            0    0    1    0    5    0    6    0        0
  CD4 CTL              0    0    0    0    0    0    0   12        1
  CD4 Naive            0    0    0    7    0    0    0  523     1512
  CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
  CD4 TCM           3320  270  887  562  178  557  517 4576     1963
  CD4 TEM              1    0    0    0    0    0    0   60       23
  CD8 Proliferating    0    0    0    0    0    1    1    0        0
  CD8 TCM              1   16    0    0    0    0    0    0        0
  CD8 TEM              1    8    0    0    2    3    1    0        0
  cDC1                 0    0    0    0    2    6    0    0        0
  cDC2                 0    0    0    4   11    3   35    0        0
  dnT                  2    3    0    1    2    5    2    0        0
  HSPC                 0    0   60    7 1035  213  490    0        0
  NK Proliferating    38 2785    6   24   11  259   38    0        0
  Treg                 1    1    9    9    4   15    6    0        0
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$harmony_res_0.6)
                   
                       0    1    2    3    4    5    6    7    8    9   10   11
  B intermediate       0    0    0    1    0    2    1    0    0    0    3    0
  B memory            15    0    3   11    0   10   21    3    0  135   54    0
  CD14 Mono            0    0    0    0    0    0    0    0    0   11    0    1
  CD4 CTL              0    7    0    0    2    0    1    0    0    2    0    1
  CD4 Naive            0 1979    0    3    2   51    5    0    0    1    0    1
  CD4 Proliferating 6752   25 6040 4605 1688 1851 1595 2583 2596  325  951    0
  CD4 TCM            271 5845  116 1517   45 1626 1855   45    7 1254  197   52
  CD4 TEM              0   79    0    0    1    4    0    0    0    0    0    0
  CD8 Proliferating    0    0    0    0    0    0    0    0    0    1    1    0
  CD8 TCM              0    0    1   10    1    0    5    0    0    0    0    0
  CD8 TEM              0    0    0    1    0    4    4    0    0    6    0    0
  cDC1                 0    0    0    0    0    1    0    0    0    2    5    0
  cDC2                 3    0    0    0    0    0    1    1    0   42    4    2
  dnT                  1    0    0    0    0    8    0    0    0    5    1    0
  HSPC               976    0   46   65    3    8   38  632    1    2   34    0
  NK Proliferating   231    4   25    1 2579  117   88    7   89    2   18    0
  Treg                 0    0    1    0    0   41    3    0    0    0    0    0
table(All_samples_Merged$cell_line, All_samples_Merged$harmony_res_0.6)
          
              0    1    2    3    4    5    6    7    8    9   10   11
  L1          6   20   56  618   24 2641 1712    1  438  301    8    0
  L2          5    4    2  102 4263  107 1100    0  343    6    3    0
  L3          5    0 2970 3061    2   50  155    4   36   19  125    1
  L4          0    1 3147 1834    2   35   90    7   51  567  271    2
  L5       1711    0   14  257    4   39  234 3008  301  149  305    0
  L6       3324    0   32  108    5  178  124   26  746  162  443    0
  L7       3196    0    7  209    5   74  185  225  777  555   98    0
  PBMC        1 4602    4   21   16  439   17    0    0   24   15   32
  PBMC_10x    1 3312    0    4    0  160    0    0    1    5    0   22
#0.7
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$cell_line)
                   
                      L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
  B intermediate       0    0    2    1    2    2    0    0        0
  B memory             0    0   11    1   38   82  120    0        0
  CD14 Mono            0    0    1    0    5    0    6    0        0
  CD4 CTL              0    0    0    0    0    0    0   12        1
  CD4 Naive            0    0    0    7    0    0    0  523     1512
  CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
  CD4 TCM           3320  270  887  562  178  557  517 4576     1963
  CD4 TEM              1    0    0    0    0    0    0   60       23
  CD8 Proliferating    0    0    0    0    0    1    1    0        0
  CD8 TCM              1   16    0    0    0    0    0    0        0
  CD8 TEM              1    8    0    0    2    3    1    0        0
  cDC1                 0    0    0    0    2    6    0    0        0
  cDC2                 0    0    0    4   11    3   35    0        0
  dnT                  2    3    0    1    2    5    2    0        0
  HSPC                 0    0   60    7 1035  213  490    0        0
  NK Proliferating    38 2785    6   24   11  259   38    0        0
  Treg                 1    1    9    9    4   15    6    0        0
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$harmony_res_0.7)
                   
                       0    1    2    3    4    5    6    7    8    9   10   11   12   13
  B intermediate       0    0    0    0    0    0    2    1    0    0    0    2    2    0
  B memory            14    0    5    0    0    3   12    8    3    0    0  194   13    0
  CD14 Mono            0    0    0    0    0    0    0    0    0    0    0   11    0    1
  CD4 CTL              0    0    0    0    2    0    1    0    0    7    0    2    0    1
  CD4 Naive            0 1748    0    0    2    0    8   51    0  231    0    1    0    1
  CD4 Proliferating 5690    3 3924 3942 1736 3912 1499 1847 2576   25 2669  732  456    0
  CD4 TCM            261 3120  826   11   37  148 2168 1609   33 2730   92 1697   46   52
  CD4 TEM              0   26    0    0    1    0    0    4    0   53    0    0    0    0
  CD8 Proliferating    0    0    0    0    0    0    0    0    0    0    0    2    0    0
  CD8 TCM              0    0    1    0    0    1   15    0    0    0    0    0    0    0
  CD8 TEM              0    0    0    0    0    0    5    4    0    0    0    6    0    0
  cDC1                 0    0    0    0    0    0    0    1    0    0    0    5    2    0
  cDC2                 2    0    0    0    0    0    0    0    1    0    0   44    4    2
  dnT                  1    0    0    0    0    0    0    8    0    0    0    6    0    0
  HSPC               987    0   29    9    1   59   37    8  633    0    1   10   31    0
  NK Proliferating   132    0    0  318 2496    3   53  107    7    5   23    5   12    0
  Treg                 0    0    0    0    0    0    2   41    0    0    1    1    0    0
table(All_samples_Merged$cell_line, All_samples_Merged$harmony_res_0.7)
          
              0    1    2    3    4    5    6    7    8    9   10   11   12   13
  L1          6    4  187  456   22   89 1926 2636    1   18    2  476    2    0
  L2          3    0   22  537 4224    9 1016  101    1    5    0   14    3    0
  L3          8    0 2624   28    2 3228  204   49   12    0   53  134   85    1
  L4          0    0 1681   44    1  681  118   34    2    1 2720  641   82    2
  L5       1721    0   98  416    2   29  232   34 3032    0    8  181  269    0
  L6       2545    0   46 1557    2   60  110  175   31    0    0  547   75    0
  L7       2802    0  127 1242    6   28  155   68  174    0    1  683   45    0
  PBMC        1 2303    0    0   16    2   37  434    0 2302    2   37    5   32
  PBMC_10x    1 2590    0    0    0    0    4  158    0  725    0    5    0   22
#0.8
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$cell_line)
                   
                      L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
  B intermediate       0    0    2    1    2    2    0    0        0
  B memory             0    0   11    1   38   82  120    0        0
  CD14 Mono            0    0    1    0    5    0    6    0        0
  CD4 CTL              0    0    0    0    0    0    0   12        1
  CD4 Naive            0    0    0    7    0    0    0  523     1512
  CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
  CD4 TCM           3320  270  887  562  178  557  517 4576     1963
  CD4 TEM              1    0    0    0    0    0    0   60       23
  CD8 Proliferating    0    0    0    0    0    1    1    0        0
  CD8 TCM              1   16    0    0    0    0    0    0        0
  CD8 TEM              1    8    0    0    2    3    1    0        0
  cDC1                 0    0    0    0    2    6    0    0        0
  cDC2                 0    0    0    4   11    3   35    0        0
  dnT                  2    3    0    1    2    5    2    0        0
  HSPC                 0    0   60    7 1035  213  490    0        0
  NK Proliferating    38 2785    6   24   11  259   38    0        0
  Treg                 1    1    9    9    4   15    6    0        0
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$harmony_res_0.8)
                   
                       0    1    2    3    4    5    6    7    8    9   10   11   12   13   14
  B intermediate       0    0    0    0    0    1    2    0    0    0    0    0    1    3    0
  B memory            13   14    0    0    0    9   29    0    1    3    0    1  133   49    0
  CD14 Mono            0    0    0    0    0    0    0    0    0    0    0    0   11    0    1
  CD4 CTL              0    0    2    0    1    1    0    7    0    0    0    0    1    0    1
  CD4 Naive            0    0    2    0 1687   51    8  292    0    0    0    0    1    0    1
  CD4 Proliferating 4645 3634 1911 4012    1 1896 1257   26 3297 2341 2854 1960  241  936    0
  CD4 TCM            252  903   56    6 2532 1680 2401 3307   71   37   97   47 1217  172   52
  CD4 TEM              0    0    1    0   12    4    0   67    0    0    0    0    0    0    0
  CD8 Proliferating    0    0    0    0    0    0    0    0    0    0    0    0    1    1    0
  CD8 TCM              0    1    1    0    0    0   14    0    0    0    1    0    0    0    0
  CD8 TEM              0    0    0    0    0    4    5    0    0    0    0    0    6    0    0
  cDC1                 0    0    0    0    0    1    0    0    0    0    0    0    2    5    0
  cDC2                 2    0    0    0    0    0    2    0    0    1    0    0   41    5    2
  dnT                  1    1    0    0    0    8    0    0    0    0    0    0    5    0    0
  HSPC               968   39    2   15    0    9   42    0   52  626    1   14    2   35    0
  NK Proliferating   136    0 2438  374    0  111   41    5    5    7   23    0    2   19    0
  Treg                 0    0    0    0    0   41    3    0    0    0    1    0    0    0    0
table(All_samples_Merged$cell_line, All_samples_Merged$harmony_res_0.8)
          
              0    1    2    3    4    5    6    7    8    9   10   11   12   13   14
  L1          4  148   30  447    1 2706 1983   20   71    1    4   38  364    8    0
  L2          1   16 4355  575    0  136  732    5   11    1    1   93    6    3    0
  L3          8 2702    3   24    0   49  225    0 2810    4   77  404   19  102    1
  L4          0 1514    2   47    0   34  165    1  429    1 2885  260  397  270    2
  L5       1399   72    2  442    0   37  230    0   21 2800    7  565  148  299    0
  L6       2304   69    2 1493    0  176  185    0   49   27    0  268  151  424    0
  L7       2299   71    3 1379    0   74  245    0   33  181    1  394  547  104    0
  PBMC        1    0   16    0 1941  444   35 2656    2    0    2    0   27   15   32
  PBMC_10x    1    0    0    0 2291  160    4 1022    0    0    0    0    5    0   22
#0.9
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$cell_line)
                   
                      L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
  B intermediate       0    0    2    1    2    2    0    0        0
  B memory             0    0   11    1   38   82  120    0        0
  CD14 Mono            0    0    1    0    5    0    6    0        0
  CD4 CTL              0    0    0    0    0    0    0   12        1
  CD4 Naive            0    0    0    7    0    0    0  523     1512
  CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
  CD4 TCM           3320  270  887  562  178  557  517 4576     1963
  CD4 TEM              1    0    0    0    0    0    0   60       23
  CD8 Proliferating    0    0    0    0    0    1    1    0        0
  CD8 TCM              1   16    0    0    0    0    0    0        0
  CD8 TEM              1    8    0    0    2    3    1    0        0
  cDC1                 0    0    0    0    2    6    0    0        0
  cDC2                 0    0    0    4   11    3   35    0        0
  dnT                  2    3    0    1    2    5    2    0        0
  HSPC                 0    0   60    7 1035  213  490    0        0
  NK Proliferating    38 2785    6   24   11  259   38    0        0
  Treg                 1    1    9    9    4   15    6    0        0
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$harmony_res_0.9)
                   
                       0    1    2    3    4    5    6    7    8    9   10   11   12   13   14
  B intermediate       0    0    0    0    1    0    0    1    0    1    0    1    0    3    0
  B memory            14    5    0    0    6    0    0    8    0   20    3  141    0   55    0
  CD14 Mono            0    0    0    0    0    0    0    0    0    0    0   11    0    0    1
  CD4 CTL              0    0    2    0    0    0    7    0    0    1    0    2    0    0    1
  CD4 Naive            0    0    2 1769    3    0  210   51    0    5    0    1    0    0    1
  CD4 Proliferating 4478 4470 1855    1 3129 3612   25 1821 3221 1295 2532  248 1337  987    0
  CD4 TCM            253  361   49 2593 1187  116 3310 1508    8 1846   29 1306    4  208   52
  CD4 TEM              0    0    1   13    0    0   65    4    0    0    0    1    0    0    0
  CD8 Proliferating    0    0    0    0    0    0    0    0    0    0    0    1    0    1    0
  CD8 TCM              0    1    1    0   11    0    0    0    0    4    0    0    0    0    0
  CD8 TEM              0    0    0    0    1    0    0    4    0    4    0    6    0    0    0
  cDC1                 0    0    0    0    0    0    0    0    0    0    0    2    0    6    0
  cDC2                 3    0    0    0    0    0    0    0    0    0    1   43    0    4    2
  dnT                  0    0    0    0    0    0    0    8    0    0    0    6    0    1    0
  HSPC               976   66    2    0   33    2    0    7    5   33  626    3   14   38    0
  NK Proliferating   135    4 2561    0    0   22    4  101  177   78    7    2   47   23    0
  Treg                 0    0    0    0    0    1    0   41    0    3    0    0    0    0    0
table(All_samples_Merged$cell_line, All_samples_Merged$harmony_res_0.9)
          
              0    1    2    3    4    5    6    7    8    9   10   11   12   13   14
  L1          4  100   30    1  565    1   20 2587  444 1686    1  376    2    8    0
  L2          1   10 4409    0  133    0    4   97  381  885    2    7    3    3    0
  L3          2 3923    3    0 1974  141    0   48   31  165   10   21    0  109    1
  L4          0  722    4    0  782 3605    1   34   70  110    0  404    0  273    2
  L5       1344   32    1    0  326    2    0   32  332  167 3063  152  271  300    0
  L6       2298   75    3    0  242    2    0  150 1197  100   25  187  365  504    0
  L7       2208   43    7    0  325    0    0   68  955  160   97  593  761  114    0
  PBMC        1    2   16 1986   20    2 2671  381    0   17    0   28    0   15   32
  PBMC_10x    1    0    0 2389    4    0  925  157    1    0    0    6    0    0   22
#1
#0.9
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$cell_line)
                   
                      L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
  B intermediate       0    0    2    1    2    2    0    0        0
  B memory             0    0   11    1   38   82  120    0        0
  CD14 Mono            0    0    1    0    5    0    6    0        0
  CD4 CTL              0    0    0    0    0    0    0   12        1
  CD4 Naive            0    0    0    7    0    0    0  523     1512
  CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
  CD4 TCM           3320  270  887  562  178  557  517 4576     1963
  CD4 TEM              1    0    0    0    0    0    0   60       23
  CD8 Proliferating    0    0    0    0    0    1    1    0        0
  CD8 TCM              1   16    0    0    0    0    0    0        0
  CD8 TEM              1    8    0    0    2    3    1    0        0
  cDC1                 0    0    0    0    2    6    0    0        0
  cDC2                 0    0    0    4   11    3   35    0        0
  dnT                  2    3    0    1    2    5    2    0        0
  HSPC                 0    0   60    7 1035  213  490    0        0
  NK Proliferating    38 2785    6   24   11  259   38    0        0
  Treg                 1    1    9    9    4   15    6    0        0
table(All_samples_Merged$predicted.celltype.l2, All_samples_Merged$harmony_res_1)
                   
                       0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16
  B intermediate       0    0    0    0    1    0    0    2    0    0    0    0    1    3    0    0    0
  B memory            14    0    0    1   16    0    2   13    1    5    3    0  136   61    0    0    0
  CD14 Mono            0    0    0    0    0    0    0    0    0    0    0    0   11    0    0    0    1
  CD4 CTL              0    2    0    0    1    7    0    0    0    0    0    0    2    0    0    0    1
  CD4 Naive            0    3 1698    0   38  281    0    7    0    0    0    0    1    0    5    8    1
  CD4 Proliferating 4757 1788    1 3837 1921   26 3629 1431 2820 2730 2523 2163  227 1152    6    0    0
  CD4 TCM            286   66 2413   84 1745 3446  148 2050    6  689   26   11 1259  258  211   80   52
  CD4 TEM              0    1   11    0    3   67    0    0    0    0    0    0    2    0    0    0    0
  CD8 Proliferating    0    0    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
  CD8 TCM              0    1    0    1    0    0    0   15    0    0    0    0    0    0    0    0    0
  CD8 TEM              0    0    0    0    5    0    0    3    0    0    0    0    6    0    0    1    0
  cDC1                 0    0    0    0    0    0    0    0    0    0    0    0    2    6    0    0    0
  cDC2                 3    0    0    0    0    0    0    0    0    0    1    0   42    5    0    0    2
  dnT                  1    0    0    0    8    0    0    0    0    0    0    0    5    1    0    0    0
  HSPC               886    3    0   64   13    0    1   55   97   16  632    0    1   37    0    0    0
  NK Proliferating    25 2372    0    3  104    4   23   21  535    0    7   21    2   43    1    0    0
  Treg                 0    0    0    0   41    0    0    2    0    0    0    0    1    1    0    0    0
table(All_samples_Merged$cell_line, All_samples_Merged$harmony_res_1)
          
              0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16
  L1          2   32    1   73 3011   21    1 1660  179  110    1  340  378    8    8    0    0
  L2          2 4175    0    8  165    4    0  678  606   11    0  274    7    3    1    1    0
  L3          7    3    0 3219   57    0  136  446   15 2322    5   38   14  164    1    0    1
  L4          0    2    0  592   42    1 3654  158   28  833    6   27  368  293    1    0    2
  L5       1612    3    0   28   48    0    9  313  285   58 2983  207  147  329    0    0    0
  L6       1734    2    0   40  177    0    0  110 1569   35   22  709  175  575    0    0    0
  L7       2613    3    0   28  109    0    1  200  777   71  175  599  574  181    0    0    0
  PBMC        1   16 1862    2  192 2752    2   30    0    0    0    0   30   15  206   31   32
  PBMC_10x    1    0 2260    0   95 1053    0    4    0    0    0    1    6    0    6   57   22
LS0tCnRpdGxlOiAiRGlmZmVyZW50IGV2YWx1YXRpb24gdGVzdCBvbiBoYXJtb255IGludGVncmF0aW9uIG9uIHBhdGllbnQgb3JpZ2luIGFuZCBjZWxsX2xpbmUtdGhldGEtMC41IGJvdGgiCmF1dGhvcjogTmFzaXIgTWFobW9vZCBBYmJhc2kKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgI3JtZGZvcm1hdHM6OnJlYWR0aGVkb3duCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0b2NfY29sbGFwc2VkOiB0cnVlCi0tLQoKCiMgMS4gbG9hZCBsaWJyYXJpZXMKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KFNldXJhdFdyYXBwZXJzKQpsaWJyYXJ5KFNldXJhdE9iamVjdCkKbGlicmFyeShTZXVyYXREYXRhKQpsaWJyYXJ5KHBhdGNod29yaykKbGlicmFyeShoYXJtb255KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkocmV0aWN1bGF0ZSkKbGlicmFyeShBemltdXRoKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KFJ0c25lKQpsaWJyYXJ5KGhhcm1vbnkpCgoKYGBgCgoKCgojIDIuIExvYWQgU2V1cmF0IE9iamVjdCAKYGBge3IgbG9hZF9zZXVyYXQsIGZpZy5oZWlnaHQ9OCwgZmlnLndpZHRoPTEwfQoKI0xvYWQgU2V1cmF0IE9iamVjdCBtZXJnZWQgZnJvbSBjZWxsIGxpbmVzIGFuZCBhIGNvbnRyb2wgYWZ0ZXIgZmlsdHJhdGlvbgpsb2FkKCIuLi8wLVJfT2JqZWN0cy9DRDRUY2VsbHNfaGFybW9ueV9pbnRlZ3JhdGVkXzAuNV90aGV0YV9wYXRpZW50b3JpZ2luX2NlbGxfbGluZS5Sb2JqIikKCmBgYAoKCiMgMy4gSGFybW9ueSBWaXN1YWxpemF0aW9uCmBgYHtyIFYxLCBmaWcuaGVpZ2h0PTgsIGZpZy53aWR0aD0xMH0KCkRpbVBsb3QoQWxsX3NhbXBsZXNfTWVyZ2VkLCAKICAgICAgICAgICAgICByZWR1Y3Rpb24gPSAidW1hcCIsIAogICAgICAgICAgICAgIGdyb3VwLmJ5ID0gImNlbGxfbGluZSIsCiAgICAgICAgICAgICAgbGFiZWwgPSBUUlVFLCAKICAgICAgICAgICAgICBsYWJlbC5ib3ggPSBUUlVFKSAKICAgIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC4xIiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC4yIiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC4zIiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC40IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC41IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC42IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC43IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC44IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMC45IiwKICAgICAgICAgICAgICBsYWJlbCA9IFRSVUUsIAogICAgICAgICAgICAgIGxhYmVsLmJveCA9IFRSVUUpIAoKRGltUGxvdChBbGxfc2FtcGxlc19NZXJnZWQsIAogICAgICAgICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwgCiAgICAgICAgICAgICAgZ3JvdXAuYnkgPSAiaGFybW9ueV9yZXNfMSIsCiAgICAgICAgICAgICAgbGFiZWwgPSBUUlVFLCAKICAgICAgICAgICAgICBsYWJlbC5ib3ggPSBUUlVFKSAKCkRpbVBsb3QoQWxsX3NhbXBsZXNfTWVyZ2VkLCAKICAgICAgICAgICAgICByZWR1Y3Rpb24gPSAidW1hcCIsIAogICAgICAgICAgICAgIGdyb3VwLmJ5ID0gImhhcm1vbnlfcmVzXzEuMiIsCiAgICAgICAgICAgICAgbGFiZWwgPSBUUlVFLCAKICAgICAgICAgICAgICBsYWJlbC5ib3ggPSBUUlVFKSAKCkRpbVBsb3QoQWxsX3NhbXBsZXNfTWVyZ2VkLCAKICAgICAgICAgICAgICByZWR1Y3Rpb24gPSAidW1hcCIsIAogICAgICAgICAgICAgIGdyb3VwLmJ5ID0gInByZWRpY3RlZC5jZWxsdHlwZS5sMSIsCiAgICAgICAgICAgICAgbGFiZWwgPSBUUlVFLCAKICAgICAgICAgICAgICBsYWJlbC5ib3ggPSBUUlVFKSAKCgpEaW1QbG90KEFsbF9zYW1wbGVzX01lcmdlZCwgCiAgICAgICAgICAgICAgcmVkdWN0aW9uID0gInVtYXAiLCAKICAgICAgICAgICAgICBncm91cC5ieSA9ICJwcmVkaWN0ZWQuY2VsbHR5cGUubDIiLAogICAgICAgICAgICAgIGxhYmVsID0gVFJVRSwgCiAgICAgICAgICAgICAgbGFiZWwuYm94ID0gVFJVRSkgCgpEaW1QbG90KEFsbF9zYW1wbGVzX01lcmdlZCwgCiAgICAgICAgICAgICAgcmVkdWN0aW9uID0gInVtYXAiLCAKICAgICAgICAgICAgICBncm91cC5ieSA9ICJwcmVkaWN0ZWQuY2VsbHR5cGUubDMiLAogICAgICAgICAgICAgIGxhYmVsID0gVFJVRSwgCiAgICAgICAgICAgICAgbGFiZWwuYm94ID0gVFJVRSkgCgpgYGAKCiMgNC4gY2x1c1RyZWUKYGBge3IgY2x1c1RyZWUsIGZpZy5oZWlnaHQ9MTIsIGZpZy53aWR0aD0xMH0KbGlicmFyeShjbHVzdHJlZSkKY2x1c3RyZWUoQWxsX3NhbXBsZXNfTWVyZ2VkLCBwcmVmaXggPSAiaGFybW9ueV9yZXNfIikKYGBgCgoKCiMjICBWaXN1YWxpemUgSGFybW9ueSBJbnRlZ3JhdGVkIERhdGEgZGlzdHJpYnV0aW9uCmBgYHtyIGhhcm1vbnktdGFibGVzLCBmaWcuaGVpZ2h0PTgsIGZpZy53aWR0aD0xMn0KCiMwLjYKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMiwgQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSkKCnRhYmxlKEFsbF9zYW1wbGVzX01lcmdlZCRwcmVkaWN0ZWQuY2VsbHR5cGUubDIsIEFsbF9zYW1wbGVzX01lcmdlZCRoYXJtb255X3Jlc18wLjYpCgp0YWJsZShBbGxfc2FtcGxlc19NZXJnZWQkY2VsbF9saW5lLCBBbGxfc2FtcGxlc19NZXJnZWQkaGFybW9ueV9yZXNfMC42KQoKCiMwLjcKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMiwgQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSkKCnRhYmxlKEFsbF9zYW1wbGVzX01lcmdlZCRwcmVkaWN0ZWQuY2VsbHR5cGUubDIsIEFsbF9zYW1wbGVzX01lcmdlZCRoYXJtb255X3Jlc18wLjcpCgp0YWJsZShBbGxfc2FtcGxlc19NZXJnZWQkY2VsbF9saW5lLCBBbGxfc2FtcGxlc19NZXJnZWQkaGFybW9ueV9yZXNfMC43KQoKIzAuOAp0YWJsZShBbGxfc2FtcGxlc19NZXJnZWQkcHJlZGljdGVkLmNlbGx0eXBlLmwyLCBBbGxfc2FtcGxlc19NZXJnZWQkY2VsbF9saW5lKQoKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMiwgQWxsX3NhbXBsZXNfTWVyZ2VkJGhhcm1vbnlfcmVzXzAuOCkKCnRhYmxlKEFsbF9zYW1wbGVzX01lcmdlZCRjZWxsX2xpbmUsIEFsbF9zYW1wbGVzX01lcmdlZCRoYXJtb255X3Jlc18wLjgpCgoKCiMwLjkKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMiwgQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSkKCnRhYmxlKEFsbF9zYW1wbGVzX01lcmdlZCRwcmVkaWN0ZWQuY2VsbHR5cGUubDIsIEFsbF9zYW1wbGVzX01lcmdlZCRoYXJtb255X3Jlc18wLjkpCgp0YWJsZShBbGxfc2FtcGxlc19NZXJnZWQkY2VsbF9saW5lLCBBbGxfc2FtcGxlc19NZXJnZWQkaGFybW9ueV9yZXNfMC45KQoKCiMxCiMwLjkKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMiwgQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSkKCnRhYmxlKEFsbF9zYW1wbGVzX01lcmdlZCRwcmVkaWN0ZWQuY2VsbHR5cGUubDIsIEFsbF9zYW1wbGVzX01lcmdlZCRoYXJtb255X3Jlc18xKQoKdGFibGUoQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSwgQWxsX3NhbXBsZXNfTWVyZ2VkJGhhcm1vbnlfcmVzXzEpCgoKCgoKCmBgYAoKCgoK