bartowski commited on
Commit
011d18c
1 Parent(s): 9018fde

Llamacpp quants

Browse files
.gitattributes CHANGED
@@ -33,3 +33,27 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ CodeLlama-7B-KStack-clean-IQ1_M.gguf filter=lfs diff=lfs merge=lfs -text
37
+ CodeLlama-7B-KStack-clean-IQ1_S.gguf filter=lfs diff=lfs merge=lfs -text
38
+ CodeLlama-7B-KStack-clean-IQ2_M.gguf filter=lfs diff=lfs merge=lfs -text
39
+ CodeLlama-7B-KStack-clean-IQ2_S.gguf filter=lfs diff=lfs merge=lfs -text
40
+ CodeLlama-7B-KStack-clean-IQ2_XS.gguf filter=lfs diff=lfs merge=lfs -text
41
+ CodeLlama-7B-KStack-clean-IQ2_XXS.gguf filter=lfs diff=lfs merge=lfs -text
42
+ CodeLlama-7B-KStack-clean-IQ3_M.gguf filter=lfs diff=lfs merge=lfs -text
43
+ CodeLlama-7B-KStack-clean-IQ3_S.gguf filter=lfs diff=lfs merge=lfs -text
44
+ CodeLlama-7B-KStack-clean-IQ3_XS.gguf filter=lfs diff=lfs merge=lfs -text
45
+ CodeLlama-7B-KStack-clean-IQ3_XXS.gguf filter=lfs diff=lfs merge=lfs -text
46
+ CodeLlama-7B-KStack-clean-IQ4_NL.gguf filter=lfs diff=lfs merge=lfs -text
47
+ CodeLlama-7B-KStack-clean-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
48
+ CodeLlama-7B-KStack-clean-Q2_K.gguf filter=lfs diff=lfs merge=lfs -text
49
+ CodeLlama-7B-KStack-clean-Q3_K_L.gguf filter=lfs diff=lfs merge=lfs -text
50
+ CodeLlama-7B-KStack-clean-Q3_K_M.gguf filter=lfs diff=lfs merge=lfs -text
51
+ CodeLlama-7B-KStack-clean-Q3_K_S.gguf filter=lfs diff=lfs merge=lfs -text
52
+ CodeLlama-7B-KStack-clean-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
53
+ CodeLlama-7B-KStack-clean-Q4_K_S.gguf filter=lfs diff=lfs merge=lfs -text
54
+ CodeLlama-7B-KStack-clean-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
55
+ CodeLlama-7B-KStack-clean-Q5_K_S.gguf filter=lfs diff=lfs merge=lfs -text
56
+ CodeLlama-7B-KStack-clean-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
57
+ CodeLlama-7B-KStack-clean-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
58
+ CodeLlama-7B-KStack-clean-f32.gguf filter=lfs diff=lfs merge=lfs -text
59
+ CodeLlama-7B-KStack-clean.imatrix filter=lfs diff=lfs merge=lfs -text
CodeLlama-7B-KStack-clean-IQ1_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b65bd6f89a1d3318eacb3602c0907849a74de3b07d79a54cae1edb07df860f6
3
+ size 1651037984
CodeLlama-7B-KStack-clean-IQ1_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6328c750851e82bec257a2e1edc4876300861649c62b819e6b9bdc8bec5f67b6
3
+ size 1528649504
CodeLlama-7B-KStack-clean-IQ2_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b99b711ec37b92e2477eb50101bfce8833093b093ccfad9e1f077ec1e28f05a2
3
+ size 2359824672
CodeLlama-7B-KStack-clean-IQ2_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:90ff63677253456dc8b92cd2b6ac52d6860038cf51dce63c25f6d3431bce3696
3
+ size 2196640032
CodeLlama-7B-KStack-clean-IQ2_XS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2c5092329c5ed8eb63356d485d1b89ce1588c79325ae98c689b9ba1a891f619
3
+ size 2034980640
CodeLlama-7B-KStack-clean-IQ2_XXS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80c5ff622bbd3f7832a1a759c43c971b03cf88071b98ea39f4fbb82731e69432
3
+ size 1855018784
CodeLlama-7B-KStack-clean-IQ3_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ab2ee0825f6ad7f897d294cbc995928f3036302c3fe6e36375da276e86ec58e7
3
+ size 3114947360
CodeLlama-7B-KStack-clean-IQ3_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c3545244ccd766c8e21aa1d9775f11b748480c20d008c17b2dc992565f911dd1
3
+ size 2948387616
CodeLlama-7B-KStack-clean-IQ3_XS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:385fc1164fadc75294ae5f2bd9afa4a3ed0bb20192e8b725047f748ae557eda4
3
+ size 2796606240
CodeLlama-7B-KStack-clean-IQ3_XXS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ab5d7bd736d36eb36c1f7debc5093a3fa21af6aa6e210b8e77900af495e1267f
3
+ size 2585465120
CodeLlama-7B-KStack-clean-IQ4_NL.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fe3dcc4ef77ff3e2aa30d395102c204708601604e91208c52c5fc739bf9c1f8f
3
+ size 3825898784
CodeLlama-7B-KStack-clean-IQ4_XS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:78c6df8d053258f105b2a4bbf97f800c528bc5afac3b6e60da5ea1e30959c55e
3
+ size 3619425568
CodeLlama-7B-KStack-clean-Q2_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e9e51088b03a4fa9400aee153db6b07d00ba3d402a0119203b995ddd8bbf0b3
3
+ size 2532940064
CodeLlama-7B-KStack-clean-Q3_K_L.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e31e97fffa939d0332e2c3fc152b821c96060339282ee449acfa0748ad0d5cde
3
+ size 3597194016
CodeLlama-7B-KStack-clean-Q3_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6cdf05947056cfc55f9dad8cd2c7fecf8be4a963ca296d126b93260ba1afc28e
3
+ size 3298087712
CodeLlama-7B-KStack-clean-Q3_K_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb8f888a59b543b081689bff11e68a1936d471afb1b919bea737a91c022af6f1
3
+ size 2948387616
CodeLlama-7B-KStack-clean-Q4_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:02b84b0eb68cdadcfe6d4ade0e415b6cd8cc7a87ab46f3a0acf58db2117975f8
3
+ size 4081095968
CodeLlama-7B-KStack-clean-Q4_K_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:78da25a254eb95146ad54cc3b3e434d5a0776d73eaa247312516aada81213716
3
+ size 3856831776
CodeLlama-7B-KStack-clean-Q5_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9ed985d56b3e8af1f48ea459f57758615e05adfeffb026fa0d32d8c31ca601da
3
+ size 4783256864
CodeLlama-7B-KStack-clean-Q5_K_S.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef643663f1459ae9afd403eec6b62968fa42b37e305cf66cda36dca391c3ea81
3
+ size 4651791648
CodeLlama-7B-KStack-clean-Q6_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6fec8d61add2c470371d63f9c202e5ad58cc1ab69dd684fb071df95f6d331069
3
+ size 5529302816
CodeLlama-7B-KStack-clean-Q8_0.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9f61c8754ce895e8e381f4b67994b446d0e5d8f13eeeb1ea7f21eba8936da03f
3
+ size 7161230112
CodeLlama-7B-KStack-clean-f32.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b9916f768d340f136212df1fc485f47e1f7435b40003619440e81d58ede9b6de
3
+ size 26954928640
CodeLlama-7B-KStack-clean.imatrix ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bdbe82f8b16c2817e73375ce8e396b8751248d14c201b3e3be995cd226d59ee3
3
+ size 4562185
README.md ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ datasets:
4
+ - JetBrains/KStack-clean
5
+ base_model: meta-llama/CodeLlama-7b-hf
6
+ results:
7
+ - task:
8
+ type: text-generation
9
+ dataset:
10
+ name: MultiPL-HumanEval (Kotlin)
11
+ type: openai_humaneval
12
+ metrics:
13
+ - name: pass@1
14
+ type: pass@1
15
+ value: 37.89
16
+ tags:
17
+ - code
18
+ quantized_by: bartowski
19
+ pipeline_tag: text-generation
20
+ ---
21
+
22
+ ## Llamacpp imatrix Quantizations of CodeLlama-7B-KStack-clean
23
+
24
+ Using <a href="https://github.com/ggerganov/llama.cpp/">llama.cpp</a> release <a href="https://github.com/ggerganov/llama.cpp/releases/tag/b2965">b2965</a> for quantization.
25
+
26
+ Original model: https://huggingface.co/JetBrains/CodeLlama-7B-KStack-clean
27
+
28
+ All quants made using imatrix option with dataset from [here](https://gist.github.com/bartowski1182/b6ac44691e994344625687afe3263b3a)
29
+
30
+ ## Prompt format
31
+
32
+ No chat template specified so default is used. This may be incorrect, check original model card for details.
33
+
34
+ ```
35
+ <s> [INST] <<SYS>>
36
+ {system_prompt}
37
+ <</SYS>>
38
+
39
+ {prompt} [/INST] </s>
40
+ ```
41
+
42
+ ## Download a file (not the whole branch) from below:
43
+
44
+ | Filename | Quant type | File Size | Description |
45
+ | -------- | ---------- | --------- | ----------- |
46
+ | [CodeLlama-7B-KStack-clean-Q8_0.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q8_0.gguf) | Q8_0 | 7.16GB | Extremely high quality, generally unneeded but max available quant. |
47
+ | [CodeLlama-7B-KStack-clean-Q6_K.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q6_K.gguf) | Q6_K | 5.52GB | Very high quality, near perfect, *recommended*. |
48
+ | [CodeLlama-7B-KStack-clean-Q5_K_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q5_K_M.gguf) | Q5_K_M | 4.78GB | High quality, *recommended*. |
49
+ | [CodeLlama-7B-KStack-clean-Q5_K_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q5_K_S.gguf) | Q5_K_S | 4.65GB | High quality, *recommended*. |
50
+ | [CodeLlama-7B-KStack-clean-Q4_K_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q4_K_M.gguf) | Q4_K_M | 4.08GB | Good quality, uses about 4.83 bits per weight, *recommended*. |
51
+ | [CodeLlama-7B-KStack-clean-Q4_K_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q4_K_S.gguf) | Q4_K_S | 3.85GB | Slightly lower quality with more space savings, *recommended*. |
52
+ | [CodeLlama-7B-KStack-clean-IQ4_NL.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ4_NL.gguf) | IQ4_NL | 3.82GB | Decent quality, slightly smaller than Q4_K_S with similar performance *recommended*. |
53
+ | [CodeLlama-7B-KStack-clean-IQ4_XS.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ4_XS.gguf) | IQ4_XS | 3.61GB | Decent quality, smaller than Q4_K_S with similar performance, *recommended*. |
54
+ | [CodeLlama-7B-KStack-clean-Q3_K_L.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q3_K_L.gguf) | Q3_K_L | 3.59GB | Lower quality but usable, good for low RAM availability. |
55
+ | [CodeLlama-7B-KStack-clean-Q3_K_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q3_K_M.gguf) | Q3_K_M | 3.29GB | Even lower quality. |
56
+ | [CodeLlama-7B-KStack-clean-IQ3_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ3_M.gguf) | IQ3_M | 3.11GB | Medium-low quality, new method with decent performance comparable to Q3_K_M. |
57
+ | [CodeLlama-7B-KStack-clean-IQ3_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ3_S.gguf) | IQ3_S | 2.94GB | Lower quality, new method with decent performance, recommended over Q3_K_S quant, same size with better performance. |
58
+ | [CodeLlama-7B-KStack-clean-Q3_K_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q3_K_S.gguf) | Q3_K_S | 2.94GB | Low quality, not recommended. |
59
+ | [CodeLlama-7B-KStack-clean-IQ3_XS.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ3_XS.gguf) | IQ3_XS | 2.79GB | Lower quality, new method with decent performance, slightly better than Q3_K_S. |
60
+ | [CodeLlama-7B-KStack-clean-IQ3_XXS.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ3_XXS.gguf) | IQ3_XXS | 2.58GB | Lower quality, new method with decent performance, comparable to Q3 quants. |
61
+ | [CodeLlama-7B-KStack-clean-Q2_K.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-Q2_K.gguf) | Q2_K | 2.53GB | Very low quality but surprisingly usable. |
62
+ | [CodeLlama-7B-KStack-clean-IQ2_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ2_M.gguf) | IQ2_M | 2.35GB | Very low quality, uses SOTA techniques to also be surprisingly usable. |
63
+ | [CodeLlama-7B-KStack-clean-IQ2_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ2_S.gguf) | IQ2_S | 2.19GB | Very low quality, uses SOTA techniques to be usable. |
64
+ | [CodeLlama-7B-KStack-clean-IQ2_XS.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ2_XS.gguf) | IQ2_XS | 2.03GB | Very low quality, uses SOTA techniques to be usable. |
65
+ | [CodeLlama-7B-KStack-clean-IQ2_XXS.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ2_XXS.gguf) | IQ2_XXS | 1.85GB | Lower quality, uses SOTA techniques to be usable. |
66
+ | [CodeLlama-7B-KStack-clean-IQ1_M.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ1_M.gguf) | IQ1_M | 1.65GB | Extremely low quality, *not* recommended. |
67
+ | [CodeLlama-7B-KStack-clean-IQ1_S.gguf](https://huggingface.co/bartowski/CodeLlama-7B-KStack-clean-GGUF/blob/main/CodeLlama-7B-KStack-clean-IQ1_S.gguf) | IQ1_S | 1.52GB | Extremely low quality, *not* recommended. |
68
+
69
+ ## Downloading using huggingface-cli
70
+
71
+ First, make sure you have hugginface-cli installed:
72
+
73
+ ```
74
+ pip install -U "huggingface_hub[cli]"
75
+ ```
76
+
77
+ Then, you can target the specific file you want:
78
+
79
+ ```
80
+ huggingface-cli download bartowski/CodeLlama-7B-KStack-clean-GGUF --include "CodeLlama-7B-KStack-clean-Q4_K_M.gguf" --local-dir ./
81
+ ```
82
+
83
+ If the model is bigger than 50GB, it will have been split into multiple files. In order to download them all to a local folder, run:
84
+
85
+ ```
86
+ huggingface-cli download bartowski/CodeLlama-7B-KStack-clean-GGUF --include "CodeLlama-7B-KStack-clean-Q8_0.gguf/*" --local-dir CodeLlama-7B-KStack-clean-Q8_0
87
+ ```
88
+
89
+ You can either specify a new local-dir (CodeLlama-7B-KStack-clean-Q8_0) or download them all in place (./)
90
+
91
+ ## Which file should I choose?
92
+
93
+ A great write up with charts showing various performances is provided by Artefact2 [here](https://gist.github.com/Artefact2/b5f810600771265fc1e39442288e8ec9)
94
+
95
+ The first thing to figure out is how big a model you can run. To do this, you'll need to figure out how much RAM and/or VRAM you have.
96
+
97
+ If you want your model running as FAST as possible, you'll want to fit the whole thing on your GPU's VRAM. Aim for a quant with a file size 1-2GB smaller than your GPU's total VRAM.
98
+
99
+ If you want the absolute maximum quality, add both your system RAM and your GPU's VRAM together, then similarly grab a quant with a file size 1-2GB Smaller than that total.
100
+
101
+ Next, you'll need to decide if you want to use an 'I-quant' or a 'K-quant'.
102
+
103
+ If you don't want to think too much, grab one of the K-quants. These are in format 'QX_K_X', like Q5_K_M.
104
+
105
+ If you want to get more into the weeds, you can check out this extremely useful feature chart:
106
+
107
+ [llama.cpp feature matrix](https://github.com/ggerganov/llama.cpp/wiki/Feature-matrix)
108
+
109
+ But basically, if you're aiming for below Q4, and you're running cuBLAS (Nvidia) or rocBLAS (AMD), you should look towards the I-quants. These are in format IQX_X, like IQ3_M. These are newer and offer better performance for their size.
110
+
111
+ These I-quants can also be used on CPU and Apple Metal, but will be slower than their K-quant equivalent, so speed vs performance is a tradeoff you'll have to decide.
112
+
113
+ The I-quants are *not* compatible with Vulcan, which is also AMD, so if you have an AMD card double check if you're using the rocBLAS build or the Vulcan build. At the time of writing this, LM Studio has a preview with ROCm support, and other inference engines have specific builds for ROCm.
114
+
115
+ Want to support my work? Visit my ko-fi page here: https://ko-fi.com/bartowski