gwd200 commited on
Commit
e55fd70
·
verified ·
1 Parent(s): e5719b8

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/config.yaml +115 -0
  2. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-0.pt +3 -0
  3. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-1.pt +3 -0
  4. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-10.pt +3 -0
  5. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-11.pt +3 -0
  6. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-12.pt +3 -0
  7. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-13.pt +3 -0
  8. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-14.pt +3 -0
  9. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-15.pt +3 -0
  10. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-16.pt +3 -0
  11. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-17.pt +3 -0
  12. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-18.pt +3 -0
  13. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-19.pt +3 -0
  14. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-2.pt +3 -0
  15. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-3.pt +3 -0
  16. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-4.pt +3 -0
  17. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-5.pt +3 -0
  18. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-6.pt +3 -0
  19. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-7.pt +3 -0
  20. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-8.pt +3 -0
  21. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-9.pt +3 -0
  22. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/info.json +12 -0
  23. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_31.png +0 -0
  24. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_32.png +0 -0
  25. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_33.png +0 -0
  26. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_31.png +0 -0
  27. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_32.png +0 -0
  28. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_33.png +0 -0
  29. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/info.json +12 -0
  30. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_31.png +0 -0
  31. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_32.png +0 -0
  32. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_33.png +0 -0
  33. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_31.png +0 -0
  34. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_32.png +0 -0
  35. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_33.png +0 -0
  36. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/info.json +12 -0
  37. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_31.png +0 -0
  38. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_32.png +0 -0
  39. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_33.png +0 -0
  40. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_31.png +0 -0
  41. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_32.png +0 -0
  42. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_33.png +0 -0
  43. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/info.json +12 -0
  44. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_31.png +0 -0
  45. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_32.png +0 -0
  46. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_33.png +0 -0
  47. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_31.png +0 -0
  48. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_32.png +0 -0
  49. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_33.png +0 -0
  50. ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_12/info.json +12 -0
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/config.yaml ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ dataset:
2
+ root_dir: /mnt/cvlab/scratch/cvlab/home/hantzhan/data/ts/TS_heart_cropped_resize_train
3
+ name: ts_latent
4
+ roi_x: 64
5
+ roi_y: 64
6
+ roi_z: 64
7
+ batch_size: 12
8
+ num_workers: 16
9
+ check_data_integrity: false
10
+ dist: false
11
+ diffusion_img_size: 64
12
+ diffusion_depth_size: 64
13
+ model:
14
+ diffusion_num_channels: 1
15
+ diffusion_dim: 64
16
+ out_dim: 7
17
+ dim_mults:
18
+ - 1
19
+ - 2
20
+ - 4
21
+ - 8
22
+ use_bert_text_cond: false
23
+ use_mask_cond: false
24
+ use_mask_guide: false
25
+ results_folder: EXP/ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft
26
+ results_folder_postfix: ts_hybrid_diffusion_swinunetr_objv_nofft
27
+ load_milestone: false
28
+ batch_size: 12
29
+ num_workers: 2
30
+ logger: wandb
31
+ objective: v
32
+ save_and_sample_every: 10000
33
+ denoising_fn: hybrid_swinunetr
34
+ train_lr: 0.0001
35
+ timesteps: 100
36
+ loss_type: l1
37
+ train_num_steps: 200000
38
+ gradient_accumulate_every: 2
39
+ ema_decay: 0.995
40
+ amp: false
41
+ num_sample_rows: 4
42
+ gpus: 0
43
+ world_size: 4
44
+ img_channels: 1
45
+ mask_channels: 6
46
+ img_resolution: 64
47
+ mask_resolution: 64
48
+ base_resolution: 64
49
+ attn_heads: 8
50
+ attn_dim_head: 32
51
+ resnet_groups: 8
52
+ residual_scale_init: 0.1
53
+ img_loss_weight: 1.0
54
+ mask_loss_weight: 1.0
55
+ use_decoder_fusion: false
56
+ sdf_pyramid_antialias: true
57
+ sdf_pyramid_base_ch: 48
58
+ sdf_tau_vox: 20
59
+ use_space_to_depth_sdf: true
60
+ space_to_depth_out_ch: 64
61
+ use_edge_aware_gate: true
62
+ edge_gate_mode: channel
63
+ use_t_aware_gate: true
64
+ use_laplacian_pyramid: false
65
+ use_scale_aware_film: false
66
+ aux_losses:
67
+ sign_narrowband: false
68
+ multiscale_consistency: false
69
+ eikonal_light: false
70
+ tau_vox: 3
71
+ lambdas:
72
+ sign: 0.1
73
+ ms: 0.05
74
+ eik: 0.05
75
+ use_dmfft_img: false
76
+ use_dmfft_seg: false
77
+ lr_decay: false
78
+ stage_two: false
79
+ mm_dit:
80
+ model_config: MM-DiT-XL
81
+ fusion_type: adaptive_film
82
+ conditioning_type: film
83
+ use_flash_attn: true
84
+ use_rope: false
85
+ patch_size: 2
86
+ enable_test_callback: true
87
+ test_callback_max_samples: 2
88
+ test_callback_z_indices: null
89
+ vae:
90
+ embed_dim: 8
91
+ n_embed: 512
92
+ pvqvae_ckpt: pretrained_models/pvqvae.pth
93
+ ddconfig:
94
+ double_z: true
95
+ z_channels: 8
96
+ resolution: 64
97
+ in_channels: 1
98
+ out_ch: 1
99
+ ch: 32
100
+ ch_mult:
101
+ - 1
102
+ - 2
103
+ - 4
104
+ - 4
105
+ num_res_blocks: 2
106
+ attn_resolutions: []
107
+ dropout: 0.0
108
+ vqgan:
109
+ enabled: false
110
+ ckpt_path: pretrained_models/vqgan.ckpt
111
+ input_size: 64
112
+ latent_size: 16
113
+ latent_channels: 8
114
+ normalize_latents: true
115
+ seed: 42
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-0.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6874af38695d9308064eb5a1617f37641e2e7d719f8572d1f15204f5e03d14e2
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-1.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a2d9968e3e0130fcd368700dee1e433d5e96d55d0ec060cd40e00ccb3cd5176f
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-10.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ed882847cd8e2d95815ab1a3eed297619f42769f4efb205119a8df6f1ce1774
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-11.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:464d4b234ee03da93dd2b7c2486bfd8483a3f52942dda61f8e83c5002e7ad23a
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-12.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c39c2012a68889c972f57483ebddd7332a0595f6bd91ff5d1888fe1bd58cecd7
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-13.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3556e984b1aacf9c67de580d61f374060eef5349c5c88f76d7f9cfc5b2df7849
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-14.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d3ce2295eebfb496c99015b96503d53e50bf8ff62f97fcb4d0a477092a43d42
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-15.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:45988afab906fac7e15a69e444996311e275b9074cb1d9706c63f7fc88b8f23e
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-16.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5594ac2baa468b297d009451b2029536dafd1a020dd9872e0d1319688b43b2a1
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-17.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c324b86b7f8a13cf6ce9a56ff6141e85c8a69e74ff582b804e7a890722eddd94
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-18.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0664671241dd442ea74810ae8e86e00efe65691a3f9de07af3cd4cc468bca204
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-19.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29f29404e6d767aff85a810b6e094b9354f55193d9cfbbbf65e113534fda9b86
3
+ size 864454686
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-2.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:923c949080ba388b10fbcd3c4ef73220c3ca2082be2af47db752f70e05c8d8cd
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-3.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:62135885db027d28b21806a471a5d9e5f442b32cbcbe949c7da3696799deef12
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-4.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fd353a99f55d7499fd545b63a6177424164560adabb849b9b6dbbd76880ea52b
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-5.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29c8a6d1cd863189f26e970e63380b89fdb1e463c7bf63bfc8639ecaacf5bb33
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-6.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a270d44eaf6a9c81df98f2bf38133ce5e34f24072667792faf72b704fc49ef4
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-7.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e14209a67e2013f7a73f1243343957a944178da695b5b8a30c53506139dcfc10
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-8.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:58316eddbf68dd07e1ce849af3fad6cf56e8cd2357c1a6bc763ae801104251d9
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/model-9.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a519a7e60a96f6eb97f2163dc2f429ae2a3e45de89cb42d77d901dd0d108738e
3
+ size 864453250
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/info.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "milestone": 0,
3
+ "task_type": "unconditional",
4
+ "num_samples": 2,
5
+ "generated_shape": [
6
+ 2,
7
+ 2,
8
+ 64,
9
+ 64,
10
+ 64
11
+ ]
12
+ }
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_0_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_0/sample_1_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/info.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "milestone": 1,
3
+ "task_type": "unconditional",
4
+ "num_samples": 2,
5
+ "generated_shape": [
6
+ 2,
7
+ 2,
8
+ 64,
9
+ 64,
10
+ 64
11
+ ]
12
+ }
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_0_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_1/sample_1_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/info.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "milestone": 10,
3
+ "task_type": "unconditional",
4
+ "num_samples": 2,
5
+ "generated_shape": [
6
+ 2,
7
+ 2,
8
+ 64,
9
+ 64,
10
+ 64
11
+ ]
12
+ }
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_0_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_10/sample_1_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/info.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "milestone": 11,
3
+ "task_type": "unconditional",
4
+ "num_samples": 2,
5
+ "generated_shape": [
6
+ 2,
7
+ 2,
8
+ 64,
9
+ 64,
10
+ 64
11
+ ]
12
+ }
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_0_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_31.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_32.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_11/sample_1_z_33.png ADDED
ts_latent/ts_hybrid_diffusion_swinunetr_objv_nofft/test_callback/milestone_12/info.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "milestone": 12,
3
+ "task_type": "unconditional",
4
+ "num_samples": 2,
5
+ "generated_shape": [
6
+ 2,
7
+ 2,
8
+ 64,
9
+ 64,
10
+ 64
11
+ ]
12
+ }