From e2b8fab8a079f0f7519f8d7b5142b6a5f16ea4c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nils=20Petter=20Sk=C3=A5lerud?= <np_skalerud@hotmail.com>
Date: Mon, 8 Apr 2019 01:36:04 +0200
Subject: [PATCH] Removed LibKTX as a dependency. Project now uses DTex for
 texture importing, added as submodule. Added Vulkan-Headers as submdoule for
 future development. Removed all internal TextureDocument structs. DTex will
 be favored. Worked on getting compressed textures to work.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Nils Petter Skålerud <np_skalerud@hotmail.com>
---
 .gitmodules                                   |    8 +
 CMakeLists.txt                                |    1 -
 CMakeSettings.json                            |   29 +-
 Data/Textures/test3.ktx                       |  Bin 0 -> 1398236 bytes
 external/CMakeLists.txt                       |   29 +-
 external/DTex                                 |    1 +
 external/KTX-Software-master/BUILDING.md      |  409 ---
 .../KTX-Software-master/CODE_OF_CONDUCT.md    |    1 -
 external/KTX-Software-master/CONTRIBUTING.md  |   12 -
 external/KTX-Software-master/LICENSE.md       |  228 --
 external/KTX-Software-master/NOTICE.md        |    1 -
 external/KTX-Software-master/README.md        |   72 -
 external/KTX-Software-master/include/ktx.h    |  845 ------
 .../KTX-Software-master/lib/checkheader.c     |  172 --
 external/KTX-Software-master/lib/errstr.c     |   70 -
 external/KTX-Software-master/lib/etcdec.cxx   | 1845 -------------
 .../KTX-Software-master/lib/etcunpack.cxx     |  288 --
 external/KTX-Software-master/lib/filestream.c |  324 ---
 external/KTX-Software-master/lib/filestream.h |   39 -
 external/KTX-Software-master/lib/gl_format.h  | 2456 -----------------
 .../KTX-Software-master/lib/gl_funcptrs.h     |   69 -
 .../KTX-Software-master/lib/gles1_funcptrs.h  |   68 -
 .../KTX-Software-master/lib/gles2_funcptrs.h  |   67 -
 .../KTX-Software-master/lib/gles3_funcptrs.h  |   72 -
 external/KTX-Software-master/lib/glloader.c   | 1115 --------
 external/KTX-Software-master/lib/hashlist.c   |  344 ---
 external/KTX-Software-master/lib/hashtable.c  |   97 -
 external/KTX-Software-master/lib/ktxgl.h      |  228 --
 external/KTX-Software-master/lib/ktxint.h     |  205 --
 external/KTX-Software-master/lib/libktx.gypi  |  226 --
 external/KTX-Software-master/lib/mainpage.md  |  214 --
 external/KTX-Software-master/lib/memstream.c  |  588 ----
 external/KTX-Software-master/lib/memstream.h  |   55 -
 external/KTX-Software-master/lib/stream.h     |  137 -
 external/KTX-Software-master/lib/swap.c       |   52 -
 external/KTX-Software-master/lib/texture.c    | 1636 -----------
 external/KTX-Software-master/lib/uthash.h     |  960 -------
 external/KTX-Software-master/lib/vk_format.h  | 1371 ---------
 .../KTX-Software-master/lib/vk_funclist.inl   |   55 -
 external/KTX-Software-master/lib/vk_funcs.c   |  164 --
 external/KTX-Software-master/lib/vk_funcs.h   |   97 -
 external/KTX-Software-master/lib/vkloader.c   | 1444 ----------
 external/KTX-Software-master/lib/writer.c     |  477 ----
 external/KTX-Software-master/lib/writer_v1.c  |  708 -----
 .../other_include/KHR/khrplatform.h           |  282 --
 external/Vulkan-Headers                       |    1 +
 src/Engine/Application.hpp                    |    2 +-
 src/Engine/AssManRendererConnect.cpp          |   31 -
 src/Engine/AssManRendererConnect.hpp          |    4 -
 src/Engine/AssetManager/AssetManager.cpp      |    6 +-
 src/Engine/AssetManager/AssetManager.hpp      |    3 -
 src/Engine/AssetManager/TextureDocument.hpp   |   91 -
 src/Engine/AssetManager/TextureDocument.inl   |  201 --
 src/Engine/Engine.cpp                         |    4 +-
 src/Engine/Renderer/OpenGL.cpp                |  118 +-
 src/Engine/Renderer/Renderer.cpp              |    3 +-
 src/Engine/Renderer/TextureDocument.hpp       |   86 -
 src/Engine/Renderer/TextureDocument.inl       |   85 -
 58 files changed, 88 insertions(+), 18108 deletions(-)
 create mode 100644 Data/Textures/test3.ktx
 create mode 160000 external/DTex
 delete mode 100644 external/KTX-Software-master/BUILDING.md
 delete mode 100644 external/KTX-Software-master/CODE_OF_CONDUCT.md
 delete mode 100644 external/KTX-Software-master/CONTRIBUTING.md
 delete mode 100644 external/KTX-Software-master/LICENSE.md
 delete mode 100644 external/KTX-Software-master/NOTICE.md
 delete mode 100644 external/KTX-Software-master/README.md
 delete mode 100644 external/KTX-Software-master/include/ktx.h
 delete mode 100644 external/KTX-Software-master/lib/checkheader.c
 delete mode 100644 external/KTX-Software-master/lib/errstr.c
 delete mode 100644 external/KTX-Software-master/lib/etcdec.cxx
 delete mode 100644 external/KTX-Software-master/lib/etcunpack.cxx
 delete mode 100644 external/KTX-Software-master/lib/filestream.c
 delete mode 100644 external/KTX-Software-master/lib/filestream.h
 delete mode 100644 external/KTX-Software-master/lib/gl_format.h
 delete mode 100644 external/KTX-Software-master/lib/gl_funcptrs.h
 delete mode 100644 external/KTX-Software-master/lib/gles1_funcptrs.h
 delete mode 100644 external/KTX-Software-master/lib/gles2_funcptrs.h
 delete mode 100644 external/KTX-Software-master/lib/gles3_funcptrs.h
 delete mode 100644 external/KTX-Software-master/lib/glloader.c
 delete mode 100644 external/KTX-Software-master/lib/hashlist.c
 delete mode 100644 external/KTX-Software-master/lib/hashtable.c
 delete mode 100644 external/KTX-Software-master/lib/ktxgl.h
 delete mode 100644 external/KTX-Software-master/lib/ktxint.h
 delete mode 100644 external/KTX-Software-master/lib/libktx.gypi
 delete mode 100644 external/KTX-Software-master/lib/mainpage.md
 delete mode 100644 external/KTX-Software-master/lib/memstream.c
 delete mode 100644 external/KTX-Software-master/lib/memstream.h
 delete mode 100644 external/KTX-Software-master/lib/stream.h
 delete mode 100644 external/KTX-Software-master/lib/swap.c
 delete mode 100644 external/KTX-Software-master/lib/texture.c
 delete mode 100644 external/KTX-Software-master/lib/uthash.h
 delete mode 100644 external/KTX-Software-master/lib/vk_format.h
 delete mode 100644 external/KTX-Software-master/lib/vk_funclist.inl
 delete mode 100644 external/KTX-Software-master/lib/vk_funcs.c
 delete mode 100644 external/KTX-Software-master/lib/vk_funcs.h
 delete mode 100644 external/KTX-Software-master/lib/vkloader.c
 delete mode 100644 external/KTX-Software-master/lib/writer.c
 delete mode 100644 external/KTX-Software-master/lib/writer_v1.c
 delete mode 100644 external/KTX-Software-master/other_include/KHR/khrplatform.h
 create mode 160000 external/Vulkan-Headers
 delete mode 100644 src/Engine/AssetManager/TextureDocument.hpp
 delete mode 100644 src/Engine/AssetManager/TextureDocument.inl
 delete mode 100644 src/Engine/Renderer/TextureDocument.hpp
 delete mode 100644 src/Engine/Renderer/TextureDocument.inl

diff --git a/.gitmodules b/.gitmodules
index 0e7ea5b..0cddf4f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -6,3 +6,11 @@
 	path = external/fx-gltf
 	url = https://github.com/jessey-git/fx-gltf.git
 	branch = master
+[submodule "DTex"]
+	path = external/DTex
+	url = https://github.com/Didgy74/DTex.git
+	branch = master
+[submodule "Vulkan-Headers"]
+	path = external/Vulkan-Headers
+	url = https://github.com/KhronosGroup/Vulkan-Headers.git
+	branch = master
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 77be300..df64bf9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,6 @@ endif()
 
 file(GLOB_RECURSE SOURCE_FILES "${CMAKE_SOURCE_DIR}/src/*.cpp" "${CMAKE_SOURCE_DIR}/src/*.hpp" "${CMAKE_SOURCE_DIR}/src/*.inl")
 add_executable(${PROJECT_NAME} ${SOURCE_FILES})
-#target_include_directories(${PROJECT_NAME} PRIVATE include)
 
 add_subdirectory(external)
 target_link_libraries(${PROJECT_NAME} external::external)
diff --git a/CMakeSettings.json b/CMakeSettings.json
index 772c29f..01191ed 100644
--- a/CMakeSettings.json
+++ b/CMakeSettings.json
@@ -1 +1,28 @@
-{ configurations : [] }
\ No newline at end of file
+{
+  "configurations": [
+    {
+      "name": "x64-Release",
+      "generator": "Ninja",
+      "configurationType": "RelWithDebInfo",
+      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
+      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "variables": []
+    },
+    {
+      "name": "x64-Debug",
+      "generator": "Ninja",
+      "configurationType": "Debug",
+      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
+      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "-v",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "variables": []
+    }
+  ]
+}
\ No newline at end of file
diff --git a/Data/Textures/test3.ktx b/Data/Textures/test3.ktx
new file mode 100644
index 0000000000000000000000000000000000000000..ac7933ea6b3c3a99b310b5bbaac13524868a9ff4
GIT binary patch
literal 1398236
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%0DM27#!_{}7S{~!#i_hA@T|9_as2p$gr
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%0A~Hq@V{s_r0)-^|3PB_AR1Qx
zm(Ky!{|x^tKz;w&kiI{t4Nx_Q;XiWyUpt54Kd23W9QPnLtnP=<kn#WK*$n?d^*;#X
zZUZp<@0tz4u(}^agX(`6?wiB#f5L182KE0z^*;#1>VFVDZ8pPy7zWk-FpSy;VE8|K
zHp72V{SU&(Z2-_50IdFBFq`53LMX=727t8#R?KGj55w5n0HFGR%^ZgR>t-V`sQw3G
zQ2h_Wp!y$%L2Up~-4DXBx*tSun}ewTcg$w^zY~f<^*;#1>V6On>ifg$|9!I|^**TX
z2Vqb<0M-To)%_q0s{0SmX83<(4#R&?y^oGT_5X=EkTwAJ`kw(@|DT!7@c-N#1}ybI
z!~YAjp?&|^4F4}-X#-rD1FQcT{$B&t{ZI_5`$2615DlyUK{Tih0K$+q0K@+~vmt$d
zP#XY*(d&K~A5{N?@oa|wkLED^M{ff>odcQ+V8GD^VEF%HHpBmyb0GCTsP0F`uzo+R
z{s+;B`k&$dyV(#7>i5Iyeq<WG{s;B{5%oXA|1Yy47*zKoV|;A@SepP;|AX+a*$n?-
z7*y9Ivq5|q2G#q2=P>+-VGtjNL3th-gX(w2ISi2ce-6Wc5E~?hjG5;$g2w_tH0vD3
z{}9aZpLGrb!|Hn&%|4gmKQac@`RJH?4&#3aX86xN2Z2HLJ_z&9g|q=+Z2mb6|FL0#
zISl^==OQqu&PT_fx?gk-<9~DvuK(vS{1=<U@Lv)K2G#%4a~S`_FsR;_nZxiOhC%hd
z{2Ye=$QV@bBV%yAKZoJJG8Dt=e$}~<b^xf}N5-0SAmaca8icjxF#HE$?YR(IcMijU
zWDKhJ_2w}A*Pn}u4d*cY2VvtmjQ>FxIqpGhP~YElE~M@U(dKg){(~^6?zf!72yO>}
z>V4}u4F6#mRR7z~VfYWipn4w}+s|eA?>Gm6L3KX}JI`hK55lf<82-aBxbC0B@ZWt7
zq}~VB{UGc)m+`;%90Uf}{c{-p`_6@6|2Yi*VK{IO<9`?qn#1rP8Hdhc_z%ONx*vqY
zL3REdhX0XB7+m+yVfY_Chv7e{{}02la~b}}&p}{V{hv6O@qh9hRGb2;_vbMDPo2Z?
zA5{0laONDw{}9aZKXVSl|12m5)%(a8T=&mq_@58O1#=kwgK+U2hW{`Os`p{Id=A5Z
zWDKhRE9Wr$hhb3t55m=R8UBN4Sp5&$^9hP~7;c=y_`h)u!+#LnJcr>w2!rZ<7zWk<
z?Q<Cax6fe!<BmBD|2yYGaQ7UB|1jJ;hw*>!Tm~=()%!3Es{bd>VfYWjpt^t39ESgs
z=Q8}CItPK__5U2k|Dbvwf*JnLo`Z@(bw3Etoy+)t{v2e?@E=_F&tdq#a1O(NP~8v1
zOXo2DUpj{Yj+f10_z%L%=Q8|XIR_Pk#sF5&W%v)O_mT1XISl`iF{tj}Fo)s)W-NH?
z9LE1J466GfnBo7<IS34@_d$5~T*m(p%<zBj90&&0`yjj@)bF3e@E=s~Bjdw!82-aB
zsNM(RqjMSlgYfY=4F8ewiMfpbPtIlde{v4ve{A(XxbF|@|Ic9r*Z&|sxE(Nu;s5!$
z4F50AL10kb55kw{F#d;OP~CrJ4#R&CzCMTHKRO20{Ws?_g2w@F&tdqFj=^>R9ESgQ
z=P>*S_5acF!#NE9kuj*=2jRza8NqD;aGejT_mMDY4B+`(hX2SIRPQ6>*K-*EW8k?A
z|KH3(#qZ}Z{71*g^*)IGaSr2uFrLfs|MMJ7466IT&SChEjA8XYGW~rn!~dUiaAR0~
z52An1VfYWjuzDUB4X*p=GW`FKW&8(R-_K?I&oGzaKNF~)pUe0kRL>)`nddV6N5*V(
z8UC}(gJ2LF8%D1CL2QnBjQ=_3!Z5>s&bbf_tM_?8bv+se)&DTeH;?f@2!rZ>fw>I-
z(J@N>KacUh&^*Tf!gEnEyzZaN@Ly~m0*lXO_>YdI<}&_A#?o^c{==}$Jcj=uEIXIs
zKMbSP{c{=rE6ii~uQ(ThmF7X}eicxC55=ImABNTDG5*(>3&RZmHRdw>2iN;ZG^p-J
z#-RFNZ!W`s7)G!AL42dRjNtm;Xf6Y^{ztz5`R{*FosW#cb^lz({}yu@|69&w0As6p
z5ZY!g!+&IKH<$502!rZ;Wb81H;lI;d1P0anFzhmq;lJBl1P0gra~c18KryK9hhd+&
z4FA37F#HG6APlSjL3F@e#{V!JIG5o+2nWq$_z%Lta~b}_aM)bN{}9aZKYT6%N6lsU
zkBmWeKM2RnWB3okpt>J~LG^#aT*m(}466G<IB6c!|CG55C>UJ#&t?3dHka{#Ivhjm
z{kaVPv!FP8F2nzvd5n<0|6IoZd2<=SxL_Wn{s+;8a~b}_FsS}7nalXUWG(|3m(FGQ
zUp5a?|5waq_z%NXa~c0vg6jKu4F5s(J_y&$V+6D7<}&`TpUa3g`~Uxc(_989W&+dT
z`hPCt|CYIo|69QrTJO(g_}>A=u=*cF_snJd-!qp1j6wB(-#mu@Fx)?v;Xeq2>i$V{
z8UDjCsO|^hDf1ZrPn(Ot)8{b$pFWr2|BQJMJaaC?e-MVX0p`qQ{13vQx*vq+&13jK
ze-6X{1#=M?RQH4MqPdL!7lSdw|HX45c-dTr|1b=y`(b$1T*m*a<}$!Bxc;BV@PF-G
zRJ>sx!~gYj8UBN45Z*YK;Xep(nalVe9fRusZSxrZZ=1vLfBRenhP459&1L)#!n@}(
z{71(7<}&<;VR-#Nm+}9Bc?|y#&PCuOa~b|4V^G}>!pG(@{s&=Dy?<gZ!+#J4)&HmF
zG5!Z(Si28KgX;S;^BDf0oy+k5+&qT==jJkj>wQq&55l1O|I%E>{}9aZ|MFY}zA_I|
z?_ZtE@E?X@_5Te}oj;fHKdA1%IhWx-2;Z8=@c+(SR1B*3VffxWhX42HV#kj_^*s^>
z)&C&;WFFK1$8#C}Kf{8N>;D(?82`VTi;NlmznaVN|1}i9naA)S8NZ#&@E;k2+5jKs
zGX6(khW{VtGW`FDgg?z=_z%Nh<}&<8$FTbU+g!%~-{vvEF{s{0$G_$>{Ktp?%w>ev
z{~-3ixeWjR%!6PM``=tfFdxEZ_z$A7)&I!#KDaF~j{)8e0JQ-?Z2{!EA6D<fXl!*q
zNDNfxgD|MxM_@>u53Bo;X=3YtP#ZvCE+fwRA5`xnW7IYPqRz)v|4Ync{13v&b-xsr
zx*t^kgD|ZA2hpH5fC8xQ2jO`PC~W{x{SU&(^*@LWs`o){01&M<4^r=g>V6p30`>Qi
zFs%O9naA)S#MYb30I&Z+Y=e1>|3Mg3_k(DIc?|zSZ2$<yoc}YK$MD~D4%2_Ld5qw;
z0Eo7j%Yae;gW3Sdbw7v=s{3J>Q2p;RkMTdK?gwGy`X5&B!)RFD?==rm?}O@o5cZqL
z2p$6f(XhH7LPP3(P~8v1*y{f<X#F2C54G+GwF6@2GJ@-UP~8v0pt>K1VRb)@hSdKI
z|C8pS)&KJ#bw8s1XZW8Et@B}ZKZu6a|DZNN9=QI8v;jc%KB)f>qG5G^(L6?QI{;Sq
z!)Q?b55lmzA4FHpV?e3@L3~&n0960i%)^X-Q2pO957Gtz)&0%$7$IW-(7L~MF2nz}
zd5F3n)CK_6`ykvk4^;PqFtq+hs{28008rfz!V~5(!s~ue8vs=IgD`siKW#1p*7|?e
zJV?C{s{28B?p%idAPlPiK^VFI2i5zC`X5s7gX;e!^AL4Es0{$C`&Y~Z)%_rhS^uv=
zYXgAld}Iu&`!~&F{13ugP}%?t|G{-XsQ#aasQY)!V+6MaK=nQhgZln^<}v(-VOZS{
zqA98WL2Ut0-4DVi=Rw8*u+{&k=Q8|1Gmi;U_k-$xC<fL27v?d7+X9ffAJhh5_<w0G
zTKzu{QTM~z0I<3rMuX~p5C+x%AdIUG0IL5%7+V_vU;Y1N9>aeS#?=M@)%`GxXahj%
ze^46$x!#AdVRiqzd5r&I_yd;uAJztd)%!3Sz3vC`!Sz0<?gwE!_5Y7~`0IX9y8u+@
z!}|ZQdLKrE>Ut0xM1%1Ed5qxtAIwG@0A!fQ_@4n<=Y!bH^BMj#LHQsWR?p+2L3KS0
zv(IDvkBkxZKI4Cmc?@vOH4oAb0MY0exgEd@?el}`d<bUv&o>WC-+vzCe?e%UAGz*_
zu|?)F{TG?X0LRF6KZp&g@6j=&{%80PuKVXP{FjFI`9XC)G6vQAa`PDf!!SnuKcC@0
zsNP4$pn6|*9^-!)4XgV>^}qUjhX0!LP%&~FKzknJe;qJp_z!9WfH0`u*PqAuABJJ|
zK8!Y=$Mhe9G0T5&{Xd@(T>pdWeh>!L|CXRW|2&5Opn4yMt>-g>`~SA{82`gCxc;BV
z@ZWA8!+%h}9~r~O0Gz>fKW6>!K9BJ~2*c`r5bZgS=|8CMhhb2??>mnXJO%)wL3KX}
zL+X9T|AF%uz!+BV!|0HCjQ?R6*8d09|Dd`bhNI^(g2w<rGzf$0eHf0L$M_$HVf8+U
zPMpUCuJ=K8KL~@y08-~M{)b^u-4DX)^BMkU%tK&My${0K^BBQ>e^A{I!jSr(;eS4;
z?>~>>Kd9~pVOYHnqCpr|?}O;ld651;a{XU9kMV!yJcj?EIv<9s=QI8X_5TqVGyY-q
zKd9aZ_4#3R%RGkvu(}^q|AR2N?w`l_A5`xnFrx17#Zv!+>V61@^#3Q%WBd=Q_mMGd
z3}8C6-;dn?2i5&B466I*%wzZus`HUCsQzC#kMTbYgW3R#<}v&SVOZS{s{cV4RQH4M
z@_CH^L3KX_L+bw3^BDevFsR;#;dS#E!Q%ky<}v&SVU+rRKBVpk)&C$2Y6EPY$M7G7
zk?Vh0y$_;67*_X#=-u-Xbw8*L0Iv7vG5+5V#Roure-H-s|K~&c|A*$G_WeQQ0H8iU
zDrWe9Y#y}#532uh^#4J9e-H-u{pT_KKR=%l+!g@U{V)ux|1ZyD_z%M1em|)155=&0
z|Jppp{~&y09>afF-49}e>U?C3UjN^l%lIFR=P~?;)&CFXG5$x!81?@=CUBh(s`rsG
ztPSvd9^-!)hSmKr8q@}OJ&)l(48!VtWcuxVM7<BI|KH7n^!dSc{yc{NAE6jl=Ofdg
z`W}S8&SU(Kzzpy{KXU&c#0J&**f6NBhvDDz82^JXh!3v+=R^AYpt>FzgX(z@|L=Ur
z7yzjL2VoE&HtqwXL3KW;{)f<vkh&jK|3fjTJ%Eg{wF6-FKZu6c|MMCCvqLd*-H*&h
zulqrK?DapS-UrqF=omB)0IK_87*^*C&13iv!@~0sbw9RtfcSh!pC7di!0=yU9%}uM
zs|^6F`w=vx?+=~>m=9qi*Z&~4>U@U(D)SirgJ=*2)%_q0s{cVWt~LOu{@0$5sQW?n
zKM2F>emFg!0Xz->>i-+g2i5-!|BbQq|6ujM>3jxw8-V!wA5!mw>V6o;TK~^y`0qTQ
z0p9-yjRAl#sO|@0P`wYv^BDen&WB*!^*_UZzj+WG02=p)*8iY(0Ico@(ZTa!^*_UZ
zP`wYs;qw^&!|Hz!4eI+x&tv!x!?5~4c0Qv1hqnXfG5k-Q55b_iABJIdKbW4+@IP%H
z!+-SpAJi6r)&Gb#0B9ZnGWHLv|3NgU{x6&l>Gv1SWB3olpt>J~k?Vh08vs=I!!RlJ
zKdA2y!k~H|jOR1_2i5&B4665G7*_vx&SU)FIiKNw*E|RYjsJt{ei#Pz{b6{*Jcj=;
z4DS2SWBd<l1As8B4FKx*!!UXq09N<Un#b@TRQH4M-1(So09f6>a6ZF-5C+x#AdJ8M
zXZXKj9s+~vei(+;{~#JP4*;tBVHnm1*oad9GyLBKt@}asKM2Fx0Ndv?g2w|ub^nfe
z4F5rR*F1**APlPiK^Ro`!!WGw2hpH$e;7W9RR5#50gldx)c2q|9~p!D|MMCCgT?@`
z_5VS2KMaG~0I>QWM8oR;3-cKMgD|M>N5<&wfNS#@{v%^h-4DVy=QI2VVdORdhz)B8
z+?~(xAA~`5KMdcWk6QnO+5*UJfXDM0{(~@b-49}8tN%gmfEV)^{v%^p-H%M8*Z+t%
z0K<P!-4DW`x*vpLbw4tVT>rz^kh-7Y|JQk_7*yvY<L~ns{$s2EVPc><AB4g6KXjb`
z_k4!`APlPOv0+es4-yB_pf&-BhSmEp8dUc)&S&@!!A$=_bv=a50A_>u$e3jT<A2uq
z*f65Lht>NanqvXOe-P%J&+s1`2G#i>%srp+KLj)U=bq2-pBD}DEnxf)#`75d^Ur5Q
z!LYg?L<=oo_z%LMIv*W_>VDDrjQ^1_sP2bghX3O88U9NwfMCh_4F6#mRPV#E%zVcG
zAS^qd@jnDJ{Fj~2@Lz5o1k2B7_z%L0^BMjlW2FU*|CQ$>FsRN)#%c=~{)6g%7>3pV
zTF~(T5DlvLVOV!QXdHmyKZu55P~C4Zp9wM!FrVQ+sNOdO(~!C!#D>K?j0V;Frl9`+
z0#N<W@ZWqs1jG9OAlhm^<9|@!-+Dg7e-O5v$M7G7?dCK52Vwj94F8d_<9x>dj`JD7
z7*y}Wu*(9*|E}{<vB!L-{~ik%z!+BdgJ|#hjQ^3b?|g>;ehV1>gJ}Qx4F8caxbC0N
z_&;bq<Nx6K3@A8sKEr<)2G#u_95J8qf8=}yI0n`IG4mP!!!W4shhb3NA3vYrKMcd`
z{{@WyljkFFDyZIH!0<l}ib3^12!rbV%=wJ}A(-KR_IwD=ozL(e8H4Nn`HbLkfC5n6
zKcC@$Aryn^|Kj-!|3Mg3_k(cxe1`wX7*zLH&4-Qw%xC-$>ibvEXMoeS^BMkwFf86-
zbmM%6|Bdq*|2Ko`{rOD)TNW_<Z=H{dLG^$8e8&In^BKVPKB(>o;jRS?|GVcSaNm5!
z|9uM>z_@=t!+#hC)&CRcGyVr*P`wYv^BMk6S-|jr>U;zS)%_qmV?N{mnQ+YTA5{0x
zp3m?fgh6#b49{D@_<#O<7>3sS3n293`3(P&F{tmqbUwp>5MDl?;Xe$ooX_wd8N=%T
zweuPNBV$nAzkWXBe;5YU{UE$)0mJ{z^HDLl?g!QR^BMnx>V61j_`hQTr0(B2pW#0U
zgX(=4-m`%5|K9l^%<zBje1`w~k??^94FAD(KdAnn&+s2q_aC0m@E?Xjbw3OrTfq4L
z_<U4+5?cSCo{u^H0}?wspYi|M1q}Z|G^pM`KOZy>!0`XV0!Y1oaX!O;7)Gi8=QIAl
z3dRioug-^HQ2l>>KEr<)2G#p8d}{&Y|J(B!P%x<8hv9n*82^LneRK?}`yb9{_z%ON
zdLM?LEMNqW13aD2_#cKr_5Jht4F6&H#R7)^ApCMZ!+#h?srTnI{(l3-pgJFd8UDYW
z&+z}<0!ZEeem=v07)Gx1VeC)y8UKUu=lKl(v0+gC|7||Qe{>A0_p#xh^BMm`FvI_!
z^HDLl&R@U?uKPi3P`wVqe-<$Q2VoE!9si%l@E;@w%l9xER@cMn1q{%(0E7nB_o$fR
zKg$9HW}VOQABNc$F#LyMP@RtrgW3RG3mCy|0T9i#fZ;z3gX(=`46g5C^*$1fTK_Zr
z7gzwnpn4x2gW3Qh3mE^yFud+x!0=xbieYs=G7YQyLA2BY#{VD;s`q6UF#Jcx;JSYS
z!+*I2ka{0f_akFay$`_*|CJUn{8ye2!75NTsNP4$8VeZzLomaCjRg$<LG?Z|)>**#
z9~r~ye!T?@|3TPb0mFY72G#c<Hi$M_!1y18Vet;5%|P}30;c~U8dmp%Xp04m|3Mg3
z_ggJs_z%K13n2ABhz4O$-4DZ{`rlyz!+#it)&C&cX#wMZP~8v1kTw9re>Z5o53Bz{
zwC6&`|6U6a*n2+1f1d>m|3NgU{)b^${U5M^@jnO$EnxVMj6)VM{0CuJ-4CN97BKvW
z;iv_Wb^wS5VOaeSqT?1Y{D)y!-4CJ@7BK!#Lc+=O8UCj%Kwwz?pRs`PKLRuS&zujz
zSqm8c=OAHN8z651<NtyM3~*eu08;;hXb=X~{b0O+;eW|OhW}*?AQ;vLs93=GA5{Ot
zaLodS|Hv3r_t!1Jy#EDM|2HgP1lRkZx*r*X+5v3~82`5|U;x+sp!&aK0mFY#y${2%
z`oCuZ!+#Kl)&C$GRR2#{!1y18L3KX}Pg)46_d#_(2qV}3(-tuP2i5&xynx~V%=rxe
zXDxtWP~8v1pn4yH8UD|o&+vc20tjBTfZ;zf2DJf}EMWK#!l1ezhF2_L_>YW1ZGcq^
z82*FsngtC1VR+pFMsPa-M1$-81q}b!LoulChhbP7V9Nr={~){#TK{hY)%gn;{%@ZT
zt^XH5>V8oD55k~&AA%YF?^yt;`}Zwi_z%ONx*vuQEnoz<0}d@f)cvqF0I1$a#;`WP
zi3LpmPb^^ge+r6W`5s1}S-|)ogkkmnxrNYrA5`~4F|6*tw1DwH2w$1c`2WfR1~`V-
z{R<fWUt55v`(bSWP`!U^0mFY7MsEXv>V0Gks{bD>VEB)WVRb)@egvxb(J-X`XZZhg
zKEwZK3m_O&?;~Sa{r_qK<9`?i*Zm6^{=Y%OZx=%Aeo*}n#jyGxM1NSo_#c89{(oA4
ziD7MkFAEs{BV+XXAIAT&fZ;znMz8mOEnxf)!XR-_J&zrO>UoC${}wR)|F;0f2Ju0d
z2^Q^e8dUEyEMWK#!;A|U{xdCL1h)a07Bc)t$H;X*j18;vanZ1L0Ovx6|Hv3t?<3Qo
z`k!Y3Xe@x?KZr(c12FvOTY$j)3nBGBto{el$o0SQLdO3vEV6*%KROm$$nYPAk?VdK
zTXG@8e<?I9gH->^E@b!*!l1ez9m|8-0}B}bD=dUyP~DG=LG?c}hP46I7c%?@VNl(V
zjI|dqg4+Th8iaKgF#Jcxpt>I!gX(<{HeAT?-*6$M?#EUCn=WMd55k}}00>(wWcUxm
zpn4yMtrs%<2i5z?7*zk;FJ$-+!?5}vM8oQSQ2h_WE(;j`!?5c@Nd1rA1_0Ino(mcN
zdo6%qP`wYT|6v$j|1V?&j{yWMVE7Ni!3!a601yqrp!y$#!FB%vhW}v;AsANwM=nII
z|DzT#{EuD8@IMAh!|Hz+4XXRWcp=08qy-S1ybw|M!`cC$HbDA9hW{B0P%)_PhhbP7
zAa^0-|GWhZC>YcZC|t<!A5`xnV^F<cj9&jQWc&}R`yrU&f5ifZ|5ebszj`5R8=!6>
zX8*5g0mJ{sg$(~eGz`Pq0Idrdz;!>U{s&=D-H(i6Z2(ZckBmWeKM40Pgw*|@`hUU#
zhX0_t9~pz{e-H-M`w-0Vf7$|u|1+R?=0Zr_kJ1KM!0><0LWckI79jBag^;=*)&>C4
zur>gw-bco;`hOXE{l5@W_k-$x5Qf$NYZo&92i5)S7BKvWVNm_QVIjkR5Qf$NFnY@Z
zhW{`Os{28B`$C5QAPnyRL)!zOx_{RK#{at(GJr9t?uTJm-4CK+bw7wcxRBvLsP2bh
zP~CrI0V8-E07N6#|Hl?E{69XQ0bKXvum2hTp8@s#7cl$>)&0mA-2Y#|@c-gMM(|j`
zr3DQCkuj_daCIT1EdZ+fkukXbU%>GH#zF{&)&DU14s<*KM1%0X1q}aT`2IrF`XAI5
zfYtpV8dU#3TFCJK$pQp^x)8PQhqVDfG)fy_A*k+W`2T7FDu&hnpt>K1!To<&{l5@0
z2Jm44!+&fTxgGF%A;W(VMy~sj+20m0{D<N13mN`{Fnaxu%m>x^pt>J~L2OXn|7#(`
ze-Qq&fZ;zn2G#u_{C6R!-bdj7|B?59{fE@`3mN`1E@T8_aD5M||FP8lAUW2B4F9oV
z^tzvY5yO9Ej9l--*j$Sk5q<xKjQ_cz7*y}0;DrqTc^5%2sLn^npn4yK1s5{@hhgD`
z4F8casO}eC$nYN>!|Hz!Exw5HzvMy~X7~@P|3Mhm29RFF@E?Xj^*#*4>VEl!jQ=4R
zQs=|!eh{s^kl{ZvR$0jKAB0sGG5iN%P@RvAVRgUeLdO3f465_tcp<}oT{H}<`}G$x
z{s&=Ly$_)o{u?g@Va)a)sNM%*vqcR5%@;C)F|6*lTm)$cfa-l@46FZb7c%?@VOZS{
zq8%17{&!r6z@U2HX(7XZ=S2_<s`rtx`$ES5Fbt~qLD*{%!+-CE2n?(HeHSwR_g%#B
z-+v(j2QGxv{~#KKLG?Zihc0CNAG(kMj$!pbxZVfV{ZI_5_oEjw{D)ys8vusm7c%}w
zV21w*3n4gh5yO8_-4Da53mN}|@gj!*pt>K1GZ!-aN5-)FA5`z>E@b!*!=N@m{z8WT
zFbt~yLAZD!!+&H9Y6F09`9jA32n?zBD;F~ShvC|VjQ>IPKZvef$nYOV!yEok2B^-5
z)&I>48UHsgV));>knumL?uX&_g$(~;7*_vxE@JrKy$}`mE@b=<!k~H|ff@c!T!_HP
z_5aj`jQ=5+;s4Zykh*{RLWcjKdLM>oEn@sXdm#uj{GYuLQul-E|GA48{)6g$WDKhJ
z7cOG>55kKVGW>^OQ2oDjA;W(d2G#w`7c%}|zKG%f%7v&HRQIo5$oL;r??W)d|FsJt
zb^rQ>4F6#mRQH4M#zl<(H!lQXhX0!vLh#mw4F6#mRPV#^jzx_BcP?ZAV_3bvdlAEb
z7~Z>(;Xeq2>U|L2zmW0&zJ(0`LG?Z|2G#$E7c%~bVNl(FbP>b<BMTY+gXrT68UDjC
zsO~?xh~fXqg^d4CFGL^z`TPIuLIya7)&1ueF@oCyAR1KnUt9=k13)mS{=dAC;Xe$6
z>V6o$wg}q)U&!$PIuyg|eh__g5##^c3sEts-oLwu;s2e54F5qisNP4%4;M22N5-JK
z|M4P*|DgIGT<3%8eIyL3?_v1)LdO3f{Bj|~e`E}+`(H0)_>YX?_5LEp{~-4Jg^d5-
zgX(=Gj9&MDT*&YrhCy{cItJDIUl%g`N5`N#A07W##Q6W`LfjZs|AXrM--{Uj!!W3h
z2VoE&M1%0ZMU4MJGzf#(ptit&aQvgz|B!kgRR4o8BfP)Qh@<{zUIeNCVKlb307#5&
zA!_{(Y74;XePkNe_lMQ}Fq&r}!+&Iqul@(M2ME>wptb;d-4Eh}>U|gn)&DRIs`rsG
zs0{$C`$06U?uXH!Hh}y>hW{`Os`HVt;v(GjKdc>qul@(O0Twd+*M?&B`X9sxwE;kN
zKL|tWea8O~8dUc~Ftpf*Q=qyZgwgAN^MwrmVf8<VMz8-td{EsF!k~H|hC%f|2*cU{
zMA!d|82*Fmeh>!L{~(Os1_0IlAdFo9gV><{Kd9~pVOZS{qC*xT>V8l=09OBpFJk<U
z+6F+>{pf7~<hnl|TK9w60O<8Us2z~Hh~YmB<E{UZ>V5S3AJz^4)%_q`w1~9&AJqQ`
zwE=1tLF#`PO|br7$nc-&`hOwAe^C7o!pLm^P~8v1kouqDe?L;)4{8S>*Z-3jVXyzu
z+W@%gfAluMf`yQ}A5{N?Fs%Lu(XhH7L@!&&@E?S6)&HP20CL@rt^NnK18~*<TNdG}
z{~>iht~LOu?nlP^7cqeAe-Mqg{$B{G`(gDzdK-YK`hO9m9RO+rfa-l1Js9hMP+I_0
z_k%E~9e}S50IK_+FJkx)!pQYMhz)83AlLmcHmKf*;dhG|FzSC;djQrBfYtpl8omAp
z@zLvk7#~~xkGl=P@c-vR2nN;lpmqQVgX(w?28n?%hz+XqK{O0wt^fc1|Ie_9;Xl(N
zP~8u~=xh)lhCy{cHq5q&;Xf`6s`p`-V=?1@7zX$KLH&Oe%<!Lk5yO9;#Rv?m_p#9e
zix~eSW5GoX|B<oKVut@9EV78<KQac@`!FoFi1EMJVut_Xi!ia&B8LCS7*y{gW0}Pa
z|K%28$MAN*B8LB<x*vv>7BhnRDvKEY!!W4-55sDU8UKT@#v+FQFs!+V;lI{mhW{`c
z#MW8F@E?Z3b^jv9|9VJRe-XofgT)O0jTWI|c*PH8m@H=a55l1OAB4>pGyJyz_4}b1
zRQJQM)nbPKHj7X(sQ$NG#P}bCLG?ZaGyHd0#PHt<3B&sTFxqVq<9`@-U&QbqhCLQD
z{0G(jFbrw~_$*@l@3V*jj6wB32>UIDi~$5JV)zfkL5msw2QFgx528VJKMaHFeh>~@
z#P}an_d_tl|A@s5|DzTmFsSa2S;Pn)2Z&q5_#c58{)6lOMGXHF7BTz>)%`G>vWW3N
z1T*|kL8|}L7Bl?MScJf!F@UT^4F6#`dlAEb5YAc5@IP-60)zYiix~bFEN1u*s{4^~
z$s$JZSOADFUBvJogv%B){I6Jqz@WMxgsT=Y{;yih@E=tF*DhxGU$+Q?q0tVf8WuDD
zZ(0Px4B)<h^I{0yvY6pN2)8X__z%M!ix~dHFsSZ_;hsf||6v$h|1V<r-?tcoCoE$4
z55todG5&|)$%`2N!|=344F6#mRQJR1jKvK9XDvctaQ}Z1!~Z#p82*Fmei)v&nDPID
zMGPnyRR1qp%<zB7B2>I|5yO8FUbdJ4-2Vr)0YG@wBF6s+%<zBpA_!iynBo7rMF<S4
z_d$5WBF6t47Bl?cxCntk{eMv155urAfNhHy|L<7DfPz77fL)6i{(~^A{|}<~f$DrD
zynhkHe;7WnnDPIiMKH|p|1hY}zZgM->V0H<ViDti5C--APb^~ie`+!2{LdL^y?=Hw
z<NtG@em@8=X83<@F~k4!iy-*IVrbug5ySsWNEkK-aAgtWe{kO))c;4qHx@C1#{obz
zsPBJs5yO9Ed<WF;hhk9QABOKOX8iwP5i(}@|6mcr|A$EU(PD=Gpt>I!KUvK9AJi6j
zwutfnvqcPW466HK_{Cy||F0HdVp!e(W)b6mFkZ~?A5`}v<M)dpZGjJq82+PUSlth!
zzbs<-j}61>eHi_15#xUl2G#kfnBo7AMF<S4_kS&7_z%ONdLEe#;=}Nt#f;#w0Z<zN
zf*Jn9Xn4j4G5-Dk&$t*;|AXpyWHyM;yqNJnI%ZkS_#c58{<AEG)cx#>8UJI$u=*ZG
zb1q@}55wGxnf@a%!+&n1dLPsV;9bJ_AB6c9GycbhL3O|2Vy6EP%<x|jTHk}}d>9s9
z!uVfwF?I~9_d!^E3B!Mh#h4gW_e(Ek{Ev)f7Bl{bV21yo`d@xA!+&g8VG+ZB5LN`$
z_lp_-gX(>y#SH&pSamTYxc&#xAPlPWL0EkW(|-`w1l9LQSbGU0xD5cJL0ES&<9}qV
zznJO2{$d6=2G#u_466S@wDDp_a9aQr?Z_BZ_k%E~-iKjO{cpLL@jnP#EoS@=!3_Vc
zmoS3sf7`{3|6v$Z@7phC`VYg7iy8jIFsS}_Ud;F(hFumj{zt~{i<$nrFJ|};s`Fvk
za|z>r5cXco_#cEpb-(XohW{`Os`o+Ie+lD%5FNOf@jncM>U|InUc&evghLlI{)b_3
z-M^UWfB0f1aJ>(z`y-byg4xlF8UMp@>|&<>pf&)Aj$h35KYlR-7=!Em#f<+Gp*U$V
z<9`qa)%~f98UDjCsNM(R^d*e{GZ!OchX2`%5g1hOgK+K=MsWR~znJkq1Vifn!X=FV
zLAZD^<9`?~UCi_!T=y?w_z$Z0LAZPgBe?#rT+H|%hGBI-sQ#~A%=8~r|AR274S*c?
zAU3T22iN<cx*uBagX;d)C5->u7sD{a|IWpXaNM<+@jndrE@t`<!?1cEME5UY{6BFq
z0#9Dd^dF3uF#MmqgyH{`#SlDo3FH6iixGInBF6uqx_{;phX1n{BQU7m2jRJk8UKUo
zd<16rzi=@s2G#u_ymT?+e+XvyzjQIfe^9*-!poO1{$H^efmbeJ`oDTH2s8X&y_n%Y
zsNM(RwM!WPuV0Lc;dTEKhX0!uqvEZL8UMpDsNM(R?MoQ`Z(Gdpe<u<K*ZYeZ|L=z4
zJ&PIt?^(<M#`_mD{)b^uoe#qYmoWW5ycmQT{vTe<@c+nShW|&GFv4jN``BW}|Hv3z
z?=NEde{wPQ`u{Abu3yCXA6)-~*id|a3B!L-y^oA9FJ}CYj6wB22wz>o`2WgchX2<W
zGooNny$`}S7c>0_;aiIt{v+eNiy8le+5jLLghBN_3_o1V^#9>v1{4gc^I`b$62|`^
z465^C_~{a+|Dd}6`C_L3&lfYmF{sW*#xIvJ{(rp~6Tex^@E?TVE@Ai&!{9m}RPQfl
z`2S%EBe>rGxR~)jI{vhX@&BjA3~>B;3FH5-i*aL6oe#s`7c>0_;h&2c{^P=+y8bt)
zUSG@zZUcbpcqkvl#>5Q&VPgM5?Y_lK|G_jU)59>d{s-0j$e3v{1H4@Tum6`Y{AXSQ
zsqaB`J~{^V|FPBoATe0o52HDkF#P9O%<vyXgX(;A466G<7*zKoW7IYP!+*ZT4F3f{
zeg4Iex*t^kgD|Y_htb&E01V)MKdAl(VS;UdB@F+ip%_%}BV&T~{}M#K53B#-egDOb
z|B>r|P#ZuEsovLwvO#@*5C+x#AdFo1>mt?rur>gw&evZ883O>ZLG?d~hDAM$2G#u_
z46FM=G^qXuVNm^VxrE_AsNau_VRb)<2G##yyqMv?{SrjokGl=P@ZV)I1cT~+7>3pV
zAR1BsGyM04*8QOVKYAMgQU5di4_plC_k-$x5XM&jhb?CKAHD?A@5fdD$1G;}55loa
zAoV`1{s+;>Z2(Z+pR}0aKM2F>ei#j_{~>JvhX0w15g6760M-4-IDaw2e`E}*`$1y>
zu(}^amn>%Z55lEL^*^W$0K%}kzj6t~e-H-M{U8jg_hA@U{oeqs_hD@SP~8v1?TZ=y
zBV*ic0EYj)iy;_P_rox9{XcOrq}~VB{U8jh|3NgU{|{~hEMWlG{h<0Egt4^&K=nTe
z&s)s!ABN{I!CwDE+5nKcA5{N?Fs%MZZ38g;U%3QQ_oLVUpmqSF4Z!e!{bB}4-yci;
z59<5F>i@0KdLLBxgD|Ka0BZw)>VFUh*Z)fx{_kD_srx}~09f4*qY?E#!~X-I{yq{0
zwE;jFRQJO$r2c34e{3-XgZlmW>VHrh09OBl*x<hZ5{CciZGekQ82?{h!T`abw!jhw
zaJ>(z`#~7g4#3t1xVePkKMW(+{~$JU{SRpaF#Nx_nBo8ZB@m3O4FIb9K^Ru|KUvK1
zABI7Ff8_cf#73_FL2T6epW*-O#Sjdt|3MgA{SRvkfcpL@_5Tuv{~wni>V9I{0kFCs
zOfP2m|9uGr<EsBb;=h(K{s*-IklO+vKBS&!`2TwesLsd4f0r=)|Bs{oXIR4UpJ@rS
zzK60wd>97R`N)`MDdT_EC5-=JG>DB2gX(<{=2*(`ABI8oJvxTf{X9z;|D$7+x_>Fd
ze?Aai%<!Lo2_^>B`yec|gz-NJgX(-#%<x}yF~fhcC8!uw?_<M~OBntmV|d-al;OY3
zQilJsOHeVa4WO`u@jnDJ{8wCpz)DLQ|0^#+#h`j$bqT|N5LR2t@LzoiDhAd4T1y!J
z!)Q>w55qc38UBOneZ3_N|6v$Z_Zuu>1djn2E@Av{u$19Hh=yPg8*}{6bP2<M5C+xz
zAlhOH!+#hC)%_rBwUqHc2!s0n$k=WP(|^0Aka{0f_rtKmQpW#IOCT85_jg{x@ZV)A
z!++N$sMuo(<9`?i)%%`H82*E>*HVW6K1)!s-x5afH~@(DU&8PohQW3J62|{QPz<X3
zVK{6F)Bms~3}6hZ`$0HjDdT@o-ya#rEM@qQj6wB32!reWC5-<Qpg3^}!+#J?TFUT0
zc?l{`Tf+DshSQfY{0CuB-Ji9D;Xe$+>;EN;|3Q8K+$9YEVYpxkXbgbiKZpj^|1ew(
zs`r;L{4arGaQ(lO@js~VkH8H7tCm9R{-q56tCv79sO|@`>y|M72Vq#d4@NgGVfYWj
zp!&aMDZ_sdZe7CgABI8of5#HW{~(M~|1V+s-@SwZj{BA{{)b^u-yeoS_5P$K4F5qG
zRPV#^l%<USL4AJ+X81pS2?Wnr%J3hAL3KX}gT?^nEMfdVX9)us&t1asAB5*EW%v)O
z_mT0UC5+&)fJI9g{x4pFz~Fj+3FH4|OBnxy>U|gn)%nO6RQH4Mnk9_?L4AJ&X86Bh
z2`b(Qs{fZV{@=U=h8g~EUIM}3x_>Fde^8x|j6wDPt|g5BcR}lXP`wYrdzLc(-@61A
z!|VU04F3--W%z$^2?8Gh_4|=9yzXDh@c-CShX2QxATX%z2jNpoG4nsDz6aqmOCk0B
zIcU8PuKSlVg2w<r_5Q^r4F5qGUjKvY{-uonL3KVd2G##JmN5Olv4jDPVf8+UzO|I`
z|LrBH7*ywj@e+pr_m)EHd|2HNqd{$eM@tz0Bjd+Q82*Fslcf;)=@N$j$QV@T!|;nG
zjQ>Fx)bD?}gyBCj2G#p-mN5KB$FTbU-BL#ISipxRp#DE92G#j6{AnrUe;5Y!{n0UK
zEa2M`rvKlTFrZ*qy^l_V>Uw<m&r(Qz53ci<GW-YC@gOk}2C=bWZ2f<RrI7lcX$d2^
z9RREMVKj2x4`YMsei+8A`x*YTE@Al3j)Y<LKZr)J|6zQtrHubU7}OpBw*!_k{O4K9
z@Sk@HCdOC)gW3QfEVPv2KL`siVfc@XL2UpKMs5d?Qvc&?2f*3@AX;Gw!+#hCwF5x)
zKa7U70~r1*FM(iK{SRsbfH2l}z*2_)T2QRLgyBC7gW3VG`X5Gv+W|`%km`Si|3*t8
z7*_7XXw#*P|4pE60JEix@VXzl4FIb9VeJ6xC7^i#2)13q0IvVh+W^S*zta+i|Dd`b
zghBN`2qU)v;Qjxl4F5frLh61{{SU$zZGfc=|9zJ*{P$amsQYoZ0T})VFJbr}vJ_JH
z<8A{m{Eu7$!O=?)Z2(Z+55thUpW%PP5(tLX|5)1qOBw#BErrzmp!y$#VRb*4Udr%4
zdkMq;94HN|`(ZR_3;<I9GyE@Hg21r4A4ZogW&96n2b3>i_>YXieSf6-zh)`p|C*%?
z|Lc}OFf86-G_3A#0@eFV7{PTvsQw3GSp5&8L3KYEFJ<`Oxdefc>wgd%R{!@cW%%E}
z1c5<yKMcd_e-J%oDZ~G%OAr{;1_0IlAPlPekujtl0IB<7^*@M4uKz*og-aOzqu2kS
zwg9N^U$&ItKL{^h!tfu4k?VgD8&>~A+5imy*DitJbxWare`q@ZRR6;;tlo#wu=*cF
zBiH{RHlz)}fYAm3wF3}s0EYj2moWU_zXVeEgX(_}hP44e^*?wHU@61@BTGT^01ynS
z`;Q{k{h)ThsU?j6L3KX}!{QxAgX(=yoe!cxbv}rFVJRcH?+@aGFsR-~#;`WPm8FpJ
z07U)I@c-%(&^!R7?niF}fa-rxI{>u}!0`X>5(oy>{~!#j_mOFM8(=BJ|3^>^s{dga
z)D8e)<Te0^{d@_-e-M7Ll;J-JBiH>fHr6)4Qp6kps4ehrDZ_sd#@7yj)&C$GQU5di
z|GWf(zb;0t`(bSX^tvC$|FM+uKcWr5@c-8m1P0anAU=o&)%hR{W24vo|CTcR|F@L!
zKZu6KJD3Ko|AW^5pmqQVgX(?erI5A&h(^b-dLKeF{AXDTsqfjAGW^GeL3KVd=3K`3
zABI8oJpwcQ=YrPxpn4yKd6zN#2Vro(AJq3p!=QG6z*5HlV7!dszrZp`oe!$_VOV$>
z!+(*b*s<7BhW{WezKr3&#8ONQ>i<hEW%!SbL4AK@EVq>5KQ;`n`<F8QS6s^YA5{M<
zEoJx*!zxQ5bw7v(VNksf!s^Qy|AVl`QilJ?SbG_y{s++@4665$vHnuV|N6@q;26~R
z2Vq0d900WL2ekpf@s328E@Su)!e&bu{==~4QpW!<466GfnBl+mGDy8|vy|aK41??b
zWsLvrq1a(5!+#hC*ZoTw{yRf4sP0F`Zc7>eyFu%HP~8v0p34~igD|M>2Vu|{fbTMf
z|1b=y`$5=$86&tI5U`Z-KMV&gW%v)m!OIx_gD|M>hhb3tAHJ0FKL|%GW%v)mk;@=-
z)KZ53FdVy#5j+k6qT`k_{*PPA0LGxYKXEC;e;5YU{U8h)14voQ@E?Xjbw3EFFJt(h
zu@n_&FJt%*!=U;fgmagH#sL`q=PhM~Vut?(OBwzbE`#8rr40XJxO6EacnqL)8N>gw
zr4U@c3{wABEM@o)!=P~hP`wYMLG?cfgW3RS*MIzPSPJR?gX(`6Ze0dx2Y~3drHua}
znBjltG6e2g%J3hCdzLc(hhb2?55xV-82(RKiolbXGX4kSWeoo(FJt%*s{28B>N1A^
z)0QGIsO|^hnaddd&svJW@c#c&hX0_xKQdmhl;J-z2G#!{yksfke+XvyzXV$MgX{lg
z4F6XwMc|do82_(Y3c?KkS1o1uzXpoeE@Su)s`rsGcpP9U!~c!T82)csii)=^W%v)n
z+m<r?2jT6@AoPx<4F6#m-2Y$7_<uJPgZlq_mNNVY;eAUP{=+b+&WGWH%NYM3S_;Ap
z{|~|H{bkVle;LF7qst(De^46$gh6#b2!rbX6H6JuZ2+XK4`zbueNdebrk67O2eHpD
zWB3ok7nU;oN5+?yGX6)#p!y$#uP$Twe`P7d|7&O%UjHv;{C{&P<NsSr8Bp+@r40XX
zFJbr(qCpr`_rvgmrHua{EM-8!uzDXvKVHW0AA~`5J`6uy#t0q*c(#=B|FfkGa15&V
zk@3rA4F6v(#l&xxGW-YOx62s*!!W4MhvE0j82^Ln|Bp)<|D$72o&RYm!+#k5yo}-h
zm!-HdtnLTV-<LA}2jL$}8UEwK;JO~v=U)nG1Ayy$C?CW|$A6bW#svN@WBd<d<EsA|
zmofeaVNl%<qG9ztG8-(mjNw1?GKT-GI54)lA0)<(RNuquea>YJ|6v$Z=Yuf!GKT*!
z465_dG2e2=|NP64F~fg;Xq^wL_hDFYIm3TYosW)TZ2-|_jQ=5+;XkO}N5-%=faEfU
z|1b=%`<F5Nms-Z~UwS#if7xZI7`gtJU&i<!gh6#a94}+|uZ)I4bv`l%)%ggFsQWdS
zG5iN%P@RvAb(b;z2i5-|S{J$AU(WE~U^&Bo!)2)0co`#j3;>+zkqA)T55l0j-+US4
zfAeJw@VXz|1_0IhXc$)a+d}JnNZrry-+mdS?sr_q@E?ZZb^kKP|1QfI|GO?@fMZbI
z@4k%TKL~^Bd}QpsjPbwsG6pb)*Zs>G!R-K0-4DZ%x}V{HAhga0)%!3Es{2EiG5!Z(
zP`w|%jNv~BgX(=`466I1mofea;n-yi|6v$b_s1_|_z%Lcx*tR*FJt_lyo>>iVRe7%
zGKT*k466HK7}N&HT*mMphGF$TxZVfV{ZO2@l;MB=GEh4JLc{9+;$@8B`X5At>U|gn
z*ZZKlABsVBf8{d9{}sy^{#Pz%_+Pz@@qhI)hX1ulxE|CGK#F@1vvC>Y|HfquVBEZn
z@jnQI>U|h)TgvdieHj8Hw*k7BG5&|)o}~=`dzV2lsNRQRQ2jq~8RLHlhSd9@x*vo=
z^*#*4>;Gj8|3URWGM>GR;Xe$|UCQtuhUYJ1_>YW1_5Z?UjNo>_;$@8gAsABcFI~p)
zABLANWB3olpn4yI8UC+a2C4f&^*^ZIN5-J~fBiDX|Ld1AfHA1<2jR`j82%&UElBnM
z*5wTUL3KYe-m#S7|ITHIdLLB(?^(|9AB6WVWB3oku(}^cgX(<<X83<_8Kmw%yo}*L
z2!rZ;WPEHn<NxE!kTIm*Ke>$I|LJ8|#{ZWw{y)2n;s4oXjNm#ST<<T3urDlU1lRu;
zmoff_;Y-UH{(~{7@4uYkKdA0U#-KL9^<|9zVHi~J-(1G<AB1l$XZU}687c<V`!IZW
z8RP%^%NS5FtPSvR8N+`N2G#k<7+mLr>iuO5|DQrJa@`MNKVQc1A5`ZfW90h(^)iP4
zFbu2rVKk`DN5|-O|Howv|358f_z$Y{v0+#{;OjER|1b=y@8NhE!~gG4466TsE@SwQ
z3;%}I`O6sp!`QGo{?Bp-a9t0o?;#jc_k-A=`u{(c_y^VVAPlbmmotFd0-*XHBnG0v
z7+Uv(>VKBy*xLZ0x*i(_)&C$2srwn=^*+A(AJh)OR{x{60U-51dK-Y0`d@SzY8wDs
z{SRsffa-l1Cc6G##_(Se2`eo}Z37_J{UEj~xZlt4Uws(_!}|W9x*vv7>wgAl{m<|p
zRR4o8sQ(YD`#~5~|HEhy8`Sp)VNjWmj6roj2xG1PL2ZF$4F9c`L;L>Fb^yNmAJhhb
z)%_qErT$-zsQW?f0Q~hor0z#<1NdR7|3U45fTfW7A6pv$RQE$Lr0xgR{}Ia>{$s8G
zmoxm2UXG~$LG1ug8vs=IgD|MxhhbRV52HbC08rfz!mzp@L{nP-7cGa?{|x_&mofau
zTmLU-K&t;iZ2(C94{HYyQ~!g;0AO{0>oSJ_)T{p){!fJV`$2U-2v1qg@E=zHgXn3X
zae!qE|EDiUZ3DpSeh>|=`<F5NpSz6V|Gedd>VJm+i<eQe{)g24pf&)g?gwGyx*x{g
zvW($B2ve*6-@l9zT<?SGeh>!r{Xum<4CAi<8U7z%#_%81_s3QLgZllT`v1&wNS`0X
z2G#qpb^xgV53Bnx!s>n~eVN+z|8ms2AJi5gRR2F&&IqsfX;J^bTh90&YyH2B;XkO}
zhhb3t55h#(|Iqp#R`0`TLiInWT>z^0|De?Wka{0f|AR27zDLL4v41S}KLfPRXN1yB
zD;WNR*~=OJgV@LzRQJO$>k7vIFwC}`@josMs{7fOGyLaRfr`17GyKPfL3KaRa>oBK
z465__mNWcE#{4T7{)4c<a)$rN7*zMeu+R#||1d1FoZ&w*2G#pw%NhP7V~OPq|B<oe
z3Wonu%TY0??uTKS6^#EuSZ+Dve{5J`1;c+B2G#vAth|EpKM1QVXZ#Pts>>PvtF2)8
z52HbBjpYpgVHi~ZYb|H|kBoJeGyDf(-4&4fUvD|Xe`E}<`&TghH(bH^-)K1qGyFGN
zj@kY<Th8#`WI5x1GblD+!2})yuvpIUAB4em{|ZJ(8(;<Ff1BmVnBl+O3Iujo&hQ_G
z9ak{^cUq3XF3TDIgRtughW{Y!ww&QV41@arAndV%;Xep_Eob--!rm(&V*ozO8UMpD
zs0{$Z{wo;%2P{X$LCYDz;{YH!WI5x15Ds0z^gnDl0~~|ueh`ja!T2A9qn0!NhhRwE
zAG3ntKM2PyXZVkd6P7dnPgu?X#!1T={)2Gx3WonF%TY0?{s-Z-6%79~mLqW1a>oD2
zICllp|D5Fv|8rL`{LfpCz@RaJg5`|=K^R>3gX;g~jQ@*QF#IoBj=*Kh8UBNC`3lDW
z70W@G;eW+)NZ%jS|F2rX@E?S0mP6VAwJR9^*I|kOrsa(PVYqoY1GxVWqFYul{0HH-
z<qZE}xMMlve;Dps&iKD;IRhB?ENA!+!=N#MzU7SnVR*uF#{UzRGl21=<qZE}7*zLz
z@YEHI|EDbnVTS+HmP6|P87mn6!|<%-4F6$x_Hu^*b5=kwsP2d1`70RzFIbL@8U8O?
z0l`a_GyI3)r7IZ!FI$elE0#0-hv8Mr8U7>VHOm?QuU^LRA4IQP&iH@ba)$rwS3v6j
z4a*t+!|<l%4F6$x%W{VQ$avcd#{Zx;0EphPobf*bGyLDR0)at&e;D4kobf+02G#us
zRxteEzntMeh(5HO;Xe$6>i;9l8UMrZvE>Z^k@4{r4F69ohhR|s55mZ8e-Il~?}IR?
z-aogT@jo&KwF5x-;tHn!mzFbN;43Q_|AX29Ao|*J#{US+0A}A<!SEl3L4AK1zP*C+
zKM3Dh&iEgO?=ENfe{Tf>KUmK2A031G|Bse4{s-d~4F8`jN5xN9K*j)`Eob<Tj6wZ>
z5Pq?o@jnQ^TF&_Y)p7<D4C?>CS<d($8H4J6Wc+>w!~gfo82*1)j)_5aKL~$b!T2A9
zzbt3`kBJ%ne_am2-&QdEN5(&vGyF%#KUXmR2Vs!-ujP#Ykuj*A|FxXqKL~@^e^)U4
z2hku5WB&t<2drTD529fh6z9koRR1$9XZ#PML4AHueUGdD2g#9E|1<mt)%_rhUjKvm
z1nd754F7pnpw|7Mb^xgE2Vvy8AI3(l{~7)Ztw62&VeJ6X6{Oeyp!NX%`k&#y+;Rwp
z)%`FUd;QPwUu8K2gX(--^*^W`0IvI2F#OkoVo===!l3#eL?hSzAU1OSZ@2<d_k(EU
zxCgOO>wkv-#MS={|815-FmnA5Vq>rW8U8z=)&IzC08rfz!l1ezhVj?`4F5s(KL{hY
z0YLRWXbb>EgD|B2XZRnw0#W~i+5*V+KcWr5@IPufr0xgR{~(O3{s*-K@Yes!8UCZ!
z|CuY$>wgBU^*^XB0IK_87}5q{AiDmCwE;kNKL~^Be-Or1|2M8+{13vQHUOyJhtZ(A
zAB16bKZu6a{U91v_k(Cy-4CKM>wiey4{8Iz>V6mvtN$Tw07(50Y6HOPeh>|-`$05u
z^*_V^1<N6IKd21=tNTGTO8vhAQTKz|04rDEtN$6`^*^W`0IT~!G_39i(VJJ`uKy8j
z0EYiNmLuwZSUUh#|L<LaR{ulmeS-D>3WonjR*+x+V`~F|>V6QuxPsw72&1<FK=nSX
z{s*xk^*^ZYhhSLU52JC{{|x`{kWv3XLTdvMtp8Uq{C@$(==DE{k6ib|*ogX{;Xf($
zKV}<%;s2NA2#j3!!`PsD9vOq`eh>zULF#@;eGjYiK{N;>*ZIh7P@NBI3xH@C29^29
zm=V<9U%~VrMuX~j5C-u<G&+X$`O#^%<qZFkG5ZRJ|1b=y>#<?Zm5ksq0PYox|B*4M
z&PT_*D<OS;P`!_g;r0Fs#{Ys)465_dF{r*r$H@JE@fD2!CE=LiKdAo?!k{`Igr!$7
z{)b^uzaJUPuVDC(j$!paj0W}jkuj{^R|WO^S3vszpf&&ugX(+`)?C5(UlUsAgX(_m
zm5??7sNP4$pgJFf^;a<d2VqcM55bK8jaD-LHwKLZtVBQm`~QFQ6%7APL4AHO2G#!%
z4C?z^u3-ER!qzJo|3fgtf9n+t|80>lsLn^mpng9BL+X7{-S51D;Xeq2>U|h?U%~hv
zf+78WSl#crlJP&d?+@z#uR!$ueOEI42VqdX55s{g82`gCsLl^s!SEl1gI7Z8eNf#G
z!k~H|gu|izeo(y+!3_VSS0FH`-Us2>m5l%6SHLjC|M(S<zJKBhhW{W8>ifemXbd2A
z1>^tJ6%1eus{27WeI?_6P`!_gvsN(t2VqdZ9~tMbVEm7a3s*4xFIWMo_d$Js5Qg>t
zOII-d2le|QnBjl<3TWSd1;hVJC<fL2AY8qY;eYK41V+yLAU3G(2jQlb4F8)~fG`ud
z-w&$$K^Ro;x36IQ55pZR82)#zgy8NK4F6#mT=%bF{NK9*+V@|<@V{>br0$=%g5f_5
zgX;dtD;WQSFsR<2x`N?92!rZ<5T1_I_XpMgGgmVHpS^+sjzRtZxhom}gD|MykHC<6
zf8h#-{~!#i`(YSV?;|k7|79x}{x4q%!Jv8{8LwW!_#cEp{r)v882-aBxbF|@|3fjT
z?%%kA@&9HpX7~@P`#~7g|KAGg_d_wL-iKg@|JzqG{NK3(f?@Uk?v;%HVHi~R?_I(0
zf8TNl-Vf^cuYmOXL4AK1KD>hQ|KSx3U<|7BLHOuONc|6@LH&LhKDmPNKNzoM_<wRG
z=J?;~m5l$-u7KckD;OaC{}l}X&#z$me|{yT-UrqFAbe>hBX|tpGN|7V#h`j0f*Jl_
zUCHqO`U+GGs{3!QWCV``fM`&^AAuqD{@oP}|6v$;3;@J_xPtLN1T*}9xPsw7sLluB
z$15RhaGek8_ak9g-~agv#{Xcv5>f9X*Z;3qF#bo!uzLUPN{0V$K>d9z7`gxdaRuXl
z7zWk(2+Z*R^9l(5x`N?9I)>HxF#7vS#{VD;s_!u|!~dTvAQ)8NgYfSa4F6#mRL6rb
zh!3KX@jp<Rzk=~UgvN}2P(6<gGp%I&55mkV8ULeVhW~6U8UC}Zg3ur~HVmu#K{Uro
z#{VD;s_)S;_X>vpAk4Fp;Xeo?vq5z}ItJDK0xKE+BQV2%ft3vZ1<|nZN{0XF7`grz
zTgmtzgvD1f{Ktl+Rx<ua#<02{M$4{b_>YWX^}oVO#{V#^xRUWd3@fc-_^-Tz;lIjC
z1cuf9AX;rD<9~G&%mA+UL3KX}YprDX532i-F{u96Tgmtzf*JnnuSCU=`kw)B{cpOG
z;Xg74wFf}hVkM;R2i5;ps~G-+u+2(_|Hv5B4zOFv_}?Cm8UEX^Wccr}is8T0N(ctk
z`7rFVlJUPA95eiPTgmX>V<jUTgX(=`?6Z>TKLj)U_kq^^p!(l$732Sal?V*3|5q~n
z4_XDmpt>K1!&Wl>hhb3NAHI^|f5a+=|4}PZF{}*`vy$;Y2*<8u_z%M1dVeLu{{$!o
z)%_rxw36|E3LG>1Pgx1A`&TmlPg}|OA5`~)FsSa&TFLZ3Yb661XRl=V55hUC82{(3
zM8yTG82;z4WcUxF3s*AyhhcEtzmoBP2^53s|FTukdVeLu{|YFE*ZnIQ|AXrNYA6k>
z|LZ_y0jSbP!i_5!ApL)M{SRsbF#K;_$q2`wy1!#3!+#Kl)%`HKXC>o*817xk@V{>r
z1oy9G_z%ONx_{D2#{VEZc_qVt7@o3<;s3Oi2n?$GL3qYW#{V-`G5nvo5`sbX|D2VK
z|6v$Z_k-}fRZRcquVDDUU?l>B>V6Pjw36}vVkEqD1;hVkD<K$G_k(Cq-M?xj<9`Td
z_`iB31g}}e@PF+}RJ>s&<9`HZ_`h)_!~adI82@isiHWzaVEn&rB@?*L2i5y9466Tk
ztz`TU!mxTDLNoja*ZnIQ{_lfgc>TYU@&AF9jQ<aUF~k3Zpt^n~wEl;(LG?ZeA6v!v
zA4J3Je`viAs{270DeA#YNd3<MZ3BR425`L(s{270UhjkI{*{dXQR@DcOyD{nRPVzu
zsQ$kJs_&r~ROiF+tyK*FZ?9nZe`h5E!|HtyeQzb>|NC&v@c;fw2nN;rAp8ha=R+~5
z{zt~oRx<vFV21zCRx<p5j)q^XV*LMdB_@W||8GF`JrV}h|H$~mO2+@_7*_9t>6Hxs
zKdpk`FDn`Tqhnb8|7|7Xe`E}*^C6hw|M!&$465&ctz`I*3xn!<82+;oQon=vFgB<S
z@NXppyxxbfG3$R&9S_2cD;dD`J&28rnO8FW$A&@mKL}&1`$1x$dLJ2s>VFXCT*>es
zA4abKLG1zb`X9sx)%WNaz5W+k#qb}5akT-&Rx<pDVWR5)l??x-k+94vhW{XptqlNb
z3n;8&_z%O1D;fU7FsL1X+y(%#Vf8<#4WPD);lKJyR1B;CL2UpKMs5S>tYY{NX$LU;
z*INm}pmu=4DoDQ{MuWxxKp33qkqA)TZ?X!}1_0Ij7AqP4!?5K_NZk*kvDN=}s~Eub
zKB(@8VOaeSqG9#F^Gb&QE~_B*KB(>oVfPgb|3Mhm4nWlZ4FA1WG5q&l0jc{z^*;!M
z>VFVM)c*|s16DHp4@9c}LG1uo{U5RlR{t~n4_nFbA5{N?Fs?R0%qoWeAPlPeVHj5T
z!)Q?bpSY6Yf6^*Qy$`DUVHh+9fL#BluVnb23F`Ah>wi!?09OBlXh<7?;eXyr2*y_b
zgW3U*x}V{H$w~+=UCHntgkg0*jILbC@E?TH>;IZnjQ_FK|Db+947aRg1djo<tYY{N
zVnf;hptb;{?g!QXAPlSfK{TlU-?Nh8KMdn)158@U@E?X@^*@NlXalTd0N4G<^*?$$
z095zSUCHnthLP)k5F54rXZXK(B?QCje-I6-`(b$1N{0W)7}N#;)&C%j+y+>;3bF=Z
z!%Bw#APlPiVHmv)uyrNF|81)n{)1>(-4CNt+W-vzcdtZXSlth!L2Up~-M@b&!~X-T
zAay^e{)hMf(dvIt-4DViRx<vFV21xEklFx9Ss%;<)&HkgLhAi<D;fTSFsR-~#^8QG
zxc+DOe`zJd|I1K(Wfg=CtNURzs0{$Zuy(-Bl??xpF>?J6VuR{_5WcsH;Xeq&>V0Gy
zRR4o8zBa&<Rgk(LRR6;;aytOE4Z!gK<w^*Cy@KIC2oq`pyjz9b24MLAVI>5AT*>es
zhKXqdfZ77zRx$jCVdQ!rnf+rGr2fa&768@tptb>s2H`)e82<lW3Bj<s9z=u0K{O15
zBOQrgSjG4sf*HUx(<+Al%&QsxgJ=*2v5_&T&PT_f`W_jxuVVZU#;Y0rbF9LRxmGd!
zN5`N#ABK5XGyLaS#qggG2Zpr)1XnTqhhb2ikB&uFG5p7d;r0J2#{Uu+nBl+FN(h!-
z#qb}7L3KVdmRrU6AAuSE%dLW7c-_Am(hdOC`^Xqn@2jk0_^-Mef<g5@2&=DV_z$8r
zRx$iX#-Ms%YZb$P?bQ$rs`rtx{wmNo0K<O}4Z@&$-(VHPf5X*G{|#3&{5M_&!kG8}
znyq5|Z@QZCKZrJ4#Q>%)S26sDVNkyxhOJjKg8Tors~G;nFsSZF#-P4G41?-^5O!Y8
z@E?Rhbw4t8U&Z(zgkg2R$0~;Zo~t1kRQH20xXxe22<iW?V*C&4`}?h8_z%N@s~G;n
zFsR;#;o#Mb|3P(s$SQ{aAPlPeK{$LBr2h}9|6w?K732TtRSaMZs{27Wb~VHQxK#)Y
zs{0dHGyI2PP~8v0@Opn0<NwrEkiLJ~Du(~*s~P@htU|@$x_=ep|Lj$a|8rI`z%i)q
z&j<DWp%~o%U(E;}2Pj&__`hfs0~nXCg4X@382*F$|1b=y`zu#5{D<MHRSf^DS2O+x
z(V%)Cglktb{jXn*+WrTf1<<^T@qfcAhW{WMUhl7F_zz~UV));Ngu!+HD#rhvs~G=x
ztzv*<P~G3Vis3&9!}|X)dcrD(|1b=y|0l0v_z%ONx*vu?;{elFG5iN%P~8v0GgmYI
zpS22s=d5D*55jX-GyI>o3KcJ0#Rwh;Sh$MeKL{^c#qb}5m#kv=kBmWeKL{^h&G3K4
zDpb6B6~liR2G#u_ymmF?e^9-Tj6roj2ya})2=4!b#sDCg;r~`poe#yJ`X7Y1uVw_d
z1$L}r{J&!r0~qgG#qb}5cdusn55jv^G5m+&{i_)N!!W4Mhv9>(A@%>ERSf?@_z1M_
z2hm4YGyDhPW2+ecgYfayj9~iYD#rgHd}<Zre-K70`oYXItC;?uS;YXx=T|X8>i<=Y
z|3T~vs~G=7FvI@~pt>FngX(_}zPg(6KZw4zit+!oRSa-^V->@H5WcyZ;Xeq2`v1uI
z?kYy`Sis#?4F5qGRQJO$sP2ETis3&pMydN(GyH$Nn&CgF&PT@ZdVdw;|L0H)s`nw7
z;s1+O5d3Nt!+&&)T>rma#rPkDL3KU^GyH$I3R2(0>-|*>|35-8tlmeaL1O@4S26yF
zV21x+S0OO0?g!D|S2O$vVNiXK3xn$VU!e8?6ocyZ->Vt^gD{AVj{mL(jR`RP2hsmm
zG5&{RaI7N;hE<SyA4bFKd=MYRM#t!NKa9@?nh!w2?5i36!!WKk0OxARSO7*FU=^g^
z2i5&B3~CEtYX?x$27uN7AX*%y{%80vu?m8TYXd;)d|2HNqG9zvj7F~eL2OXn55nm6
zKd9~pVb~Y|tPKFF`#~5~|AT1cx*x=b_x)Efg4+O~dLL5%gW3R~x*viOF%MyZ>V4Gu
zA5!;&`v2J40HC%2tnLTV$aO!64XgWMv=eA9U=^hPM{fgw>V61j_z$Z4VHnf~0M-34
z3~B>_u<vSy{~!#j`$2Rd&iWrx?}O@o5C+x#AdJ2Kht&O`HUOyZ2VwO3AJi5|ScO^t
z!`c9#x<7Rl!+#J4)&C%jwGFU};eQrV-4AOAAlLsOb|Jj}ht&O`HUPZuk5>PK+5zZo
z09gHBy_(^F%_<OP#9RM2t_HOMK$!7=D^mU6x)QAou!`Y-=V}NhrVRj^1Ax{4AR4(1
z0IT~!G^qXuVdVNB(FS1nKWh~P!|H!*Z2)lJAFck!+6Gv~@E=tFgD|c(0I2Rq#>n+Q
zh>cqRgXRGsc*{!cZ2(9+08;mZ+5n)sAA~`5KMcd_e|X=26~q7it04V;SQ`LDgX(@5
zKC+78KL~^Bei)6d{y({z0Z080srx}~fb*-N{eNiv58{LBeHgyD8ruIyY6pPoeHgyF
z8d3Md+5xcoA4VhB{~$KF{|~MI(c1u^wg7Vd4`M%B#qb}5L3KZfMy~r|Y>YO*YDk?A
ztNTGTsPB(n|AY9jHo)7}4FBJ(g4Fq-dLJ3X>VFUotN%eXa@~*2My~f^Y*4+Aj6wB3
z2;-{%VdAhh0I1%FVOZS{;=|aWdLP6F(f?N=wF4l<KAdD+&F~+DLG?Z3Y9?^sAJpFm
ziGgTz%(8~@KkI6AjHv73b^aQL{~SmdT-Sr@dnC-Yh7sQX=U&bDpL;a}9E0k6WX!jQ
z;XerTuV(m<j^Ta(H4OiS)-e1RUX6)C{eRKbjQ`OwsNRQR$<+-1v0-@Me>LNOnbnN{
zWx<%?zwBxV2G#fSs~P?yW5v}B|B<oM8pi+1s}UGp@2_F_uLi}SzCR4Z>V3`C4F6#m
zRQJQM?rO&W=osAZU(NL20Nm$?^!p806RQ6i!2N&I)eQg5)-e1xUk$1ML3O{?YDVxl
z0Eo6;&F~+FLG?Ze+pT8!Z;yr@)-e8eT+IN-pgJFfUDh!E2VvLMjQ?R6RQG$VX8P{|
z?el}`eGv9q!}#BOH7W+z`)e5f`>kR4@4p&>1J*Et`~N|!8UF{ZVfY`s8i7OBF#Hc)
zjlkf#e>LO(h}De$Bf*&Af8=UN-5;}>;Xe$6>;5&2|Krv${*PY`!VLf8k^BB@82=})
zM#X8X8UDjCsNRR+%+-wl5t!kB_G$>uUCr<x8H4Kl0#Ka~!fP1*7p{ijqBRWvi&rBs
zXbb>^%U3i0FJH|7$DqD{6{yb-#i05hglpD->VAg*wW}F$*8h#G8UKUo{}yl?08;;h
z+5jL7>i@T|X8aGqka{0f|97on_}{%6fx&(M)r|l9Rx|$ZU(Eo=pgMozYKH$X4Db7|
zX8b>84a5Jbs}UGn_pfIBKVvoHe^B2aglDZ``agR$0~~|ueGs0vhVefL&tJ{>AA+I%
z{?!cs7p-RazZeNGUCsC(f*JlVT@9)GSFB<955g-~GyF%!p#J}wH4OjPu13Y{S2O-c
z#-P4G2yb4^^ndee1{Ayv)Zd3<P~RVd8UF8B!|;FSY6ync`D+;e?}6gIs~P@-FsRN4
z;RCCo^*^ZJkAy*W|KZgP|6v$Z_a9rs2<iW?Vf+v3`@=A(-Us#nLG<a>nB#w-dLM>C
z^*yNH55}t*{$E(b@E=s?Bjd}f82(=Y_4lC|)c1#AhX2>rF#Ny18Wn^3{V;rM4degY
zt3jCI|LxTf46gH6GyJ~?#rIb;{71&1I{)EnhW{`Os`o+o$r?sT|9=hR|EH@_F}UBq
zn&JO*P`$r~;s1*@4F6xQM#Z4I9)w@7X8ezgL4AG@ez%6<Kd21=qTjD(_>YW1bv-iv
zw3_ih41ZqD_#c89{(oK#!Js<-+iHgY$QV@DqvIcI82|rV4Z{rof3C)k!S(za#{Yky
z7*xlDFgpM5YFNDwq8T7#0Pvb0!eCefssBOsJ&4V;hVeg$2Jt~`P<@ZU4F6fyATaA%
zhW~79uw&%9AI9cf%lIE$=Y#6~H4Oi`uwYOdfM*TEe;5YU`REu_{|l^P_>YW1^*%Bd
zUd#9&ghkdc{zt~J`d@4<!+#i-Si|ri9ZRiY{Ev)5^*%C|UCZzvgyq&S{D)!W`d?uU
zBe*>PqLtP#{D)!XwG97N)}Ufg{ja{35!?;{(Hd(Q|7)yafMZboueFBpKMd=vVf+un
zx@(#K>#k<_ueSz)4c0LHhhd{NjQ^1_B-Rn6=~_s=532h?*kTPMxD5cJK^Ro`TdiUE
z55m@K8UEX>L11wGzlQO@{Tjyq4r>@tu+tjG|1b=y_mQ#N8ixNc466HK*mDize^A|z
zj6v-HpEV5sVHi~ZgD|MxN5<f~e=P%~4X~EsKdA19;jlG~{~?&+f5aLDj#|U;9~pz{
z|JXH*;C4XV8ixNc466GR)-e8u;iNT;|6w>~4b%UWH4JbJYXfAgVf+unp!z>+4a0vJ
z&RN6oABOYRF#d;NhW~kM82%SPF{s{0#-KJp$r{H05X|tuYz+igtYQ3*jNxs7H4Oi&
z*E0ME*Z*sn!1X_<4S<Mw2&-`|)Bnb`4F8+fF#T^@!|)%}1_0sKHH`n;kZ}8IhW{OF
zAQ)8l!!W1~(6ff|f6p2QFz#E!@E?Tx*E0N{um*ua_5Y-`4F5qGRPV#^)U}NNr>#L?
zP~8v4YZ(5|Lc^eTz#M43532iNc)=Qm|Hv3z|F2>EzXSzC>i%VG82*DWsP2bhQ2oDZ
z4dee+YZ$;7T>r0S{12kntzrC+j6rRH4Qm<xgYc#`4F6#m)CSnHhVefPBewxS^*%C&
zwE=cP>wQT5&+vcG8ixP-&@iYC0K*5@GW<WZ27+OA|B*F}|3Mg3|D)sMYZ<_8fm3T3
z{-0RG@E=6~2Tl4wq8?11S;P1rf*JmwTf_AK+**eJXV*aLeo*}n!k5-Cg4+Qg8icQ`
zfwloa^cqOL532iN7}f^3v4#=c9st$*x7INHhhb3Ne`gKDe;9_>{c9M(?SKbs82+PU
zSp5&8AFW~h55k}}05X2Mmf`=?)eQfitwCT=-H(i4tzrC+j$f}~_z%Nx)-wEuVNl(V
zjNh+i1h)e|tYQ3*j6bbm_>YV~uVwiEWep}quK!`|?`s(U|5(F-75`kz`2QEUO#o>J
zfY>k$s_Q{)5RH!itzr8AXAQ&uziXNPgW3T9)-e2sVQ{1)5wN-*RNuqcFd9_<!!UBa
zkIZIWjlKQ{wF_YNK8yy{{~!!$1CU?;gW3ZWw*l7Rum3^g0Lb+}h%K{*;Xg7)um3^q
z0OU4+{2GS;3TqK{Kd21=s{cVWavK0t|HCk-{s&=f^*?eu08;-m{MT8-fKmU0+5)ip
zA4HQ<|AYGfuyz2r{)g86*y?{!TL9h$Sc_W!gW3bI`X59i>VJm+uB#FCKd2o5tN%eX
zdK<udHKOhZwE;kNKL~^Be$Y4ohz4PN^*?M3APlMQ2ektt*W#%Ek?MX>8vs=QgE02`
zA5r&%+5xcoKOL$5&sf9oKXWzq`agFqY4ty(9RR8OL2ZEYwOH!^H4Oi&Q0jk3I{<(E
z4{8HIFlPPF@V^aO_k-F1u(}^c6I1_#+5(`uAB16bKZwR!|F2>AKVuEU|Cwu1+W@fo
zAGHm@@PGbV)cPOP7FfK7@jnPd+5imym#l$cP~8v1u=*cF<EsDHu0^Z=*FfriQ2h_W
zu=*cFV{HShVfep&Eu`-cYXczH|ByBSr0yrT{s*-Mu(biu>wi!i0JHvQz*_%<+5w=t
zAA~QiMXvuD{)6iOOVGL>#J;)~wG9BO|3Pg5Sp5&8VRb)<2G#$!*COhFP&)wB2DlHZ
z|FP8lptb<0-bcom^*_UZZ1q2=Er4AAzg&x4|1<o5wFZL8tN$7Pe?Y7IVeJ5H^*=}q
zR_}x9H4Oj1uZ3V-Z2*usY#abo-@`Dd&PQg0_@Fu;g#WH(AiDl%T+8sEaV;YpGlBUG
z|3Nf14C?cvV^Cd>j@j2T{)b^uozJ<J;XgX&UW;f0fY>k$>-!_q{A(HhW5cj90Kv74
z|3Mhk=f{Rc*E0M^$FTlCh?ZQ-_#Ybv)%#Lw82(GIg<w#fkB-6h{#wTW@<<p|?;~SS
zy^oAx^}p&`#{VF!zLw!XGKSUvnrj*VgD|Y`52JP0GW<uzpgJFf_17}~2VujtjQ=5+
z0n-0p$MoNLEdx@^55ffX|3TPn9piuVwJ^-^-(n5Jf6KKH8r1Jc#-MuNb}i$75Vl{-
z@E;jFu4ViW!=QQ}hMm_j{C8c8irv>T{s&=Doe#%r8UA~%WBBjA7J)(aJ_!4+W&97q
z{%aZk!*JkQhW{`eyq4iVG7eqK_#c89{)6g%7zWk*$T)f}<9`Td_#e9#fx&hETE_qJ
zPz<jB*E0N1Sj+G~83}{x{nWLL|6v$Z_k%FF-e1e`KNE^!{eKV*s`nw7;eYO0NZ&ty
zEyI5pE?mp-AB2n7GX95PhW{mN5ExYNBV*7QK;>G7|1b>h`>$jCU%Qs^e+`&s_+PgM
z^ZW-;-yejV*E0TxVNl;6jMqZy{r0sC|3Mg3_k(cfTE_n%+`X3ZfA?BQzaP~9?_JCA
zAA~`De;5YU`xDnP{0CuB-4DW(*D?MFVNl%<!;momhX2#oLh5}`-4DXE*E0S`#&gy(
z{0CuBosWz`bv_6$T+8?$gh6%x;<b=Ef9YC=|1b=z`<Jg}{J#>88UC+a3+el>Ud#9&
zghBN_GG4!y;Xg74)%_dSG5+7Y78P$<!|;FWS_lT!`^b3bTE_n{4665ct!4PXdmRMt
zUCZzvhGAm>``0pp#{)q9eq;<9130{v@jnQI>U|JCx|Rt%4sd)e(|>Ti59<4`h4lMR
zuVwguaxEhmqu2juLH+%;O#eYNtp5+H`_Hdq{12}8L3KYEGyK22mf`=UH4qxa2G#q>
z`1)GL|Hv3r@84L<@c-sIhW{WMROcgOP`wYrch@rhzq^j%|NXV77*y|r@WZu?|3Mg3
z=fm*hbqxO>f%^McFsRN4;pb}^|HCk--bcoudjIuWhX2SI*6#<=Z`Uz`#{s~7eo((3
z34`i<Wc+b0!+#J4_50B=sLluBuWK3qBQT`Sht>Ts8r0v%hhg<Shz9lTf3Icw55l1O
zo)G@OmhnFrLyCPk390{KZ2(BU4-*5`|IF(c{-a~``X9yzw*l5N{AXW>iP7tR5T9!u
z!+%(vk52QfW%$p#j^RIy2C+dHTN?mW@1tYkwG97ZSY#c;e-K8m|3Q3E-7mh5@jp72
zT+8quhGBI-GL75@kXr|;`x*YruSLb6`d@J!WDEdABiH{Rw#r(D|ElW{7*zjjtYZYX
z13)yW-bcoux?g)8!+#h?ssGn8g69B0bw3Cju4RC>0~r2;*hcFZ{(~?);-L&sy^p{Q
z|IODzu*Et^{SRsbfH0{3w^_&dA3`(yw_S_C$o0R&Iz;^sY6m#2W%v)O`(YTl4dAv8
zQvZY60PgD;{(C~}eo*}n!mu`g&pJl%_&=!b_g%;EAB6qaGW-YOfOUxaAJh(j)&C*u
z82*EB=vs#VFbt~y!`CwW2Vvy;KWZJr|LC=-IBp%|e-MV%{qbuV{)2GhI)?u+jNAr*
z)%~gK82*EB#yW=oAPlSfVRZId#{Xcv4pQ%f>V6Q;TZgFoL2ZDdb&TNpzi1u9|Kha>
z3~B?Eu4ViW!if5x;eW+CMBNW+1HkHkP~8v0wQCvvgD^DO;S{Lu2VrpCzmDO5GZeS3
zW%v)mZR;R)KdAl(VNksf#_JgVcdlaq*Z<%)z&c3X532t`7+(LcgVg<?`X7Wr^*%C&
z)c*|sr>=$6{h<0Egh6#b2+vvvtN$7P&xY3hbJsEahhbP7V8J>@@EpLxbqxPO7*zLz
z@RD^5|3Mg5|AS~y8({f5hW{W8s`p`d)jCMs532t`7*zkSTgUJphOyQEh&BMj|IKR|
z{%=_asr!-J06W$(LdF2rf$D#T|2x-0FmnA5Y6rmU|8<Q2_pM|2zaI&M>i<LQ82`g)
zP~8u~4F8X;W%z$|9V$j{1DsrkRR6<c9>M_C`!Ecu_s^|k1kVA0>VFWvxR&8R3}0G@
zsQW?nKL{h&|JT+r{J*{y6@%)1Q2h_XDE0q3#{YNLGJxxTQ2h_W$ZdcJ>lpuoFsSZF
zU`V|Ws{dga-0w$g2f*rmIK7VH|I4)q{AwM;e-K8l|B>0C`X7QB{=Z*~i9z*0sLn^n
z81?@;hW}sIG5r6!7CVO3{Xf<*{zt}`?Er@VKi4Ag?{y6Skuj+Lhw(vdWc+U(r0xgP
zkZ6aKu(}>ZGpvKu|4bkn38UBlAU?}_#{VG9wvORHHjLf|;8@S_AA~`5K0XX;2k?OE
zeJBRi`RJH$J>!3Yb?BJkzu-Cq7Fy5nAA~{mJ~9T?`5-K|j`2SXL+XBp|KjTqSZW=^
ze{_so|I4gr_z%Kz>lpsSFmnB`0IK()7*zMeu+n;l|0?THF{llowx01n41?-^1ZMcJ
zxsKt#)_Men)&C$`XFVf$96%3L|AR5ZfBkg~{|(kdXi%MxjNuUvWkBkFhW}>kAQ)8t
zgX(@52G#vm>lpuAu4DLbwVvU>%{l}IwE^tbG5!Z(P`wYq4F4V0G5mKz!?60_Wj*76
zP`wYspn4yKJ=Qb)hhb3N55nH-8NuTK;QD_Z!+#%W-4Ck&LG?Z|2G#vR>lptBt!DsZ
zP~8v0q3ap`hpj_kP~8v05$hTLgD|M>hhb0~AZ8uoe-H-M{SXYP_Y>AJ{D)y!{hzd+
z@qfxX7-smN0<HVg)<f!kQ2h_XS?d`8XRTuZ<Lq?||6w?1J;Q%c-4Db0pmxAIhX0^?
z9~pz%043`f|HE+UI)?usT(%xk_k-$x5C+x#APlPWtJZ<~{tV#$f89EU{~!#Fb~x3v
zj`4rPdWQcXx(QnMx2$LQ55l0jABH>DG5+sZ#{kBldLM>ib$`z~hW{YkyN=<1-+Bn1
zu#VwB3{P6e_#cKL^*_V^$?F*YPg&3Kf7&_(2G#vD)-nEv;aTe#{=+c1{$I!Ne-2Xp
z4{8U1>;82N{}(_psQzEHp5Z?TgX(@5Ubc?mKMaHFei&Y{p7B4Z?uTJe-M?l%!+#it
z*Z=Do!D9d$)-nDEVNl(_aUH{d5C+xz$QV@rZ(GL*9t!}`JJvD$hhb3tziS=Ce-H-M
z`^Xqn?;~SS8{oitMsQmIM1$G@AbfZ&!+#JyvX0?D3?sJzPOM}655u7PAH)XH@Q8;p
z&a7kj55nixGyDhF{p%V2gX;bB>p(OFUs%uZA5{0lFsR-~##h!e{0G(jFbr!0+yM3a
zp%_;GgXlZ!82+PUP~CrTJ>!262G#ip%<%ugI)?ub*Fx|kP`@9FVf8<ZezKnN|Fd;4
z%<%u&I)?wxk?@Q4kUAe!@1tW--TwyE=U>n8{|ywsUB~br8NXZ4@c+X)OpM$H__Utk
zKL~^Bd~6uj4*0f?@jo&~)cp+qf2@PxpX(X^gYjC1|G(CuVo+TV69cjTtY?I`2SD{a
z0yF&ow+@6E!8A15;S}R~hX1ho9>!)~&j=R-vB7u)!++)t4F6fyV`Aj`pM5>Ue{>A0
z_pxE_^$h>9VOagoyPoks41?-?RLt<7Z#~0*0Z^U4p5ebB6ocw~bS%7q@xSPLbj<Ky
zY&`^vZ(#T@u^u}HwE?8pGyVtT4Ujq?RPQ5W`SlF{(J{FGU(fJgaRbADh4l>oLG?Z|
zR$b2sZU=y95Qf$L>KmBA?Eua74F8catp3;D!1y18LG`}QdWQcntPiU1kua$K2Vuhv
zjNpF1@p{JpAPkRqD8qCE!+-Pj4F6#?sNT0+&-fpXH$durP~C66ff3vWuwBpiABI77
zKNzoP_;0tK;lCpihP45l*E9YHVNl)gvYz2T47;yq_z%LcdLKl4ZeaWm!r;0eRR6DM
z`0u+OTK7ZQe(M?j!*Jkw#{UousrO;^fA9u||Dd`bhQV!s^$h>RH$durP~8v1(d!xi
z!!W4sk6F*~KXwDd|M>N&7*zi!u4nuY!l1ezf*Jm&u1Ce7`agXG<NwU{FwF2jb3L@~
zU(fJAdp*N{P`!_g^Vc){N5+L482=ZnXZT;do)M10b^m&X|D_uk{)6g$WL&wP@jn7H
z{I6Zl^uKxoh(=&+^?&nvCUE`Vyq@7d2!rZ<WZb@<@qhbz1~3NI|DEd@{=;zBdWQcX
z46gUrGyLy`Vp#nTq9?9r{13yE)-(K{ya9nhbw3PGU(fg-hG(p2_z%Og*E9S_#^Abt
zJ>&m*aLn+3-g<`r3(+vB?g!ze>lyzqUC#i=@cMr}<9|@SkBnEZXZR1pu)2Tk2FCv&
zydG5dgE7PZ_3Ih_Z&=Upf8z#*|C`pM;;ri$|HCk--ru&K;s5px4F5s&&h-rcVHi~R
zgYfS4jQ@9UVEDghJp%6s)%QpkRPTfE!3_-m53FbSe;5hF>;CnO|BtR`{C^CJPp)VB
ze{4MixD9Y>J;VQ#>lyxoXlS;FQ)kyR{)b?O|L4~;{Rg!J&TnA&55k~&9~oa>&-nlH
zdImTK)%(c!`g(@{$QV}t-(1i5|K<jU|F_no;=Ah^!R-JL4Z@(h|K56r{~&yS1H=D^
z>rpXE-M^mk|Ks(H|3P&=1T*}9vL1rL_5ON>|Id*ysP0F`uh%pFf4!ao1;grn5dC%o
z!+#J4)%oZc)CTytp7H<34Gbt4RPUqXuj?8AW5eLOe?7zhZ&3Vw1GKJ()%jRxP<{V<
zJtMd+0Iu&rb^dzB{~$I5GyMOv9vMUG{J$F*{{LSO#qgMiFhF%aGG+p`2R1PN2Z@2$
zpgJENQ>zWYxdD6q4{8&D+5n)sA4c<TVE7NhpgJEN!|Hxy8o3Psss9=Ni>}ASpf&)g
z{)b^~?EvWw4FAzF!TNtaq~3?s{~#K<{)deLfa-oQ-oWr*Z9T((btsKo_rutrHUOyZ
z2Vq#f52JNAF#OkB$M7H44gl5tAZ)k+GVTv*2M|;LgW3X?8yNmuY+(2gqG1?U{cj7c
z_d#_(2-|PKYy*Jme&-Dg|3Mg5_k(EH4UqaD)CK@yNd3?7-*W>5d#`8s55hhhaM%C-
z8yNlvu18?x`X8eW0ImPg+W?UpVD&%4|LFA)466S@7`+XUxPjq63@5E;_z%O#Z2(yP
zpS}T7?}O@o7zWk-AdFo1gV@M*KZp&h|3NgQ4FGBjF#IpUTmLisuUrqowd)!FSFMNC
z{jhcbw)($u18V(`-Uevh0IB<7Z2(x^528VJKMZ$oz+V6NZvfT*4F4ythhXITAH;^$
z{~&t$dWQcn46FZVZa}O5*E9T|y8(egbw3Et-vH_V!`cC$x*voWZ$Q-juyz2b4X}JY
z<9`r_)c*|sSFC6Fzj6Zup86kB?}O@o5Qf$N=xu<_8yNm?U5~(^dLLH*gJ_ice?0@Z
z?g!QXAPj2*fa?Ff8yNqCXfTG>``GG#P+I`h1_0IlaJ+%x|M3m5`k&$d$qhu-{~H)k
z>VNb$z{L%Sx*ygKK(7C<Za}U7L2ZE>>lwgxKdAl(VdOTz?F~rv{|1KtcQ-)leo*}n
z!k{()2xDspJl??YABJJ|J~EA5_k-BTbw7yxasz7JkK7hOuK#hi0oJ3|{jjzGdj0=-
z1Gf5~;r~}?y^mb~gW3Qf4DRz|ssEA1LG1t-hSmAMH!%DMVGtiw=Ywb%##R3_ZD0V`
z_2Bw`1H*q%ozDcT|Dk<;to8p!hX1S^aATA)fDH`)IW{u<2i5oJ7*yAzW1bC+|3Mg3
z|AR5K?uXU?{2LhlqhsW{AH)XL`3TJLUw8v*-7mI*;Xeq&>V0%tas$JEWQ<<_%Wh!!
zkBl+;{~I8Ee^9*-!=U<Kc?08r7zWq->ly#6g6jN@i25JY1^{7Ly$_<bp#6SO-4DT#
zzCWnm2ekn}G_39i(V+SsR{w+A03eL3{s;B_LD*~~WGnzw_k%FJ?%&7=ZVQ0=|Hv3z
z_iteM532LgvC{^|{~!#m`$7GGX#EeW^N}&A-iKjWy$_>7^*+4*-vAj00F4EJu>S_e
z|Dd`bgkkl65VS1-s`p_S)c+6L!0;c0LG?ZigX(-_46FBJHZc4LVNl%<!m#>3VFTm;
z1f;qj)CNf2!0;a#BewxSbw3Eh>iw(@4F5qGRQJO$sNT=r!0;c2LG?ZigX(=4hSmQi
z8yNnBFsT0z!l3?t`3A=S5DcmJVf8<#&Ie&oI{-x2ZD9CczaGo_zYR?P8#h4u{>@Oj
zbpzvnP`wYsu)4ov1ETK_s{cDTK>Ginx*vq${r?S&|3URW48!XFNl1NvP~8v0Q#UaF
zhhU_-e*?q+85<b>gX(?|M(O`=K-B%9b^xsI2i5-|46pw;GW-YC{V)uw`<HEC{13vQ
zdLM>i^*^ZY2Vr>se*+_U{2$c!hhT>P8#X}N03aHKL3KX}!^QwWbw3P)+5p?2{eDor
z55w^Ke*<dW53Bz{^*#)P>;CnO{|{_r_`iPx!+%iy55u5(AB2x=VEhll;JSYU!~dgD
z46FZ-gX(?|UeECV^aj-U|M&kdyzhS&H0}@W_k-$v7zXwKFK%G`532h?7*_AYXi)tR
zs`p_SROiF+jSZ-EKdk--)%!3E>i2^&sP5m$@E=s)qhsXy|Ir4<{~!#j`(ZSw?ti)g
z(*Fn1pgJENzudt1AAuSEqqhOxY+(2g!=QQ}8H2_E-fv*|52HbBSe=hdf7;0SA5`a~
zW5^f)q}~VB{UH2p1H*q%eUA-;>iS<B82^JXG8@DPVNgAfj6wB1j1OX?W32W6zyJRk
zHZuGNwE;kNK7@wxAvAj358{LBeU^<3|3MhU#)jE9F#JcxgzA4#eUE}SLi+olIv<4j
zHZuGN<Mo(zKd3DLs`Fu3XanPap^cC_A5`zdFs%O%s`rsGdfgA=BiH>PHgf$hvytIH
z2;-{%6+mPDX!XC+Mn>=)0Icp;-oOB^_d#_(2&-*`^!-8gJ`BU^eK5U|;lK6<R1B;4
zL3KX}gX(=a-oWtRU?anSP`wXo3xH@4AAS8VsNOf(!0_K}BO??;`u@1<e}@0o8z9(j
z1H*q1Mz8xFHbUxtQ2p-&t@puw|BVd)T{bfON3Z`qHZcD8*vJ6Ju(}^aW3B%|?SKso
z@VXzp{s*-IV0Ax;2G#p846FM=G@|Zj_#e3e(&q=Y0YG&>2!rZ=5C+x%u(}_){!iM7
zTK9w60jV1p{-<q(U{Ku;!=QQ}8H4KooQ;q<09f4*q6;=K{s-0nAR1ElGyE^y0PXif
z>wZ}MU$&7EJO==)`^z^l{IA*oX#;?05C+xzAY8MN@qgV05XRj90jm2!xM?Hf|CSAm
z|H1S|hW{-a8Q^UIQ2h_8`(YSX_k-$xP`wYsp!&aW1LJ=f?%%-hAA~{mKdA19VNksf
z!c#Va>VAg*Q#U{`yzh^r{-3jf;Xeq2>U|KNw-GY-532WJc+p0N{|h%T{0Gsnx*tY^
z>V6nrzJcLC2(Q=(>Gy-`ei#O|0oFjr{nu___z%ONIv?Ek-vDU~Y}^2u1Ax`}$TTta
z|1K<T09f4*qCs^&2!rZ>5Qf$LAR1KX!|_H$y?<;Y!+#J4)%!4fY6IhcFy4q3|Ns8~
zKeLhH|2a^<9|^<ieh>|*{~55>|5r9J{Kr-QgX(?|2G#j6d}|})e^|W_qd|Rs7`}(2
z{s*-OKy^MGZ$#?*L)oA@9~~pt|1UN|>U&U~kBnjceptN^qhWRbyN!(Cc>qv-j}4>O
z{h<0Egi-5%hX0>8F#HGA_t-GD`X5xsqhf~tzcwK7pN){dKB&$Iu|f4chz4PF_P>pc
z|3P9Pj9&i3>VFu`3~vuW>;H`m|3PA)x*it>)&Fc88UAC#pn4x0=Gw^k9~CqF=i12d
zp9cx^Zi3eNu(}_O2G#ol8yWvYFax;G2i5z?Sa=h|f02!t7^VK-#PDBYBPIsb`%)Vj
z{=+b+&PT^`8yWs%!|*l$sNToG4F6R&GW-X%0YEgU?uTLZO^p9RY>kZ!|6y1QRQGRU
z_z$DCH!=Lz*@(cPx?gW2<9`H()cv6P9*jY206=YlO=$W5|NsA{n;8C^g6n=r8^C-M
zBV_C!)aT#G_}>bS8U9;ug4Fvq8yWt?FsS|qVf&4Y|3US>!$yYxFbuByH!}QphGJ0N
zkBr?mGX8gi*8A}Ke-p!h&rJ;fy*5HHs14w|k?}u-X87;75rP9YLfQZz8iYahe$YmS
z{~#Q^iQ#|9Mg)e{{~$VIBjbMvX80eu2~zh*ZDjZl!k~H|hGRD}{*MD=hW~LJ86bWC
zjST-2H!}PO)%`FGs`pbiGW>^Oc>TYL;eW<PRGht$;Xe$6>wi!iU?ZgepSO|mKL{6W
zWcUxlMH?CZBV%yAzmXBr{|D9mV9fBpY$L;eP~Bg#k>NiGgX(=4uHMM_A5{0(Y-GS$
z|2J%80Qdi4^*)RS*Z-Rs{<m#J;Lc49|6#amBg20f2G##P8yWwDaNkCT|1jLYiQ)f*
zjR-t>BjbM<p0bhQKMaHF|7jZ;{(~^6-w(qxH!}X8wUGgiL3KX}&jr={Xn4U!hX2SI
zRR4qUl8uc25t!lsvW*bDd=tZeP~DG=S8ZhcziJ}`7_ZsL@E?TNZesYqZX*JN+5j-T
zaTCM;O&bvyRR3?;$nYPA!TtXY4F9)pf~*19v610F2!rZ<7~Z{+@&6t;X86B%1H=D)
z8xa^(@5AuHO^p8!ZG_+>8yWs1<D;7(^**TXhvDO!82_Kx2&wzQG>-Zo)CK@yP&?r4
zCP;hW{3eF~7d9d=sPBJiBg20X2G#p88pOW3iQzw}|9@>G!+#J4)%!3S#J;(a@js~U
zzqOI!KM3Cjtp(V~@c+(6hW{Wohz8aDFbt~iA8cg&kH8H7A8cg!{|E^`-o)_#$wo{J
zY6Cpm$oT)+Mg}+r)&1!B)kcQ@$QV}dgXxV7|KDz6`2TJrCI+<uK5S(CkB&igJ_0lR
z|GbIe|Cf!}F?t)|`$oq9ApBz^<9`Td`2S-g0>kS4-=I2wBcu%gs^?*R5E~o*yNU5X
zNE}rEgD{AXUjH+0V)&1aLG?XI3`DbRV*C%rn;HJIKr!nk2pdErW90gueG}t<WX!pV
z@johN_|LVO;Xn5#>=<14Z)W@tqCuE%Gvj{{=HJBlAA%YF^KXJ+fsG9R1vjB$P`!_g
zMK&}37u|%68UBlIV)!o(#S)tt{v%__O$`5G7*zjDZ({rp#+w=bOK)cQFS`j9%Wq=*
zkBk*JGX4i)rOgcg6*n>b2hqx#82-aBsNM%*)lH25VHi~R!?5NihX3doT<>pY{I9c_
z@xSgS7-smdy9t8zHZuIz--N)1n;8DXu+c__|3;fp$NxYpK*06?CWilJn;HL`Z({my
zzKP*Ks10BVs`ocB{kPo2@ZV}PwC)Gh|C^w7|7OPjwwoXrRQKC&V)zfj4x1VNJ8nW?
zP~GpciSa)SyKZ9m55sPo8UDL(LSRt655iuX8UK54f?<aL-kTWy`-1BIO$`72HZlD7
zN5TP{8UF`vVt`{%-4DVcn;HLuaOft+|1ccBiQ#|5W(Wq?{h<1P6T|<g&5Zw}H$m}c
zhX1jf82-m?hT!;34F8dF(k90LV7!^(fAS^-PT9=xKXnrVXKZHt55k$782@K(Vu0hE
zO^p9RICm4{e`K7uk>P*-CIl|r#PA=4i#9X<FWv;h4F5|vG5jyv%<#W_6DkJP{gs;-
z|HCk-?g!zT%?$r*Hz6=6&XIBBCWilwn;8E$ZD#o2ya|F^H!=K&;kM0;|Jye)z;V}R
z#{bB;dlTb-5boK`@V|Ex0)y&)5T3A^@&Ck4FwF3O%4SqNbrZvX7zWk<(>F8x2jQ8U
z82*Fstj!GnXKzAaP~8v0^ENa52jTgf82-aBsQzELiSa)OFW$uXABLA~X86B!69R+l
z{>_a4S8Qhdzj6}{GyGq<iQ)fhC<fL0$awuG#{Uq^@PGX#2;Q`r;Xep(-o)@98E@Uh
z_<!qW1~3NK{h<1P6T|-<n;HM_+=Rg3x_=YX|2>--z<BQ_hW{|Ue-q<>WDKtRH#7V{
zxQXHaVKfY``!_TGKZb;lZ({rp!zVW}{Xe;h;s0qY?f)~I8ULT%1i_#>A5{N?=nI<}
z{)6zvO$`5G_|j&^|Ccv2pkQ#_532t+G5o)_neqSiO{f@L_itwSe{&PV|67|G{@>n&
zia~Y%-A#=DVfg+ghW{}9U^Byi5PrCc;XgWlvYGKexDBwG@&D6JAk6Up=_UkzzKP*K
zI)1r{;Xe$&-o*GHf*Jn5-h_(5b^m5YNE=`?<Nx=YFfqLT-^B3$<7QM0s{4`gm(7g-
zziz^gzi(pr55hk-GyF%!KQ}S_$Av-l{vS}?4#l8){qH7*|9>_^Fo+GojQ>IO|4j`4
z|7~V~u#q$W|Nj_uKd9bE#>|@-{v%^p8vsTl*Z;_DSX%(O4FF<uZesWk!=U;f#>UnT
z0M+|2466Gf7*glM>V6oFtqlNb6JWLhAoV_|?uTJm8vsPZ+5oV+A4W@Ug4Fw<x*r)M
zw*!#tfBDS}|3Mg3_k%E~{s&=L{STu-Z2%BPv;i3Yt8YSJY;6EYJAmOoh=$euFd9_<
z!`cC`x*tRnQ~yKS0Fe40)D8gE{U8jg|3Mhs|A)2#Kx|n3Z@U>%_rvOcoNa*34F6p=
zBkF%pI{>-<2eCo*KL~qmhSd9@x*vu?bw8{ffZPTEv60&VAU3QG0IT~$H!=JNVOSdg
zx&8;S!S(-UhX2t}3~B>_FsL1XT>pdE;4y&B4F8kxv;opLG5iPNjLnF;AJz^4jRAn#
z03Zx$12Fv0MXLKj?SMk0`XAB;VEA9W34uXv01!rQ2Y~DT%?$r5H#7XN-o)@9R{tZn
z0noDle{A(XdOM(PGot<nwFN+90I)UysP6CH#PA=4@wWjO{!iQl!IL*J{0CuBTL4z~
z!)Q?555utfA6pv$RQJO$to{elpt>K1A@x7Q|HYda{^M^0K<a)_{SU&hHUNl5Z395+
zeOUbu?*HRz13>G4P&)wD1_0InAT~-HU=zdt-J2lwKd2o5tN%eXsQw3y1%T-N(7GQ~
z|AR1k8vs=IBew$}bw9)Z<C_@3bwBR<pW#2K&Ie&oy$_;6^*)FVqCpr||HEipZ2(aH
z4{8sfwgDh@Kdk=8)&>C8{or=MW`_TFHzVqQ<aPjh{ST`9LHNmLhW{{(T>rz^_}T!V
zw!o{+sC7TAEdXi*fbhG`jQ?R6wH?6l|NSNi{y<h6fZ_kwO%M#K|6v%`2EbMK!^A=L
zKe!zLt@B}ZKZpj^`49}L|3P&>45R0Nrp=5fZ2+dt4F6$bAR1QBqtmQg82^JX+h)f9
z*f6NBN5>qSnZSL1P`!^0!`c8mn;HLuFr>bR^!pKPhW`Sav13qu55q#68UKSYsNau_
zVRb%;7Te75AB16bJ~Az}nejg=My>y4wlMw&VY$tW|6v%p{#V$-@E?Rhbv`my+06JK
z8N=#*7_G6H;Xg8l)&E+X8UKSYsP7NK4F7dDL;C%ox?gWI!+#J4)&Fq38Pewm_4|#W
zZ1ngC)%hly8NvO35Zhui!+(p-O#dM?r0)-^`$5=dGvj|`466U_HZ%RV+rsc4ROcgO
zr_GH2kukXc532jOF#HGg`(YSV=Obf}&5Zv+{eMvX55l0j-)A$!e-H-M|1b>d_d_tl
z|A5Vq{(lg3EC57<`u-pcs{g|_GyM<S%mBu){y&HY_4|=AsP2#1!tfu2LG?ZigX;W*
z&5ZwH7}oy>)&HP=KQe}m0f74c5X|r&)CS1f%=jOMLG?Zi=WS;CpSPI-j6wB241?-?
zWDKhNOExq7hhb3N55g6j8UMpDa{Ujg^O14gX2$<@n=$8qK>dCghSmEmTNwVgY-aoq
z>idK0eh>!L`yHDZ|AR2B?g!DJ`X5y9!!T$Jpl>tde-H-s{b3kX_fOi)@E?Rh^*#(w
z+sybMfgyc=Q2jq+3&Vd<y${2%F@QOn8UN4Q#0c*D!|MM9n;HMZFs$xhw3+EY2!rZ<
z7zT|2EZfZZAA~`De*|XuziKlAgX(=4UbmU?KMcd_{SBKL{(~^6?+?SU{{NQE4F5qG
zRPVzusNP4$u=;=3W<=i~RQH20sNUbVnejgigX;bRo0<ND>i<KV8UDjCto}c;nejge
zgX(`|d}1@he;5YU{UD6J|BtBu&uwP-55k~29~p!C{h+%4(q@MLAdFuBgX(=`46FZd
zY-aj@9op{))%!3E8UwhqnejgigX(_}zPANZ|AYGc=oq>Ff3%tLKL~@y0AO`Lh<>&i
z(*Fn1FpOOPzu3(9{}miF{0G(jAPlSX-)v_5kBnjUK8*gbnF%}=0HQx^X7~@o=>2~X
zAJpf^h7scc4FA7vMqpUIk4*pC%=jOKe?rFsKx`NW)&F3OrT&N2_1I|i@*mdMXV?sx
z2Y}T7pf&&k<Er~X^*;z>tN%e_$n`(R7KZ=G7`^`I-op4Fj5jfW>wZxE55maxKHp}B
z{~%0C{f}q^F#H$U48h2CKdAl(VdT0W#75Np4F9DzLojl`A5`~)Fs$xJrxl>}KZr)I
z|CP6(*8iZk0I2R)+rsc)bu+_%5RF{_gV>-p0I2SVVU+rR3#1JIs{3IWwf=|90YK`1
z%<>;p=R@j$$Q*zfxc&#V0U#Ju?^|zSgv<eKL9PEmZ2?f-55utf-*F4$e-K8g|Dkoi
z>lTLpAPlSjK{TxX2i5%^TNwU>>U|LQ-U1l|0M-34jHv%1^**TX2Vqd3A5`zdFsSYa
z;m|FJx*yaA0M+{-9Jz(@KL{i0e@NdSRQH20tnLTVsP#Xz-@k?7fASWF|HySeh@G~X
z@jn=Efz<n;x*vpLbw7;G-OL1;2iO9s`;prK1)CZFBiH>!NcBFf{x9Fc2$=`if~fy1
zpnd<UEe!ub7`gt3%>kh2e^A{I8Up~)&6^p(^8n!bAJhie!tftd_k(cz7D(NXQU7mY
z_z$c5K{Tk|N5+u)pW*++Es(k&z5buN1y=tv{GSFL`v=wiFbu2zK{TihFb6vB532j;
zZ-KM}V0Ax?2DJeeZDIHi!mzp@L@(U}sry0oKL|tWe}?}nw;<|%SUX_NW=8N_0EmXv
z{|x`vZ-MmxL3KY2!|Hz!4XXEH7*zLf+X9&fK(6~iY*78bYcs=t7zWk*Fbu2rVKlh@
z-@@?!02Je@|6y%_<69X1A4979L2Up~-4CLX>;HfMAQu6h*$k=wK{TlDhxPx_>wi$a
z55utf|H>A~d;oIY4`PGr{~Mbb{=+c5-rvFqo&$i@`!E_*_k;TVp!y$#(d&K~A5`bV
z@fJkCA5`~)@Y5{}|6%n$G7V}2fa-o2hO_|?^*^W$fL!mx*syvZM!(;}1h4a9bw7;$
z2%Q7?w1x3M2xF`JL1M^tJ~A7*-iNV&Zh_SQusR=^2KDoQLF@j%TNwU>Fh~r9Vf8+E
z3}6dn>>nnEp8pxQF#Jcx==DGI7RLX`7*yY*V^CcW!3_V|w_sxAdLNk$uJ2*>K9mO4
z`Cz<-;Xm(IhX4Fq@MBP0KyVA=e;5YU_h7t*;lB_R3vXrkFS-R2gX(=4mfXVlUvdir
z1_ssr(pwn+!!W4MN5}G8nEuOeVL-v4dLM)pw=#mq0YLRWGFI8l@E?R#w=nz%VNkt~
zj5W6~{zt}ITNwU>u=ZAl{~)Xjs`rtw{uV|^|9=bPe-PVX3&Ve8466SPw_?u!gX{k-
z4FAoMFs$!yxrOmRsP0F`Hk%p#+ipQ%Slth!LG?ZiL+XEq|IS+=7*y{gWA`nL|3Mg5
z?}O@o5cb^4@E=_FZ-MmtVRgUn7RLYnTNvONT<>pT{2vI#u)05J3&a25tqlJ|w?Htc
z-iP6EXuS`r`$0GgG~U03;eRv~gX(?|j@`=mKYj}`X8515nc;up76=B_{V<%mh4DWG
zGyG58!tg(B3&a2Pt&IOOx1eHB-JiXM>3{ZChX1)+5ExYV=Wk*B55u7Pzi=zVe^9+&
zyoKRE48!XF(k+btLG?cjgX{e*4F4;k7*zLHZ)F6x0jjq${0FrIYPaC-|2J-7_z%L(
zTQKW?P`wYspt`?v3)BD3tqfq?y@laF2!rbV-Yty(VHjNhZ(;b~w*^w~gX(?|2G#wO
zw=n*PVNl&abql242i5%`Jbeqpe^}iQqGxYm{13ql|3P&>2+!TZ_#agFBjbfznEo%^
z!T`shx*vpL^**TX2VqdXzibP`|K(dD^**TXhvC&*82`gCsNM(TEe!wHZHCtUp!$Cc
zr0)-^|2J-7{J$BD8UAnH0>PmAe=Dfo-@^DGRR1I6om&|G!!WGw-@S$LKM3#L!uTJC
z_ibkQzkdq^!|HtyeQ+xyxc`563*&zfKC*@3KMWt;%J3gl_oHJ_y$`}Cw=n!awS@t_
z`2T-)3j-XVgR;+WVf+um7q>9}zqo|~jxU4idn631|B><aEe!vWF|7W-xrOmR2;bhq
z_#c89z%-=(XZU{?)bHQI@E=t7!|?sBjQ<~QLB)@@F#Lz%$6FcxgD|MhN5-&v|M?ci
z|H$~o7KZ=G`1KaX|L7Q2?}O;KTbTa8-OBL){T5UVtM6g-$1RNiVHi~Jqhf~tU$<b#
z$aO!6{e27Le^7mo3xn!<5dOV|;XjB5)%PGa2!q)8FsSYa$^YMiS^gu}{V+DRHULNr
z)DA$c`x*YTZh>I7%?$sMF?u@yx!#AdQR{z(|J++3m}d*ae-H-M{~#KKL2O)Y0dN~&
zE5m<5D2CPh$TYV4A0#HWh2cL8W2^r`V%XaN4F6@eK(HKWt{+GJ4{8H|Fr@Bh_^-SL
zf<bjZ2!rZ=5RF{-gV>r|AoBnq8iYZ0KL~^Beh{sTRQH3};J*JBhX49oAsD&t2eEP0
z|E61*{+n!J_;0!u(FOq3`=B-ejE2<z4F9dSKrnI}09NnAX#1@U{~fm=u+wHp-H)ve
z0Pg#5VfgR9h2cM_-iKl2`XAH|0N4Lp82<Zig<#}10Ico@(V%)C8N=#-5RF>@GyIR-
zg21r4A4G%dei(+d0T}+rZ-HP?{SU&RHUO;dhtZ&VABI8oKL}&C0T}*gZDGKu|3Pg5
zL>qwNfBqJR{{>JCtNTGTto|?A!tlQw4WqXKkn4X?8=!Uz19<!&((8j%10Xi2-iKjq
z^*^ld4`~B1{O{NTsrx}~08rfz!?3!)7h3Ow>V6QOuo+7mU@OD_$y*uzgX(@52G#u_
zj9LFP{GYuAfkE{@2&1+E82-=S!tj5=X3Y8@)CK_6`w-0Vf9V#6|FHTWdmDh^|LQFa
z|JR^laNi$V|AW{YK<xl%oe!(~VKl7%2houFpW**Dq`Du}20*X>A#DJL|9iJE{0G(l
zAdIaI0BQ#u-oo%7hLP)kY;AxOTN%Og0I>QW6z8DWhtW9e|E&!F&u>N4{h)RLsQw3y
z0f1;2hSdKI|F59c{jhcbs0{$B`$6>WEueZI72g5P`D3a7VeNp2TNwT$W90fD#73_B
zVQf$v;Q3aD|Hv4*?gz2a>wXBI;s2X05DcpOL2UH;AH;{%{V*C<|9{-d@c+{mOpL7!
z0IKuR@%OC^|9@`5jY0K341?-@7zWkt#9(aoKf^Z0|4dsUm|-geguM+)Z-w^#w=(=^
zM#3!H82-aB+g67E*f2)@zm4HP=T`g}UjJ`p_|LNy(*Fn5`{-C;E5m<u46FNLw9qz&
z|Db+9ItJDGAS||(;Xe$EZ)Nz8j-|FT{zqVj|I%AgvCKAx|FT;V7^DBcjp4t-HirL-
zTT!vfR)+t`7*zj*u-Z0;|EgOV{;Q*5P~8v0T3Z?ZgD|N6N5*<v8UBOo|E&!FL2Ow4
z526jWG5!bj`4Jei{ST`5LD*~?Be)G<v6bOJ1T+4(+{ysPR@)%7%~pp0$QU#ZV7Ha=
zKd8<}$4*-r{=+b=?swkG@ZV({!+*D}2n?$GVc26U!+%iS55u6kAB26jGW-W&Sp5&8
z1GX~$hhT>P0b3dV2X0~bAG8&LLH&Oa4%^E3AA%YFhizr}AC82hwle&OVNl&4y_MmA
z%r*#)-OBJEgyD7nR)+rxTOoaaQ2n2{6*~UEmEnI16vOI&5DlvP)3<`g0T}*gZejSJ
zwH1Lu{eKwF+sgPqZz}^BgX(<{F4)TOAJqRx#^CyYE5rX1C@$T~@E?RLwle&O;mWNH
z|3SEF8^eE4oe!hyKw|*g82;C7!;JriZ4CcGxM?fHe^CA3yp8dH^HzrcEn6A?w{B&C
z<Mu5K|2wuqFsSZ_VNm_wvz6gL2!rZ=5boQ`@E?Txw=(>PVQ~L{E5rXu(7GQ~|AX+f
ztqlK>@${_>|3P@hHirK*w<0jC4KQaL!~eNkQSpMU4F6#mHU_Y0E93vgTNzL=xbEM|
z@PFA>NdF&H|AR27|G#Q0!+#hC*Z*4~?SQpg8UDlYhOLls01yqr8@Dq22Vq#fzhx`q
z|1Db?z<BFchW{|UeJjI%WDKtVw=(|UwUzPz?yU?cc;8lr|1b=%|F<&!-@ldN|3M@S
zum86){6Dgl;XkPEN5;ptG5kNV6@kI^|5nWSKfRUV|CwzJ|IckjU{Jk}j4y44j00TS
z%J3hAFK=b|kBqNwW%!Sb;dTF3#{bv1GW@@ZhC%IsJ6jq4!!W%6zm4Jly=@Ht?{CG#
zpf<pxtqlKR7}WPi$IrGh{0FrGKr{#=*Z&~)i*1bmUv7nAhW{_OLh$P?4F5s+%~pp0
zFbt~y(ea0^jNtKr4_g`j!!W4MN5`MGG5r6$6%)hT0b3dVf7^z@pn4x0{<W3iKQ0Wb
z`$6=dZ4CcG`1e+Z{~-KtD})ac`?r<xKZp;*ptc_}2G{@F82*E35N6)a@Sh1(|8HaX
z4`L%@Se=hf!|H$bZH)iXF~?TM{~X&GP%!6qNIQUQ8^eEe4665Gn0FiFe?An<@SkrR
z0t;?q_>YW1bv`yMvW@XS1T*{>*@me1;r0JE#{Uu+nBl+FRtT2f#_%76L3KVdmfg<y
zUv3+A466G<SaCbUf2D1hSaloYe;5YU{V=S)o#8(SYiwiq55wSke;XsD{@=#<Uwa$l
zf1Pa%a15^Zw=w?LN5Y`GAA}9JGX6K*&h+1C8wg|Of79&@|4p|s{s-0nAPlMd8U9;>
z>ilgC|3P&>3|nt!{BOGr6@%;l?F|3zw=?{A*oKNh^}q8r#{VD;s`rtx`!<IEFbt~q
zVc2sU<A1Mh3~&st_qQ=Z>i=zw|NWrYe>)ST-rvUXKM;z8w=sg-03bSK8{>Z%hSmS!
z+Zg^wAmPaEjNtk|dK=^aXlT6;tN-J+G5kly;JSYs<Nw5MjQ^9iF~BjX?oZvu_#cMT
zwle+);q>hc|1-8BFs%O1-p2SJgmbnr{s-aQ?M(mkw=uvmsO|^h!flNIi%>Ab|I%%c
z`X5A>ZDaTk!sXi;|5t7UVTS*e+Zg_X>U<ck-p=s9W*Y+ItN+3EKB(^B#`wQw8v`7-
zZDaTk!=U=Va~tD-5boN>_#cMBb^kVo|GnEF^**TXhv5m^82>{swC>-=@PG0)hW}HL
z@bqnr|EF(b0Ao<S55qIJGyb2o4S_**KM2p=&hUTUHdMTD8{>auyl5N4e-K`>jp08s
z2G#u_ynGwu{}pfysry%NWB3olYqm1{2jR8b82_&WV}}3hwlVw%)%zg4aU0`*5Z<(n
z@jncM>i(_U82-cXwrvdmL3sOiMsWSVV;kdt7zWq<+Zq1v-p=rU&o%@G)&2XoG5&|)
z16vvYgYh<o{|C1-{6Dk}fkE{?3?JRb`2QFRMymU_G5kNZmEr$MEbTu~-4DZ{Ho*C9
zjNrBah`z9m@jncM>-}vE|1TrqE87_UgYebujNtnJ+BU}j$oR%KhW{XZb34QTTiY=4
z-EEBEHUNkQ)%(c!!8V5f=onV_gXqWG8U8=nhKWJ-J_tYG#`qtGLG?Z|2DJfRZDaV4
zjA8XYjDEX~@&7vvj8yM$WBC6O34`i<WDKhRzieatkBSj>K1%(+o#FqFZTK;$9q@Y_
z<9`qau|akF?`;hKK^VlwhW~D7`2Pnq=L?E=7)GxA|Nn>9`<V4V1D5(9)D}Rm`(b=g
z8vwQLXZX*)4S|u{0HFFG#0Syn^*@M@T>pdG0KD57{=+bG{SRXEZ%1tdfZ7A-Z2;lz
zka{0f_oHJ_8$f&;<9`rFZ38g;m)Hiupt>I!6K(@Q`u?!`AJhf_VdQpz>NdzY0EmWR
zP#XYL_k%F3?uXHu+Zhq{|8_*(4{HbLZpU8#8*F3vZ@8V|ztJ`bMvMOcsP#Xj?{B^x
zQU8P50m$_~h>d6iF#NaM2C4f&^*;<Fw*w$;0EYk0+aMTk8(<s5f6wg@jNAtBMXLXO
zw=?|r+s5$UABl$5{~#JP1^}x6VK`(P!+#hC)&C$2YXgAle-Il~_akFa8z6Q&YW)vt
z3nXr1_z%O#Z2(x^51|?Ur)^{S532t`7`Y7qVuR{_5C+x#IolZi=Wb{C52BIV03bG~
z{s-gj4F8L^L2&VQ?DapW9RRBPkuj(ZKy3ZrxSjET^EL)3#$Eq|+5w=tABMZOG5m*N
zP~8v1u(}^aPuRxr9~pz{eq;=42Ta}0@E?TH+W?^YAA})o0EYjwwlVyN)&HP200_g{
z0rR)R>VJm+3!!yCsQzEP9ku=kwFO}H|MKk&|5t27;Fa64)c@NV{;%B*sry0oKMcd#
z0I<4$(>8|xAiQ}yqW%Z917P((jNY-0;XerP+Q#r7ghBN`48z(1u(}^YGyFfW4T3@S
zKL{hY0YGd}8{p`6hW{`O>ifemsLlsrV(NcTosW(o^*_V^3)>j}U)+vb|AX2Bu=*cH
zU)#p;9~r~ye^46$gpu0;x3|OUe}?~ew?Qzh4RC)u!+#LQ)dm37|1gZ+4nVK}LG6GS
z+Zg^MW8}IYnT=fkgW3Qf{B9e=e`E~m`y<!=Fg9}i4`YAc4r&81{Qt5I6{FYx-?uaT
z2Vs2efS=nD^*^ZIhhbRV58}hvAR1i%!|Ht)jaC6LZfE+>xSauxL3KPjA0!6DEISzg
zvu<bn52HbB7)Gw|k=Y!e{yq*2s_#LVdpqNQRE((eL3Kah4u=0A465(ZF{sXmVWI7e
z|3Mg3=c8j--7mVG@jncM>U}ug&hTG+JHvm89Sr{^w<9oe-49~RY-jv0i-zU4G5iN%
z`Rxq<VHi~B!?4m0M({X*@^;4m5X|r&R_}voHE6#dRQJO$sO|^V`w-0VUwb<$2G#wb
zdLM>S`u{s1^**TX2VqeCZ@e9I{Rgc62i5szI~e|hXcz|7{UB_$o$)^igZls0+Zq1D
zu-$fs{~!#j_hGc-cE<lO46FA+w99se|E_4*V>{!22!_=Au=*cFdv9m_kBmWeKM4En
zfYkq>HUJ2N>;3JF|AV$O{s-6l+Zp}`LviSKhW{`Os{27WVmsr1P~8u~4F4myGl2X5
zpf*6vc832T466S@7*y}aZ)f};znuY$;r0J^#{bD^ICUGt|FrE8466G<7*ywHZfE=t
z!`a&z{)2GN4oKY(s{diQU^^pt8~{WYZfE!p!bLj}bw8;72lf3yxNJM)|8g*9_+P#q
zf~&Se#{jl7{0G(jFkHKx;eYLR#{c!(F~@&Ebw3D$>i?GQ4F5s6bvwg<WDKhJ+qX0R
z2jR}`4F8dF_jZQ=Fbt~y`?fRw2jTwh4F6#mRR2%h&hQ_EQR@EfjNp17RQH20y#C+L
z_<zQB#{ZzYAB1ObXZR1ppgJFh=j~twj{|_}eh>!N``aP)Kd9bE#!I&|{)b?O|Dbvw
zhC%f|sNRQRc>jL~q}~VB{V=?KJL7+34DSDLXZjDS^N}&A-Us1rpng9JhSdE#w=?_)
zVOYHnqxWuS{13ql|MzZZ_`iP}1RvPW@E?Rhbw3Or-p&Xf3pk8a?}O_9V>=lBgYfa~
z4F6&H)ON=IC$}^FKeYoh{y}~Jv)dW}gD|M>2h-ab{)5;c46FA+bw3D$>U<c!0_yjp
zU`XA6eLKT{7zWk(FnntVBX}I(_I8H<pt>J~Vf8+Uz6Y)ILG?Z|2DJemZfE@ea61DW
z!|Hw*{d7Cye`E}*^Pg{L_z%M`b};;Zxg8V3>i*Z;8UG{Wx7!*1Bjfkm8U7<<Se=hd
zf7;IYAA~`5{^#us|B*4Q{{On2;Xg74)%oc7#}3B-pt>FvGyMO#9fALBhxGlyb^dmS
z|KPeF)Zd4)L3|kgzYQY)A4~bqume*6gZldnI}q&vSQ`LV@55+Vy$_=ybw9&@*6pYm
zRR4qOePj&k?_<M|`k&!H_jXhas`p_SRQH20dfgA>3+-U|kBrgleh?p4=OfeLx*w_D
z2i5%`j9mYN*syvZRQH4N4u=1-+YuO6=Ofdwx*tS?>;D~yx?g!ar2Yrh`>^^S#D>-V
zAR1EtGyK=wj=(xQ7{ToT5DlyMk!geNO#cmbFo3cCcGNZis2zaT{DbuWw=?_))%_q0
ztNTGTsLqGi|2q)%KB)e;*#W8h(d&PQ9Sr|L*l|0<e-H-M`ydRe`#~79{%82_u^oXy
z^}g2*#{VFUsQVfIdxQG>I~e|h>V6Og)%zeEume)>gX;dE9Sr|L7*_X(>_F80pf&)k
z?uXR>ka{0f_k%E~&PT@Jx_<|v-p616GyG46*8Ax7Kdj!*+|KYHgh6#b2!rZ>5Qf$L
zAR1Kf7wlm855l0jAA~{mKd9bE#^CyY2gCoe9gun-x&8;W0YDg5_k(Eg9Ka6z^?xI@
z?uWGlkn4X?z2Cl_;Xeq&>i(`B4F5qGR`-KwP`%%`gW*32!|Hwz4XXEH7*_vJ*}?E1
zghBN_41?-_P`wYsGq*GRpS1&mVf8<V2G#%Ix*t^k?_m5te>(#lFWS!VABIuue}?}{
zw<9p9{$H_!;Xkb2htaD+V*uM3{;$~q!LYi2-44{cAJh)mxSiqurX36z_5YR~jQ>G(
zKL~@z{<kyy-@cvU|BfAydLLBxgD|Y#-?M}9KLkVSeNf#G!k{`I8N=%SLpvD%gX(=`
z466G<7*zLzFs$x}(ZtvP4FAuA>i_Kw|1a!-^!Y*cJ`98Eeo(y+!{D+1?F|2~ZfE#^
zZ3m*>$6o(~>U~rUtM@^5KL{h&`ylp%9jNs_tPKFG_n+)w{13v&bw7xWT<?SGeh|i1
z|0CD=2sWbbf476-KL{h&{V+DH?g!QRD0l~I-4AL9AlLcGY~;EhRPRGDqMk>t^O4!0
z`X3pC>UtO-#Kwj}?EuvB|L=cToe!cx7*y{w?O+6t2Y_f$J&(W)|5<jRVo<%$wu9k6
zI!3PdVQkJFjQ_b%FvEYY9S97o|9N&W{D)ysosW(Mb};^jV21w!J0KXj?uW63cQXDL
z*@24Tb^i{A|6)5K7*yY*V^EzhwS)0L48!VtnH>!OL0EPt!+*IQs2I8Khp}PxzS0hc
z{~)Zqli@$8?pN8t@E?Rhbv`my-@*7_1B@B|YwSSO`&v5~|HCk-?uTJm-LJQU;Xe$+
z>VFVzxRdce2pjES{13vY@&6xO@0;vIt^X}{F#d;OP#eH%2g835w%*C`A5`zdFu3mD
z!T8^P2jhPSFox9qu=?L=2g8352G#q>7}N%E+rjW3gpuoh5F1qQBV$m#@3Vv9KMaHF
zeh>!L`^Xqv@9%`x|2rA}gX(@54%@-_ABH1#F#Lz%s2vRdkuj+LkKMueKV}ER|2QNJ
zs{0dmF#d<(r0tCVVK`+6!+&H9tN$~0F#d;OP`wYrSvwg1gD|MxhvB>(jQ?R6RPVzu
zsNP4$p!&aL2jl;e9SmR$s{28>Vh6*27zWk*V7!Cjf6Wet|J6Gf!8C{s!gV_^$A6l3
zF#T`b$?(5v2LiY5VEhllZ95qMLolT7@7TfcAA~{mJ`98E{hl3+{~;Js_k-*Ioecjc
z>_A{p{Xc03<Nry}dLLBxgYeXyjQ^+YKwxm)zk}ib%$<;WAHDvc1FiEB^*_V^1v?NJ
zUia@{{J#W_8U8QX0jc|!?O^y1!l1ezhCy}zsvV5~SM6W`V^H0{b|)ja4FIb5VHi~B
zuiwt_f5Q$42G#vA4D0`c>V6Og)%{?+15)pU>V6mo)%_s63tsPo>VJm+dv-AV--m`l
z_5Z;gjFA5S4#xk7b})c3tnNRug8|$Y0M+@(`1npnaR2|r4u=0A4C?!XFnaz!vxD*f
znH>!OLG-yD4FAtU>wQq&55t#sFoMVaK{N<o*}?E1R{w+8pn4w}!|MJUI~c*^0N{TA
z4u=1?pcvHuzq5nkKMaHFeGtCCgYiFzez1e#KRSlh`;T@o{)b^uy^oBa?O^!-bUVX;
z5DmkidLJ3T+QIlA9YgAUhX1d(GyH$E1A#&HJ~IBWgAqIi0HTpGxbEM<@c$DM{<4GN
zKRQOP_d)D$I~f0iFs#o1v4i11GXA-f;s384khTDbM#iAJ9>fRHApCa+<NrT97{K`7
z4u=2#VEpYMHU$62GXBT7lM&no0M-2<465@%7}gE|v6*%<{D)!m`X9tcultetu(}^a
zbM9pLkBpJ)eq=VR?uXIn^*{ek#{c{~8Ne7;|HEil-4CKc^*;!sw*er0NZpUO4X_hd
z|1<oT+5y3!x*vo=^*;=ww*x?Y`5g@ZL0DlY!+#J4)&0mARQDrea2sF;!+-Ui5DcpO
zkuj|9htWDa82%$;Slth!L3KW6{f{~R2kP@<*8dF9`X59?>V9nXKd2o5s{6rsC&PdH
zorwA$y$t|v2kc<@?*hfHJ0bNydK<uV2jhPb_S(VlABJIdKZpj^{UGeWlkq<YL)rig
z{{wa~{0~N||3Pe6{U5p$RR1&l58DC3u=+o8C!{Ta+y;o<$pEhZK{Rq309N<I=%gJC
z|3Nr;C-(Y39bEr2{Lk2dz@WMxhGF%8?oL?!&+tEQ2LyxK0EIgl{(~@b8vs`KgJ@9Q
z55na;5%oX39Y8|;532h?7`^@n&jaja_}{hzfkAaY48!Vw5DlyQd!T)PQ2h_W{b+3f
zP~DG=Vf8<v4Z!e!+75>QGobZ9dK&=L768@%b9OTPpSJ^n=kG++|FE{e;vJ0t7w?4B
z`=GiXhCy{d48!Vw5WR9Ir0z#<1Hjq=kouqD|GFIz46FY^G_3xI(V)72%MOPBAiQk{
z!+#LozLViU2*c`s5DlyUL2ZCtJ0W#HsQw3G^fmyv{@=my|KLtY-4AO6fM{6#528UB
z)&{^<|DWE8+5Q97`;hvd;XkPU2VqdX52Hcsi#r*?V*!_TF#Jcxpt>J~ukK{{55mZ8
z01zAA4%o@?|He*4{SRsf+}??(|6%Qb`#Tx_-`m0PA4G#N@ofNx|4%@5|4s-EtNURz
za{UitzuXCG12Fu5wF4D{>VFW%)dqOKlMy@?0IB;K{(snkz{qt!i2Zpd!+#J)Zv(*i
zUw1J4|F#nqBiH>PHmLpwVK93;q%8od^FbI?=YwbvhSmEp`tMGL|Dg5&jE1xapltxO
z1|X>ZXWYr~A3`(!2iNzY{{K!!aGlS*i{U>yX5Go~9~~pt`5-p?PR9Sp7`fhuvAK3J
z{O8_@9fRtA-kps9QSdHEoe!(~VYJ{*#{cLTRPQ5W(Va~HMRzh_U|9VxzKiic2uto{
z{Exs4|0Q=q>V4^*4F8catnLTV@;e#-qhnB=55kJOAoV|p2KW6z{r{bizCWn`SKZ0@
zAB=ZF>U~)Kuep=)KRO20{n|U3{)4dYPKN);SZ^02xc{%elkq<Yqt^cn;J&}{PR#n>
zd?(|7Q2h_0O?N^1{gyi!{-a}X-+ve5e-LfElkq<cqtyMo82&r#V)*a46M;eXzVlAT
z|6sg};XkO}hhg`fjQ?R6ROiF6*Di+t-a8T4XBQ*5|L?n#@jnQI>U|gv*v0Taa3=zT
z>-}Af|3jb{RQE$Lr0x&j$?zY9L3KY2N9|(#AH5TV8U9D_WcUxR`*$(^kK4ugKYk}F
zPTa}#KXDhse^9-Tj8k_q{)b_3-M@?Bf5t9`|Cu{carREe{~!#i_Ys)kfBsHXT(pZ3
zQvdH_{9n8igc<&q?1J?DOLsE-2i5z?xN;}s|H_>Va9q8U;Xer1?qvKA!`S-&pt>J~
zLG^$0PDb!J0I2WZx|88Q2)FHG_}{)0fjf6H{)gf2os9n>nBjl#P6P(k`!GCV7vukl
zJ3*M?|HPdP|0nNcM8TlCABLyzWcUxm;JSYo<NsN^82``SiNK(`f9@`Z|1dm%C&Paj
z2G#uwcQXD5VNl%<!b^5B{9n2g6@%*k<vSVwgYe3ojQ>G(KMb$l$@m|HLH&OaUbl<s
zKM1ei$?zW;gX;c`I~o6P#=s2!x9&t>aJ|2a5mNu}V*I~zCj^7*{T+<|ckg0=<Gni>
z{(~^6{@=fo@jo&K*ZsQ~{vX=K@c-~mR1B*3kM3mrkBm?3V*G!6Cj%IR`u`w|t^Pl|
zlj;B2oeW?Ms`Ekk{7%OIFbt~uVffN6hX0p$qGE8pzl#x4|L<b_e|;w^2G#pFcR}iZ
z5DlvLkuj+5zq^z1KN#;qs{3~_{s-ZQI~o6@V^IJ9@lK}yk9IQrf4qy~|I?kA`1wx8
z|Hv3r=Og3SI~o4t!l3&9?M_DUSOACy)%y_4@c;cz2nN;tA9phRN5`N#A02<)$@m|F
z8UBCW3Bl-f|My)C|6v$Z=VQaab}{}3;~fnDfA3`c|9ck$7=!Eioe(xi4917i|8_9^
z2eJR7xBveA{|~DBnRYS!XWGRCZUaErAU*`6*Zm+q%WlU1FwC}#@joVJ_|LuzfjM?F
z{D)ysosSK3?`HhZvx^bj9stoiyBPlS;=lsC82@9#$ZY_j-3<RhSY#K&e`E}61BmTn
z{13z8(7GQ%GyIp@g^7{tf0<p3|3O%87vq1qT?}9>59;fK>U$&%s`o)yX*c745UsL{
z@jnDJ{8!n<@Lv^*)pj%f2Vsp}jQ^1_tPP;Gi{U>AYwu$CkBq_fKB(@8Vo===#=98)
z8|-HIZ?p>)qul@a@Be?(T@3$0^}g9|hX3ZEd4Syv|1EYQFsL11wTtmT2;1yp_>YWj
zcQX99+Xca(dLM=zcQgKX+6BW5|DAR*{CD2P@ZV)OBN)5wV*C%o9=n+Sd+cIB!Jzsd
zguQn&{s-6np!$Co<A2{>3}EcHo8dpG-bcouHbBrW#{V!JvWwwA2#4)r_>YW1b$`Sz
z#{VD;s`sOIG5m*NP~9K1i}61QgX(@5PT0lp9~pz{|D@fF|3Nrq7vp~fX851B3xYv)
zKMZH?X8fPE3x*l~XYXS8pR*f+^L8=(hv9-<jNo<vhz8aFMY|aO!!Wq+2i5;jT(*nx
zKL}UsV)zfkRl69$^*@LP;hJ3x|7&(Jf^pq0hW{Xp*8Kn9w2Se7(=LYppt>J~Tfl6F
z{~#Jv_rq|<F2?^5%<#W+7XtU}V)&1Y`*tz@hv5mk82-cXq+N{vVHnm1n6iuM|Fm5U
zC>T`#&)CKIAA~`5KLj)UpR)^rVRiq!-HhONz=B<j{~?&+|H7RRyl5B0e-H-M|1i94
z7vukByBNTD`7Vb4FuY<n<NsB=5ExYdui3@)f6Z=&|Lb-k@P=KC|B*4M{@=8V>HntP
z4F9+6LdBpqz_wkC|3P@iF2?^5%<zB5E{6ZRkT7!n4`T1z#qb}38Nu}aoecjE?1ErW
z-4DY@b}@q60U-LwE{6X{q4?NtMlc&x|HJUfos9oM_|$I9_Wzk(4FAvVVuWK*y?<^u
z1HAq}zl-5NsNP4$ur|PzU5x)h_}VVU|JQag!0`=GeUF4e^*#vS+RgYMMBmxP_#c89
z{@>Zf@c%9p-`majAA~{mJ~{@q0UqsQ`VYYj{~zsw)cv6PAB3OmX8iwb7bXU`0d_I`
zf3X{aU+rS}kB&j@fH%7s|D)jD4FBKmLg0718UBCRg&o7%0H1a-{)gc&yBPjs!{2r>
z{Ktl2bw4r<uIs^dKEwZCyHGKxo`>N-yBYt3Fo+ML|Lp?t8UBN47zWk-|8_C_M=Ae7
z`~P+^{Ab(^sq4|}eq=tV-bco;`X5BI?PB<k3&Yw0u=*cHV`~F|#6aT#pt>K1v9$sC
zb~FA5VbnGN!+*hD2n?$GVHmmohp}OGKbYRl@LzlvDwfzyp#I;@@Ly&(q~3?s|H!lg
zmNo#W{s*-Kly*bveo*}n!k{()sP0F`8oL<&!?5N~NZk*r|6v%`2GH5f2p$K}+r{u7
z8S6vqfAls0diig%o8dnQgX(`6#;E^yGyJ#Q#qi&1H){P4Y74;Xe-I6;|3S3lZb-ck
zs{3IWxeWkn3%KoK_z%MFJ5lR@P<sGY|AWQ>e0DMXhhbP70J-i5vBCBKZifFsPz<X3
zK{#|bTK&I^;eYrphW`<}AsANogJ|UXAJPV3_#d~6;eY&Y%=#bJ27uK44F6MhL2&9$
zNc|6L2f*ro5S_W3;eXaH1P0aruyz2f{s+<dyBPi#>_*i4IP3r24F5}aG5jyvji~=Y
z?Eugi0I2Q<<K2+@zjikhxbCmTQvQSL|AyTR;C4XsPKN)@yFqOMNd1r8258^S@V{dh
z0^@1}^zLH#-?tlqVfFvS-H7@h)DD=ui{U>APuY#T{-3d%;s2~%2t0cyW*Y$17MQo2
z;s1hNs2EiDgD|Y_2hmG+L+XC?HUOyp2VqDXfZ_kDT@2v5A5{N?Fsu!*em5g{3;^B+
z*v;^N<1Prs)&>C8{or=MZb-cks{28B=T6*h07%^rYXdO+ht>Zu8dm?q#sENdKMcd#
z03iCrE{6Z0wg89*)%_qESN(r>H?;oW4Q&g6Xiytq7sG#0{eNLMY8wDl|AX2Cpt}F^
zE{6YCb|dP3P&?rIP6!{l9RRBLVHi~B-`WkS`$23F2DJe|bw3EB*ZmK6G5iPNhdUwl
zKB(>oVNkt~j8WSF4F8|)g5c-782*DWtPKF7@wNeWGyH#pR{w+A0(jd1yBPj|+{N(!
z({2RDR{w*<Kw|*Jv;ltXX7~@nps@gK^*>AuR_}vo5C*jY{_KX-{~$K34FInH(JBB?
z-4DW`x*kM>Fo+Gq%)1%?gYh1Q|IB+B{<G}Hj?wFX_T3EsVHj5Dqto2G8UAC#@VXy7
zCIA@+0M+-XnBhO)ZifE?yC7I_H^YAzhSmGXwCHZe{}9aZUvxJFi|uCk55wYn82*Fm
zd~^&O2aw*)@E?Xj^*%C|-_7tJ9mDE>#XSuF6?QZH2i5t=7*y|ru<CBc{~(O0`x*YL
z?PmC|xf@ddgJ=+j*ZaE}|7-7N{I9c{0R`*thSdKc8iYahJ_sA`Vf=5r8-hV>wCMkD
zx`zRd(d&OpP`$q!QtyN6ei*jh&F~+FLG?Zu?`HUKx0~TVsNP4$pt|3AH{*X8cG(RY
z2Y_Jr-3<R>7*yxOu;*^Z|K7V9;22)_?`HV#yPM%ZsQ(Ycfx8+12kvG7V_4k}qJ#G^
z{0G(jFbo?52#41Du=*cFNAG6*55qCL8UBNC>>fzH532iN7&HcuxSR1m2q*1k_z%ON
zx<7R{!+#hC)&1$a8UKSYsNP4$pf*4@wC@jU1Hf?pZifFb466SN_dwbK#k(2)!*I!N
zhW{X3x(8D4gX(@5uH4P|AA%YFSM7%2>OBnqL3KU|*Y9ThU$+Ny{<nEI)Bnaj(0U(K
z_wPp3{h<0ERPQ5WP#d6gH^YAr?%K`pABKB(GyI2P<oX{}?;|k7|4F+U{!iWm!JxVy
zhC$;1(|0repT3*nKd9b^;n}+x{v%`1IKbT9jQ>G(J~D>Y{|k3B{0CuB-4DjQ8UBOn
zePj%(|CjG({13vQdLM!r{;$~0@P9QFgX(<{Ub}}8+!g@W{ks|duiwq^e*+Y6+`|Cw
z`-AF!7zT|4Y~9WHf9r0B|J%^;&fN_EVHh?BuzL@~e;D4go8dnQ!`cA*cQgD4VOanF
zz;1^BAbfZ?!+#it*ZrV=|87Qboe!$_kL`xk|0j1d{6D#y=|70ZR{w+Qei#P#`*$<_
z2h)2P{)6g$WPEuyBX}&}@@|IzAPlPak@5B24F8catp2~bhvEN?-3<Rhbv`l%)%zfP
zcQ@mI5WcsY;XgWlxSQcWG6vQAApCeYBX|q|ROdr5!~Z9{AsAHeKi|#p9~pz{d}RE3
zH{*W@X88YlHw1&~d>DSa2hs)r)%oZcc^u&5ZifFbj9m94v%l_U_>Yd^_5W^$|KD~q
z{QtfOf<g5?E)1*hK{Tjd|Gk^>KL~@^p!yyi|J}pzABO+$hOp7ge^7moj$w5_hz8a9
z$QWP!53BF7(a3c_=N`y>0JgdxB!*o7^X_K+55ti9A5!mw>V6o8)%!3Sx!wn{h4+B!
zen_1UtNURzsQw4l{UD59_rv(GdLKr^>VDZh4F5qGz3vC`L3KU|gX(_}My~roY*3w#
zj6roi2&?a5_z%LMIv*JmQ~!hNeHaGS{U8jg^C2|Df5SbP<A0#OKdcP^s{cW3Q2!rR
z_k(Cyy>GpT;Xeq&>V6Q7T=(1WVfYWi$n`(0-UrirAoV_|4dA*5QTKz|0Pwnh55s@Y
zJ&3v=)D8gE`Jgrchz4O;-4CK+bw7v()%zd}s{270R`-KwQ2h_8`#~5~=Yw$M9!Bsu
z0IcqhhSvSC`X9Xw0IK&B_b~hiVOZS{qLcR^>V8lg09^m?VfdfEhv7eR-49}e>V6Q0
z)%&@782{()LDc=QHUOyp2Vq#<528W!K6?FMzK8KY2*c|B%H0hAK^W8q0M-963~B>_
zFnaz6_5DE@-0z3h{~&e?s2#AI;XiWS4`PGreHez-{U91v_k(Ec^*_V^iAZ%ns0{$C
z`={;!)%zgKfKva@+=E*8gW3Ueb~F5+y9a`i>;L(CAoV_|?g!yTyBYq2@Zvqh)c=sW
zf8`$R^*^W$0IK(qF{thbVOYHnqc`ti0N4GX`X7WrZGi22AZ-Cy-4CL7?MBr5==DFS
z&PT@J`hPdW|ATuV7*_X#XyWRBP#XY((c>Rd_cQ#5(crlNP~U$K!~gSWZ2(Z6kB&k0
z|J6N^F#zPcAI1jN`=I(Cgpuoh5c~EX&^!PGxbDBZ2et0MzlY&J2qV}1AU3G(2VqeC
z55llIADJeu{)g20u(}^cBiH|+HUN6v58{LBe^{N5P9xX*pZ75Q2VwNOAH)aM`7jKt
z`$06Wx*sGCs_Q`*RR4o$Fy6!PAHCj3=Y!e+#MJ*xdl>&Sf%^HoK{RT=AJzt7-NW!7
z8^%`WgTy%YF#ZQ&P@RtrgX((_=GnveABJJ|Ju=O=hv`2U?`HVVzXuh=>U|I`w1@FO
z2!rZ;WDKwG_b~hyL&BhX9~n#TVf>GZ5&eEp{V%hJ;Xeq2>U|gn)%PH*u!r$K41?-?
zWURc0@jo&~uKPi3P@RvAVRgUO9!Bt30I1K8jCJ=w`u`vrgyHr69>)J5HhR4es{270
zJ^zF1dl)v~!}#B9FXMkuosWz`bv`l%)%zf9w}<gR2!rZ;WbCwu@jncM>wRed-(@eu
ze^9-Tj6L=+{)b^uzaLchgRsvYhW{`Os`EkEZx185|L?zt@jncM>U|In+QaZ4ghBN_
z42SJu{13ql|HJk${0G(jAPlPakuj+LkJ-cYKV}aD7=!A47*5#3_#YXA>V6PT+RN}C
zRPVzuxZdBx_&;qAq~8y!`#~5~=V$F<_z%ONx*vog^**TX2VqG4UjXX!LoulC2jP-E
zjQ=5+;eW{<hX0^800@KXd}Iu&|Eu;e{D)y!y$_@7_Ap@W|AYGeAPlPW!FUhD|CT+B
z|6BJkz%i)a@7TleAB16bKZx$$!}z~@4+9+c?P2^6!u@*~|082i|9{dRhW{W8s`p_S
zRPQ5WaNmCq!+%h{55u$eGX9^l2Z3RAKZpj^`N$Yt@9$v*_y0llJ`98U{>%0-{)b^u
zzaNHI?qT{5s`p_S*8d09`N$Yl_ixz4@E?Xjbw3Di+RONV^B!ajssFcu>ij(n|3P&>
z4DZ;>2=4#y+QSI%^TX@@y$t{N?tx(Bx*x<oxSJ7P_k-F1;Cg=#<NqU2d=%RE2hqp&
zF#SIc#tdK@)bEGkQ&`4-&Vt7J_kikuhX3cFbv~%x2jL5Q8Np)!7xys!hhRv*AJhi8
z0;==(F#HGA{V;rOFC)1Be`62he;5YU`!IZKFXMkuosW#c{r){n|H1YDUPzq}s`rsG
zxZdBx`2P_UgX(=4e!2(J=LgX+jNI=Bv0v<A{QnXS!|Hnw{RY(6hhk8jkBr~%Vf+uO
z^FcHOBl`Qub^oV54F5qGRNtdxP<;==-}W&6|F(w#jzRT3I{vYj@&C^~xG}iS2hI2I
zVFLI4e<Str|LleI@j>-HI>uN3Gwgw`0ocO;uKz)802qeV`^Yq?{%6_C@E?RhY-|`*
z_k-~shX3rK{{CKu|Jdq(kQj3PkIY7{|9ST?{0CuBpC7&c2k}95KQczN0T})Z??GT}
z?EvKZAI6s4!|)#&gX(@{jH?X*X$LU;SJ=bwAG!XAu`${Jdl>$!?qT?^wikl2wE;kF
z0Z=;tgyC%fwE7>^1^{7D-4DVBdm-!pKs2b{hhbR#54-;xR`-Kwv%L)eLD+l`!+#Kl
zwE?X5Fo4?x$ZY@+8`1`V^!btNe-Im1|AT078(<H^e`iqtAFT}l?)$^q0DB>Qe^C7o
z!l3#e)c*(3APi~)z_9-whW{`Os{cV4RR4o8to{elpn4yML3KY2BiH{RHmL6p!su-P
z(AYns{)hDavDN>eb^uBn0NVe@)dtAf!}uT44qyQH|3PB_p!y%w{|C{ax*vu?eSc8h
z55u7PziclfxGjKa13>D2aNmCq!+%)452Fdy|DZNN%U*{6&CvQE#71rdfa-o22G#wY
zdl>$MFmnA5?)yXA0I2N%NZk*r|3Mg5|4-S=_#aXKL;C)(Hoy$Db^y5VzlY)f9BAJk
zRR7Q03mFGMZv%ka0ecz#!|Hz+4Xgh_G_3w#zJ~#&{s*-KKy83EpmF~_jQ=5R0EYi-
zp>;oUI{;MwgD|50XZR25|AR2N?+<DN>_%+^fcpL*ylW4`e-MV%|1cWX1_05Zx*voO
z>}B}BAKLc^)&C$2Y6E~UMjK!c!~dguKy^O?gX;g|dl>$o+RFgT{{Lb5AEo}^3+eNp
zgVNwOz-|V3-G6ZpqW*`s0d}Ld0pR_9(3t-ohX1g-A4G%de^|dC)&>C8|Dd`bgzw>~
z|3Pg5j5fd?hX0R|FsT0ztN&p%sP2bhP#XY*U+!V}kBmX}KL{hY0YGfzHUNkXX#+6)
zf4>J6V`~EtZU-RR0HF2&dK&=52le-{w*wgd|J=jyA5`zdFs$B(@zLvk5Fc0l531)G
z_Co4?7|jgjgJ^UNs`HUC>psT+Y<ppt;Xm76Ow6&D;Xep-?qmFqjJftQ{zu24F#z7Z
zO#gZJF@Q1OUWWhJF#kTr{~#=|m+?O`2G#o@EWD55KQb2C%kUo=i|%9mFTNLnCH6A@
zm)Oey$CCRP{)4d8UWWh37*y|ru<TyO|FZiSz*ufC!+&(FxEC}Q!0;bLgRs(G#{VF!
zypIV?tL$a?kBrs#F@oCwAR2@<_A>rQ#@hQB{v%_Zy$t`6vEE+B|H#;IAH#oe-M^3F
zztLU<h8F-(2B^Ppx(`zCgX(?|w%E(?ABI77KMY&%WB6~g7Zuy@W&Dqf9riN*hhgWv
zO#hwtGQcsY{|~~h`xyU&u-jh7{~+wKm*GDQd+uZS55iu18UBMXxZdB(_}>?d8UFk2
zg<$`E4F3c6qT=AajF2&aeGLDD_c8nr*~{=hbRXmY@V%%w0yOTwhw*>pUZ($1dl^u0
z>|RF57{Fe}|8a24@IQVZ!~ev+2n_1~gK+Xb#{VgMVVL26%3g;5X?q#|r|)C<pRpGe
zXYXbFpS_m>jC1xf{0HIOeGLEe_M&2N{lAalf6-o4Tnei5p%_&EgK+sihW{0NQ88!?
zpn5Ok|LT1V|7-R_aQ$9}{~!#Fb~x3vm+^n&K8F8Idl9&GAH#nbZrjW7ABH>kGXC$}
z%K*n+dl~+NaL-=G|H!y+FT?--eGoihFT;Nrp1hawKQac_|N9vJPuq)%!FB&$#{V<-
zGX4kk|7Y!G_z%M1x*t^M?`8N8s{3Jh{yxV43-*FA!~X?)A$ajV#{VF^WG~}?WW0PY
z!+#iFv6taL46oeB_<z-21YWz3;s2Vw4F5s&y1fklk@3d8jQ?R6)c@bKm*GDQZ`sT6
zABN#$0DBq#Z{N%Kf5%=1I0o1Kdl~-khT=VY8UBOt-hB-J_w7YsP~8v12lp}lKeQKt
zkAUj>y$t_h^s&7R|6%yVUPdtc#9oH~FnoF+qW*^^fHQj;{=@M3eb6z0eGLE4gZlnp
z%<%u>K8F7n_A>mxgofc`0DBq#U){&>|Jq(ud~+{o9Dw0Jhz4PB{lAy-|E;|Y|8MVO
z_<v_FD!#vu@jti?u#fRSi2YzM<9}rQXb;1G7=FB$;XepJ*~{=BhM(?Z{12-8pY3J*
z55WxopY4U<7ke50gYe6J4F5s+)n11G=onn@?`8b|7KHaP{C~TT;s3k62>gB@r0)N)
zm*GD)4665G`13x7{~-KjFT;Oq`1@YQ|L7Rh_eaGH|9|dd`2S-sq|X1fm*GDQgX(-_
zHi!?yfA=x||GN)576796G5r6x7lL8&4x<_OG5iN%P~8urK^Ro$!)Op28MEwT{12-0
zAvD8()_vG9`##41=oq=~2eG;KGyR9v|J?f+{v%^p{STx0_A~wmVNjiq4GZpL_>YW{
z>wXYhWIyA7P@Rv88UBm!gJ6mM4F8casP0F`()$?yBV$<I52NMxG5$x!pgJEJEA3<Y
zue^@|j$w7b>ORK*Fbt~qVOV1?!+#Lg+{f@AhLP)k-F=MzQ8B}Ry}b<o_4h$Aa{Uit
zgD|Ka0E>4B{r5kp?uTLXeGLCW7*zLzXv=+!;C6uJeun>`x*vwYZGioZ|84g{FiQQu
zpW(m5eun>!`yd!r|GVsC{13vQdLM!r{=4mG`0u_CfkE{?2z%{k{13w3`xyU2FvEXe
zP`$s8;lJNLhX0_tABF?=GyV_U2g8thA6)nEXZ#<spAlUDgW3Qf3~C2N>}U87!jbzJ
z{=;z8e#ZaN`%rP*eun=b4665$ane4<|1b=y`yrU&f69J_|Ec>B7*zj*aOOV7{}9aZ
zKXV_X?gzC2K=nQ{2DJh5_c8v@-^T#Ph5H!(gK*J)#{b3p5E#@3DBI8QA5`xnV^ABQ
zav$S=7)GxDLG6IreVFw>=ni<~`o9_44uIADFuHvo<Nx-33}6hZ|GV}v{)gf2eT@HM
zxOX4Je;9_<{~&teKF0qr466U9>}U87!&CP${D)ysJ7D@g#{VEZb05Qh5T3Q4;s5M?
z2s{^7|L<e`KW`u7e^A{&e;>nt5C+x#3->Yphhb3t55i0KGyPw>j{%NB_5X@}jQ>Fx
zRPQ6>)%zI!gD|MxN5<>-G5$wjhX3pLG5p`OAA&dUWB8AZx9n&9zjYr3gX;b5`xyR%
z@Q(cq|99>~U{Kw^XCLE#Fy7DbA5`}v<Nf;>!EFH$4XXQL_|RU4|A+S>@KI2`zmM@h
zj6SxH@&ECC4F8YsV}#fJpf&({{SS)&v-=qTgD|KKa28tcgW3TX_A~qkVNl%<!<Y6m
zg4+O>_c8v5VNksf!`JpR{=dEt6@%;jeN5msz^(m|dLLBx!!W1~aCaZ$e;5YU`}g-T
zfa`w<&G7%>K1}>%A0wpx2i5slFsR;tzK`KQG6vQA$oTa>#{a08;s0w`y}ut?|L<q`
z53ct?bw3)0wE;fvWBmVdKLZ?t>V0(lbsyt@Y#7!C__2@a|Bw9)a15&V@!{Y582`gC
zq`pVzGeFt^`0D?E|Nk@Wht&U|`W}Rtkoe4d8UBOuK8F9yP|UI)Qs2X9T=hTlH~_32
zzzOgFGyLb=2f<u>8UBMXa@`MN!|Ht)4XXP=7*h8${O8|?iUs!Kum3@907Tu-@LzNv
z1jFioWE#{CK(6~iY^i+=|E2e%Vp!b|qCx$Cl=^=k!+%92th66d_k-F2u=*cHgW3SF
zx?g=Cr0&O8|HJzJy89UZ!!W4+hhhEwh;{(1?g!D3dLKq2>VLES4F5qGRPV#E#Xg4r
zAdFuB!`cDx`hOq8e|sd1v;N=D@ZWVGDn_pVL2OX{55kc8pW(mvJ_v@@|1cU>|AT1I
zI6&Y&hW{W8s{3IWwf<-LAHENQ(d&OuI{;GuGyIR<2f?xX82*DWa@`MN!^QxT_A~rX
z-iL~@*Z+`uA5`~)FsSYa;hcR8|1s--$T$F~4FIb9K^Rg0GyE^!$MC-tiqYEuu=*cD
zGeG+O`x*Y%KryKP2Vq#u!{~<n43Pf+eun>``X7w<Bl`cKHUO;d2hpJVABI6~07%`>
z@V^_W?gzC2K=nQhL+XBp{}cBy{GW`3L2Uq7-4CKc^*;ztht~a|`X7X`)&Fz%G5nvm
zA5!mw>V6Q$UjH-vUyM}u!`cC$HUJ1i>VAg*EB8V0s=W;VK^VOa0P6pP>U?Cp5!wbo
zuKQu^t@{}MgD|Mxhhb3t4;ll2wE;l&|L%PZ|6zC!S{nd14gjhD8U7#KhrsCdKd9~p
zVNl%<!jSqO)COSqe{vrb@5j>r-_P(LRPTc@sNRRsAU3G}2le}5^*@Ndw2$FG2w&dM
z@E?R>bw7v()&HO|0OU5n&3z32VHjWi4{itS2i5zS_`zPx`XAKy2Vqb<;ORbw|L7Q0
z|HCk>4S-ztgV?bCKd8<}$DqDH2*1Nu|L<e?{{f1T>wgfNaQ)Bl|LZ=6|KG7-P&)u$
z-4Buj)%~#kKe(^IkKzCC{SXY}!{~qe8UBMXh!4y6U>d3ZXWGvQ9tVKc{~#KKLG?U3
zW<9|8ABNfXGycbhVRb%?=Gf2lpW^_-f3E%5G4}z+|2+E{!D9d*8iYahJt}7S&$pl9
zzW@%5-2WHa&-fpNLH&LNhSd3>x?gNR!+#hC)%WOFYCq$D1ZMazg;w{=9ANwp!gBi=
z|HCkH{jac};Xeq2>V0IavY+ukG6vQAAgs2Z>A&iJhW{F97}odK+RykOgmv~a{)b?O
z|2q2_{_E|B)c+tFgkk-EQ2lSPpYgvD6dUh@u)*;TC;t97f!6z=x*vos_A^4p0QNKd
zx7g3{A5`~S9bg30Hv1X>BV$ngZ?~W6za6yC532WJ*l9oGe`M^kpW#0UyB>h_`$2tw
z5C+xxFzm6P@jnQA?PvH8!=U=#XFtP#5C--AVHni!57^J}ABI77f6#u$|1b=y`$0Ht
zKhu8*X80cl?fZl4{{xKwLH&LNhSd8p`x*X&FsSbj!=QRUVL#)47zWq<2N?b*AAt1x
zL4AK1PTSA;AA~dZGyc!m&j80+`x*YjFsSZ_;k^Bf|MT`UfHA1v2jPPKjQ>IPJ~9T?
z{U!Su{=+b+{s-ZT{fz%%xN;xEe-N&M*7>lyA4J#fXZ(+={%_jP@E?T1b^ktw|IPau
z{<j=p_}{i4fjjmy{)b^uy${1Z`<edt>}P=EzWt2<VR*uR#{V!pX+Oh%7zWk*Fg$HP
z<9`Td_&;qw!+%iS55hC{GyDhj{b3l^2AH#-5nS(s>;3}}_JaM4|6v%`_g}Q1>Hnew
z4F8wxM_^FhzidC_e-H-s{b6|J0fzsp_9HN;?q9Q?5j+mCZa?FH2xj=dVLznb528UB
z*8d05pn8AHeun=r466HK7+mk~XZR1JLG}Nx{fz&2?PvH8s`HWYzWt2<kuj+5Kd_(a
z|Ni|9{|_NySp9!wKjVK8KDLkXKMLN@@c#r96I1`6f%f;$L1}Q^4`qY<{regIUxH##
zy^oB+_5Oaw|1cU<|KHfp^#8_w1~3NI`yhP#0ONlUeP=)8e`E~q`|oG?fA0VUKiJRk
zA030n03PjU{13+m82&%mkBXn|XZVkfVRiqD{fz%X_|<;K{}9aZ|J8m72G#v<_A~rP
z$Dq0&8GqQ%_#c58{(smH!Jzsc8Gky!`2Wj(>=-l#@NGZS|8M&lP%x;@N5{YRGycbg
zVRb!-{&RrgKL~@^APlSPL1G{_GKLrZAO^Jl2i5b82N?b{9$@?rV&lW0wg9N^htVK5
zw)!7gjD0`De-H-M|Hv4<EdXi*fcpNRx*r*X>U?C(e}LgX45PONU~K?U-4DkH82*dw
zN5!HC5cNN(9e`f{OCDhO55k~&9~r~O06=v=48!Vw1P!VCLG?cj!`cAK2N?f@Fmf9}
zWk17zwF3;``X5AtFnT)xRQJR20Z82ss{eJNY*5{gjFIbqg98lzjrM~uBPiC9Fr@xR
zZUcboe^9*-!=U;fhC%HB<oe%cKLfb#2i5;D46FYg4<Oh74F8>w>VHrh0E9vHKM1=+
z=KwqoF#LyMZ1q2K8^Hen!+#Kl)&C$GR`<hbQ2ifzfZ;y~gX(@5hSmR(2N?f@aMXT=
z|1b=y`(YSX|AXlG1EBh!;eWz@2nN;tFbu2vVRYI7hW{XpT>obtK-B-Bb^y5k-_P(r
z_W-2shqVDfG^`B(X$LU;FWL{mu(}^agX(?|E<XUP{~7*Q?1x}%ZGgJ{4F5qGDe}S0
z#siSLA71~1#sQ%9KXMzO{Q#o=hqnXvGyLy90KvH101W>p>}U8t@c^R!M{Wm9J;3;X
z>H$dI532t`7*_vdYXi*L&+s3Fk?a5Y2N3oDg8dBtK^Ro`gD`Ua4`PGrei&Y{pW#0U
zgX(_}Ms5SZ>VFWuZa>3+WDKhNVHi~R!|>(<i25JY4uIAF+x9d32Vq$K527J$00wXy
z0J$Bo_W)Y`zn|g%fddTS`X5B2w*f$PKNufi_<!U8!~bLZA^7+K%=-V-0qp&MP~8v0
zpt}F;0m!&Nhz)B4Ts*+=AB17`Ka7U80j?Zi{13vA`k&$dwfztbtN&p%sO|@0P&)vG
z5p4j5|97DE|6M2zY73yZ0YH4@`u`DH8{p{y%=#bJ9ssoiK=nTuAAr>Ru=*cHqu2i+
zK63s4{s5%Dht>P&G^`B(s{dga(GFnv|7AY}e?5R&_rux(==J~41C0Mc7$lC`4uJIY
zf9+@Z55k~2A5_<aXb=XmVHmmY2eHAK9*F?e`=I(BM1$&oW@sA##0QCk_{bPk-($m&
z`kvuG+kOaUKfv%G86(&GFgE8w#{b|t{{SituKN!#{O3K$@So=Z1cTVHIv<?|wE+YV
zF#bozLI)WBBV$l~j}3$Bei#-%2&wZy^*%BN)&J5582=+<SlthzLG`};0fzs`7*_8q
z9$*BI1Ayv$WDKhFL0A=3?;n8F|DbvwhBXf`g2w_tGze=QVE7Nh+6Ni_gD|MxN5-(a
zU;hB(e-H-M`5+9c_d&Gr0fzq|j1=|%|NsB{-}C_Ef0F|Y|ILvwyzW212p$6f)%ys{
z@E=s~+a6%}55ll|A4c0BVEhlN`(YSV?>ir0_z%ONdLM?tb^igz|LzAE;q^YK{`Wk{
z@Zb9Y0)y&(5cWO5_}>>=?}O@o5Dq-R_#cL0^?uL+hW{W8s`p_SR`-WP>wHkX55Wxo
zqYof3tnQCJ!1y18LG?ZaGyIP~0IB;E4?z0<u=*cFrygMZpL&1+j6rpO`ay>OAPlPa
zkuj+5&prsL_d#_(41??a1C0Okp}61x!+#JiKEUuFhC%f{41?-@1cui82N?cWLUHv0
z#{VE(dw}78?E%LBAR2G|e~{sS^8v>H%?BWTe^A{I!mS4x|AXp&816X0@W1mQ1jFin
z5Z!x#@jncM`~L?R{`VbV_}_mJQul-Ee-H-M{gV$c{s&=L-H%-VPd~u$A5`zd@XP~@
z|7U|S!~fX_Aay^e{-1k*@js~EN5-Iff8ha!{~!#i`(b$L0mlExc-aAl|H}_TFsR-~
z#;Xr7{s&=Dy${9*82+z0!0>-P8iv*Xn-4Jl2i5z?c<TX%|1b=y_hESZL5BZ34?r-e
z&IjS$2N?guFsSYa;eGoV{)6y-P`!TuQvZYMei%M{fbl;BL+X4`y?^u|!+#hC)%_q0
z?*AWT{D1NQ1Y@iJLG?WhgX(+``}_gM|1b=y_hI<bK}PTxz~uvs|6v$Z@5AubgAD(#
zA3(*Ry8q?@M({WQhz8aBw+}G<htQyL0EYi}4<In8-bcm{4>0~mV21w>4>0@()%%YR
zLTFH(kB&ig{__Kj|B>;F0}TI>@#_N&|FL0Eoe#oq4>10JbAaJLsLn^n81?=E#{VCo
z7*_8?Xomlv4lw)&)%WNaR_7zr-w!bU2Vqd1kBJ%n|2zPx@4<Ec0fzs-p%_-zgZMBu
zjQ)F&@&Eq=NEo#O_z$Y*kuj*w2VsyHh(@maL2PVwKkEU8{~(O3?gzC4V0Au>2G#u_
zjHv$^{&OFIVB|U<RPQ5WjJp3Itlnq%FL(ffVRgUoL5BY@jH~_!)%)leR{u*KM6LH>
zZ2*}A4F5q`_8`N55Js;1L2TsuAJhf_VMP7U@E=t7gD|ZA2hpIqU;Q8>cq~Bk0K<QD
zjJN(j$oL=B1_0Il`Ue>P!!W4s2Vqb<!0;e?`ybl>Kfv(c^dJPo+5wiJF@GqA)cp+q
ztq(H%w}RIDpt>K1k?Vf@gAD&24<InC-iOh!x*tTl9R$_=4FBB^KrpQCN3Z`u^**Hj
zXMorL0S6f&{r`iA`acj_?*|`b_z%Od`X5At+5m|9pW%PhL5Ba4NOeD~9RO+rfa-n_
z2G#j6oN$ogKdA19VNksf!YKzK^**fr2hpIqAB0ir{(}tvL3KX}!|Ht)4XgL_4>0@(
z;lhKE`X5BY>;Hp{;PL;`1C0M6bw9)Z@&gbItM_4a)d7b8pm~7mgADL?0I2>4t@%PO
z0zmzL5N-n3|DZMi1jFinME%e3za6RWM{fi49E8>Xka{0h_oLVUpn4yS4>J6pe2@X$
z_XpMgAPlPeK^VF2pLq~c?}O@o5Qf$Lp!y$#A@x7Q{{;sj^**TX2Vq#<zxW_>-OuoU
z=>dlSxa$8^2SIf|!~fOLIv-T;uRX}{AB3^h{~Hf7{0Cv=x_`?-MBNW+1Ayv&P`$tH
z0K<O}4Xgh_G-mzJ@P99~&WF|gAR1QhA3VtTAB16b|KS4+|3Mg6{SR&ffa`yT|0fSH
z{3ogYKgjU^{6R>+AG!XA)%!3SRQH4G{VN9;{)1>-^*^ZYzj+W;?<4S?gOGkdw)+46
zLB{_u465^yF|7UvwE;jFz5a*P`wah|A3()K*Z&6?{=Yql!07cqsICXK0YEf5My~fi
zA7uCs!|3%th!3m#L3KU~J_xDnLG?W{{&f&i=aW+ZgW3WA4>0@(wF9vA{}~Q3g4+Nf
zn&}|pe-H-M^B@|8L2Nia$nc-}Aj5yQgAD&!4nb%T8yg1I`7q3JknukVgX()!45{xy
z^*#@%uaAb2>wUgMjQ>FxRR0ScWc&}o4F3fVLNKiE7dpuBABJJ|K8yy{|6&Ij|3fgt
zf3brQj9&MH_@H_p8N=)SgG~QrK==@(-UrqFAPlPWL0I7+<9`?i)%h^2bco@<@&Shb
zDhCl5ROiF6+Cj$upt>J{A@#r3K?Duz_akFa|6dPO?}IU-&Ii@~1_v4bgD|Mh2Vqd(
zA4DUU{jmN&tnLTV76%#s!!WE3V0DP$KL~^Be`IWTknukVgZlhne30QksQ!02#PHwg
zAOgecewTxc|3TR8Aj5wc2G#u@2O0juFsSZ_VV{GH{~?&+zt2HP-4E*j`yFKb532uR
z7}Wm{I>_)JgkkkQj1D`<_#cKrb$|FlhW`<VAay^e{)ge1gN)#D01zE>h~a<iK?nxb
z{h)duhGBJo(m}@mDPYX-A5{N?aN0qJ|1b=y`(ZfiAmjh6gA8yCs{eBiF+#@v4>JDG
zgW`gNkh&j4gX(=42G##1pt}Dc<Nwlw3}9S#2vYA?9Ax+p!&L_v!To;_4XgLT^g)LI
zbx@36|AXrNrh|<CL3GPOX#f8p<9`qvRQH20sNU~5$nYP8Vf8+U?mEQyA5`zda4)FO
ze~{sS9~6V?eh>!t`wueypLCEBT<3%8eGr~<h~fXVg9r?&`$2fdA%_1T466G<7*y|r
z@SKB;|3P&=49`2r1g`f%bw3D$>-~d_kpBNc#{ZzYAAuSEFFT09u>SvwLyZ4H^*#hM
z{9kntTK_}qeNf#G!y67Vg2w?i9Ax+p!l1ezgh6#aItJJM2N}V2KB(S@VQ{^Fkn#Vn
zgNS}Vxc`5U;s5S~4FC5bVNl%<!UqmA{s&=D-GA^P!+#Jya**La48!{UAo|!L#{VFE
z;vnOHjQSs={r~^}>4OaaL4AG@4XW?YLF;`G`@$hc$hbeK-w(y$djB8;xc`6UAQQOG
z2i5y9466Tc9Ax|t!{B=V0ONm9-GA#4!+&s{532W}7^Uuq*ZB<p?;k{9P~HCs)Za(K
zpn4yKpB!TR52BwPWc>f^AOi}9)&DOJGW-YOmj@aCqhrt*z?*}N|KA*BK*6y3|J@-*
za9iNRLB{{sFueXh$ngKuAq0li`!E_@-ydZB{|yTU*Zl_>{(ncppt>F({&SEK(f>cl
z2(I7%9Afwn!ha7!>U&U~4`GA&5R6*>|NjrG_dzrWGaY0Aw*f$PKMaHFd}Iu&`;jrW
z`X45S-Ua}*13;MbAj5xT%yo$2KM13@17K|cP~8v0AU=rZI|QlsVf8<V#?}S^wFO}H
zKa57N|3U2lP@RvAB@QwEN3Q=tZ0Umx|3O&h5W{~M2G#xOSnd$xe}zK~aIAQc;XkPU
zhtbGw01zA01_0InFbrt}F#K0P$nam|5TgDEwFN*JxecImh~dB9K~#)h{~H`)_z$Z4
zK^Qguq2vG1zQ5TaMBNW*12Fuz1oin3A!y|K-{ugc{s*-I><&TdepvmFtqtIEh~YmB
z!|Hz!4XgWMG_3yjIs};m0M-34466S@7*_W~XommbzCW}LfZPrUIRvZ!8UBYIWcUxN
z|3Mhk1^{7L{STs}4>J4*)%_q0tN%fC+#!blu=*cFgW3Q|hZz2YFsR-~#<2PyM8oR;
zj6;aJAJz^4)&H<|0HpqB_@93Wd;Je;2b3IS_>YW1^*^XB0HR^_f8`-){eOtzKe*mM
z!1%ug%En*+GhnU%TMjY&Z#@XXZHFNBKd21=!l3#egb{53hW|a#dLLH*gJ@9w55f};
zG5nu&5P@O!KSmqiAf)aG)&C$2s{dgaRR6>9+=C4N=N)4B528VJKMXHCgsA@)!P@`~
z{}&%*_`l>3qW%Z91wd^8Q2h_Wpn4w}uQ|x@ABJJ||GGnvc>qw|55u7Pf72m`{~(Oq
z2H1L#;s3Tn4F6#?to{el$ZY^{I{;euqu2kSwg9~TKg96=z#&N8k6!;Hw*x?RKL~^B
z{}Trp{(~^6?+?PKu+;x&4l({ebBF=l4gl5tAPlPaLG?cjgZSXF|AP$wFM;ZQD86!t
z;s51>4F5qito{el=xu--2N~e?Kejdis7(NB2i!Zv@E?Sc>wXyf!6AnK*xCTF`v1ux
zhW{Xp-Ua~iLG1ug{SU+FZ2%A-z5WOBL2Uq7{STr+7|{k``2XP`0)He>|AX2AUk)MH
z{|x`X9YkQ{x*x>;afsnR3}b5tfa-skIH=A?#;`gcqz1-@(WvD=_WGas5EHl!z<h||
zKRQOP_hD?-!;Jsg58=k3`W}Qi4>SBn#-REh8|FR4_#YWV>U&WCpW#2K-seBe@E?W+
z4>9~l$KX2u5aWMgBrI}>@xRC+1{5rQi19x%2G#j6EP0seKL|@7V)_rk4F9DMK`^N9
zmp#n*ABI8oJvvrA%<vx>gX(_}RzA%5AB0s8G5$x!;JW`1!+-U|5DcpKk+Jq6#{b9|
zRPQ5W{X-1@kuj+655h)=82^Lne-I7AsPX^zzu7^i|0V|+{+k^FVMzUNd5G!1C8*Aa
zVo={7gsl%V{s&=Dy${3ohnW7`A7+4KP`wYrj)xilgRt`<#{US+@Za??0=pk#_z%PI
zy8jU4f6v1V|3P&>4Er8p{Ev)5{eS;MO#eYR@DRg)7!E$f2pI!7#P}b?2G#u_9D11P
zfA}E=I0n`GARKv^@jnPhA7cCu!3_Un4<j(B-iP7%!;JqE55X{`?g!QX$%h&KryfGZ
z;JW`1<Nx$SjQ>G(KL}?YX8aGr*@qbagD|N62jSeqO#gEaL+gG}{eOtzKe+#Yi1B~n
zA;$kjaLn+(^bi7r>U|I{Kg{?agu!(`sQy31@W1L11Ek)E*8iY30IvGK;Si+mZ$8BM
zAB4gE{zFXvTMsjUF{s{$;r7Ff|2q#MFsSYa;qJo>|9cN1aQ`93|1dn^5aWLcX81qx
zFvI`JhY)zmA%_1`4>N-C^h1pQrypVfV{pBHnDPJ2!;JrD9YV!(4>A3pdk9kZgX(_}
zo`0C}Ke*lp)%{Ss_z=^7Fg^^a_d#_(2roU%_<#8!1P0apD-JRIUwIgUS07^d55n-e
z{}AK<wTBr0uLEO-|DZO&#zPGMVHi~JBjc^0Iv<Kb^*;!2Kg{?agm)Zb{13z6djAm9
z|J{ce;CRm=hW{YE{}AJUWPI=t6Qu4x%<%u<VTS*Q4k7T-LyZ5CF{thb;p2yyz;*xe
z!wmmH_5R625E?cA{|DFop!y$#&qLb+p!y!f2GJmV@i5bW5Pca`-y>mAy$`}y4>SG;
z;cJH&|0Cm@hnW6@>;6Lw|8E{*_z$Z4Vfgl8#{YK@q2l|8q4ob^hW{`Os`rsGs15KK
z)aM7`!;m^3RPTfEQz-xWA%_3x7*zMaJjD1PhF=|G_>Yd?g8KSs7*yxO@cY9||3U1J
zhnW6<Jj8&3QTqRf8UKHVVo<%0jzM+*_d^W-(J`#f2hl$dGyVr*5F3PlA7cCu!=SqT
z_aTP=AdFo1gV=u$GyMMt9SZ=_$QV8T84ol3hhQcs4dXLl)cv5g0Lx*<|DgIFMuXT8
z%<!M}FamQNX84bek?VdCo9hT8xX%x218^T^{Exs4|9KCiV!k5`|3Mg5@1xV8Hh|D!
z#{Xb^gyFx?5r+T5hf%TUVaEU1Ft`nHnBl+pVTS(_M<7`8FvEXj466HO4m18o#<2Qd
z_AtYLxkC*9<qxA`l=}Y&q}~VB{SeIXU-b~ff3?F18dmqiXi)vHd6@CP=3xdf);`Se
zABJ^~F#Oj&jEX_^zrkU~|6qKC;lIHVhX00#8U7m{V*GD(h~dA{5%l%{|NomFX83P<
zi1EMKVW$7)V9fB}{4fMt9cBc#13)yW-nTx?@E;l59%lFt!YK9s5yt-xM<8{-<6(yX
zAnXk4_aA2X?}AkK!`cBJhZ+BS9A<!HaNU1|@xRv*#{b@j5g1he`yFBU55xY48UBNC
zz!64p{U3Cg@jnO$A7=Ou!y!i){)Zk$U|1U<0$T4!9%lFt!!d^${v%^pI{;Mg#~)_+
z55tLv82*EB(qV@Gpt>K1Q;snFPdkjj>4zEqgK)+XNWBlL`$0JSFvEWk&N;#WuJ=K8
zKMWTfX8aGsg@+mbgK*IihX2Kf5g676D1+Af<%b#m!*JDMhW{{JeVE}t2-h58{9k*R
z;eYL62#ucq8xJ%5Z#)dD`x*YX9A^68au`HI>V8-o095b8aOYu${~+9TgyBC3gX(@5
z?mNu*ABOu6GyI2PP`wYsDE0plQ2md<p!$EtVaER;466G<c-9f7|FaJ>z%i)q2jO{#
z8UKSYsP2bghW`r>G5lY27=afbX7~@opn4yI8U8Ol%<zB35d?<S{U91#_aA2bzveLG
z|Fwr1Q1JT04F8cas12~`2*dx)hcWTC!;Jqy7*y{=FvI^HM;QL^JdD7gx_{4M#{bB8
z?_q}jFnr)J!~gxDem}I{2i5&BeE2ZKe;7V`nBo7iBMkpxG>8qV_dys`?}IU@9dHDF
z{m=jZXO1xbKYJL0L3RH5!wmny_z>g&3r86KUp$P8L2ZC5hZ+CFFsR;#V21zKjxhYc
zc8KBs^}`4Zs`p{|)?vo~w+}NwF@${=)aO6U@E=CQ>V0JT;bF%A4-Ye-;3r2I{yzrQ
z_eU81gX(>37}N%MahUP{iz5tR{PHlve{}r%Fynu0_}vkP|8Ea7{0GtR4>SD7g+c9r
zPlp-*qvOwq8U7>VuZJ1_W5XEr|6#`eKcMwKsP2bghW|egqvAh@8U7<<P@NCsgV@Lz
zRR4qc|FFbAr0z%5`RII5osW!R^*)FOVQh6js2zY__k;MLIv*K>>VFU)QU5di=RS<U
z$ZY^n-4DX(^*)RbuK%I+KB(>oVf6Z6<Oq)XA6oa5RR14g_z$Z0VVIcuUkRlRfT;Ij
z?Ep|)09N;dXh{7Jsr%8}0NCn(P<sGe_k-F1NcBHR4Ac(5TmK(n_-}RuQtxA{|E-Ro
z*8QM%0I2Q<Va)m;QtyN6eh@~k|Iyn3#Mb}bhY@u@s0{$B`#~7B{%80fM0EX+sQW=}
z0OYzK#HLOC&+tDJss2ZA1HkJ30%+Zjt^NnK1wd^8Q2k$a1X1^c+5oV+A4G%deh?<M
z{s*-KKy`o95lH<HV#DhHwj+%HA@x7Q|8}D4e}?~kNcI1OBaps7N*mxX!~ZFG>VH@p
z0960aI)bSGL2Uu#`XA8-VE8{DsqP2017LMOh+cAp5nS(s>V6Q$RsVz90Ba62{D)!W
zHUM(n4`OdT%<!L*`XAI5K(71u96{9mpf&(<{SRWp>V6OntNURzsLn^O|3Q3E{SU$?
z4>SA+;Zs=3f8_cf(hh*u|A!f<U;iJ0)%^$>R`0`T<a!^*esBb}?gzC6kn4XC8*BZ4
z7*g-U>VFVTPW_Ls4M1%D|K$kw`XAILKyCwo>V6PLukX?Mu(}>bgX(u=Hi(aovDN<!
zM<8`Sj7F~inT|022i5Ty_z1&)mLm-RS&uUOXFGx&gX(*9%z1?IKL~^BeN@cwpX&&s
z-sd^O@E?Xjbv`-<)%gNP82=+M!+!zvy8kHSf8nEy|3P&=I);n^F#H!i%<x|f+TVxu
z`(d=y5yt=M7^Uxjl;OYZQHK9=M^G_r3_#%sBX~RjROdr5!+)hC4F8pnGW=ILg213U
z9~rA3Vf?QF#ti>8jv(rOts@NoVHi~R!?4~FM({X*-VuiXFbwMV!!W4MH$2J+?)!t-
z=>0!Xoo@oI`$23_-EVP(@jncM`u?E0AB3%sGW@qWg214<-|h(Ge-H-s`5lfh{D)zu
zBMkqMF{s{$VYefU{~;LB?+1+mcphQ=55l0nKMaG$0DO)x{D)ys-4DW`dLJ2s>-{6p
z`u_;Se^B2ahQp39{)gd+BMkpxIO+()e`E}<_m41w#{uGwF#eA_!T`pgzJJ0IhW{`O
z>ifemsNau_VPgQGem^qKI>PWDhC%f{4CftT{13yRdLM>C{eEN&s`pEdF#az&!T`pg
zx*voqjxhX(VNksf!_`L_{?{CVU`YR;;eQ>L@gGoq-*|-SKZpj^`7pZm2;+ZHy${2n
zdcWfc!+#J4_4|==&k@G|5DcmJ!FB%;hX0^?ABI77|D+>~|0f-R)cc^iAB3kKW&A(w
z2m*uZeHaGS`!Ecu_d$5h5lFuuRPTfF5r+Q@kT9s;2jRs>82^JXsNRQQhW|^BK>Gg6
zkox|xcEGA5jQ>|1VE|)T-4CMI9bxzn!=O4JhBq96)cv6PAB16J09%eQ{s&=D-ye*R
zK>GclzCR3u>U|L2bp)yJe}v&bsQ%w~gyBCj2G#p8eDDb4|3gO@z!+BVA34JCAA~{m
zJvs)}{U?qv{y%Yq;XkPEKYbK){0~z9GyFe$nBo7qBTWC#9Rbmhx*yd42jNRc7{TKJ
zAR2^WeSa_w>hq&vSpWaV5k~M>0I1)8>j=Yt7>11j+&RMVAB69L#{H4-gCmUpL3KVd
z2G#j6{OAb7e-H-M`^fm&5k~M>z_TL^|6v$Z=Og2nM;ZUWI)aKJ{eOo4uMac)e{%$Z
zLG?Z|{&0j5JPrV&kukXMe}v)xCn)}Wl;J<9zQ=|^^*u8Fc7*Xi2>&?3@E;xjJj(F@
z*AYa&AH;@XP+bpVgJ^UNs^>vs|Bf*J|9h0-KZpj2f$)Dc0IT;wGzf$0e5Rw2HUXG@
zgz-O^KFaVPBo3<gVHi~ZgD|c(08AX#4gl5taC{U}=Y#5fWDM&6!|Hwzjb8V|`20s1
z{(~^6-bcouem@9<>V9O5-Ubjkf~fzowE-lLGX4i))HVRaf0-i?466HK7`+Vu;)Cn|
zBMko)jzTb~?gwE|{SU&(Z2%A()&>C8{~!#i`;jrM?uXH^`d{}b!+#JPR`<hbSp5&G
z`$5>~2=?)RP@Rvr{y)O-A5`~)FnawDY72nselR}D@ZatzqW*V0idz4J+5+JE{|Li>
z*P{^Zc7)+S2!rZ=5C+x#FpQ}G5p_SP4FIb9LD>H&<9|f`&+tFs2*dwir1~Gk#;pGt
z{)Zve|B**g>wi#NAoeK3|Cl2T|3NgY{s+<VM-lZus2z}WgyBC3Cm&__k6izQ*q}B*
z`Vq$ei29%5f96p{{SRsf!0P|pqp<p);eXx{2nMwQ3Xd@SN3Q=tY*^h7qCs^(2$vs4
z)c^2yz!8T3p!y$#VQl~qjjjG~Jj(DNghBN_41?MMp!y$#A@x7Q|F$ELx*t^k!!WE3
z0IU0ZjxhWOVOag&kJbhN)&0mATm3)n2*dvwP(1S}!+%))529i9Ke!EWgyH`@D4u^5
zwG9Aj4}j`^5Js;1k?Vi-Ho(fGkh&ke4X_re{zq;Hfa-q`2G#w@7*zLfIl}NCgtr}G
z_z%L{k23rRVOaeSqG9zvs12~|D5UNO)&F~s;;H|SLh63xHUOyZhhg;kAH)aM{UD6H
z{%81q<_H8M*Z-h)0I2Q<;fqHha{-{b|I!hL|1f;z2*ZC6zIv45KL~@z|B>1Pu=@YT
zQHK8@46FZPG^p-J#^83q5r+Twk3ukV{SRWJ*Z=5kfTu?xa{;irADM==0YLRX2t(Qc
z4F6vpL16UyAJi5=uK(X3MX&!E{(m@vz{vGKs0{$Z*xCRfF>o8;2*dwxM-doX{SRsb
zfW$%le^7l7!=U;dnf>Po!+#hC)%hR{s_!8*<9`qvg#V)f#-oh?5tsp9*E2%vd*)*d
z|B*4MzQ=}Pbv=k?Kg#$Y9djOK_>Ydcjxqe_K8lG!^*#vm9%TfN1Au7WV+{X67*yw@
zW5J`0|Isl@-G7Yfzvxj0tQb`HgRuBf#{VD;s`JsY^ihWY=onV_gJ}7qjQ`Owtln2V
z2C4r+bv`l%)%hT-dX(`$2&*4u_>YV=k23s6#;|%{`zYgo5C+xz$XNd<Be?$$qCpr`
z=R+{Ve-Leal;OYeQ6{w5|NkFU_k*zMQO5t~V9fB}@+c|>)%zf9bBysnh_*e-_#c5G
z^**TX2VwhT4F5rOKMaHFednW$|DBIAfHAD@2hncF82`H;MPN|f?{$pfKL~ptW%v)n
zzDF6s{eKV*!l1ezf*Jk?9!15VdLM*Cjxzoag=2>Qp+_NgfA~>`|Dbvw8Al&w{2zUk
z0gl0S|1pODamN_`gX(=`oOqPsKMaHFei%+Y%J?6K!FB&prvDkoAoV_|?uX&*qm2JS
z7*y{=FvI`cqYVG^(QwgG#{Zx;K=Dz=|HVfc;22c*mmX#K532W(aph6Q|CL7>;22!@
zA7lJqbBytS?NNsRwMQAT_Wv7^>i_1WjQ>Hn^(e!CP~8ur+m12(Z$FB_oktn}!*KUe
z#{b<%8Nj&b7{mYGqYw<L_hER#QO5rhk21jV<fDxLVR-6M#{US+@E=t7Pe01=A5`zd
z@T_Bu|7RaX;5kPb{?9!I!Jv8{h8G-T1djtOJj(bVgh6%x;-d`zL3rs=hX2SIRQE4G
z%J?6ILG?ZiuR6x?fAvua2G#q>c>Pg^|Hv3r_isGP_#cEfA7%Ux!3_U5A7%Kz6$yju
z{bP)f`u`Z?|D8u67*_A^KF07LhCy{d2=712_#YV`Jj(DNgby8q(1(vQ{71&1`v2%r
z#{V#U{3yeJ7zWk-Cyz4z2lf3y7`*^Edz9fn41?-?5I%pD@jncM>V61j_<!jb!~e@i
zQ8B3Ahv93-82?{Cii{!k{>@_y|6%y{QHKA>7*zk?J<9n1?okFXhSmKb`oS@V{~-ME
zD8qkb4664ZA7l6r!r(d|RPQ5UP`&^BDC2)*465^y@#~`u|FL0Eoe#oqk23xTVQ`%f
zs`rsFtj_;<l;J-*2G#k<_{%ZI|6h-yV}}1<k?MU=8{qpfhW{`Os`GJSSe^g-D8qjk
z2G#K(4B~@m82)z*(*OSt8ux)=v;+XE=aK7w2%F(QL>#s5hqVJh^*=Hj#7D+#$6)n8
z!+-Xp2#l@%$JGV^wF^M?J<m}{y$@o8FnZk&;tL$Ztp7pn0pX(z|3O&f7{h-U#?}r%
zuKz)801%cu%J3hCrH*0N|Dg5&sO|@0xnr>UpW(m!Q3M9H0bun%hz4QwHh}6;hX2SI
z)&|fxhFbr_+5+0g82-aBa{aG&jPXB+532i-vEfmM{~*56F;M-_@E?8uH>mChVNm@K
z!sbUA{#zV_VDxqXtp2w-#_%76ZI3ei2VqdX55u7PAB17`KZu6a{V*C-_k%Ec{qKGh
zQul-Ee-MV%|31eU!EFIh-4Djc82<Yoh2Vf=sP#XnJpil!A#DIi-H%-VqqhN~jv?xP
zSUUhz_k%EU-49~J>V6OntNTH8$}w2|&+tF>C<D0e2i5-|46FM=bk;FQ{hxh|;Xeq2
z>V6Q;JBHc@fYtv+#}IWttQ}B#l;J-N!`c89#}IWts2u>R_hA@T|AT0>><{ky!`c9#
zy1yAz_a9~W52Hc#KM2Fx03FAm_5U%3|DDGmbw8*LfL#A0w*w{|WB3okur|P?V~F}6
z)DD2u{|x`99!1pupf&&qgW3R~`X7WLZ2*S<vytk5<aPk4{s*-M79M5z55u6kAB2}2
zWB3ok$Zde-#~A*@FmnBm+y(%(1;A~9qYVGo9Yd}EL2Ut0-4DXZbw8;7-*ODm2EeTU
z8UF7)iomeCA4Y@f|9!_8|AR234Z!e!|4|5r)&C$Gx&8;Sj~-+AkBnjUKZrhYjPXCH
z4FJOE@qgwRqW%Z91F+Zs4F4}4CAR)&_<#K<0)zVfu(}^aBiH>PHl+TC)cv3~0I1%F
zVNl%<!^rhNhz+XykuiEZ;Mp<M`XAgDIL7e*<xvQJb&TOZ2xDslfW$y`KQexQl;J-*
z{%{Pl{)e>(U~K?U{SU#AIv-T;qhs{?AJh)ORsX}pL3KSc2G#j6K8Ov%u=*cFgD|)q
zfR+G2^*qxthW`x5Aay>7jf`RSJTlF4obf*lgX($&X86x`41$sCeU4)c|B*4M&PT`G
z#~J_g9AgBJ2Y_gvV+{X67*yw@V^DpM4TI`@7#2Ft@E?R>^*%BUY6FNJWBd=pp!yz+
zk1_lghhk8jkB&igJ`BqoWBd=opt@h~7{h-UhSmQHpnm@`hX0^C9~mnhXZ){n41^i}
zs~khr{c2D)hz8aDFbu2rwT?0ThhbR#528W!J~{@~_Xfw9{(~^6-iOhkF#zQHAH+62
z#_-?d7~_8s4XXcPbw7*-wE?V-G5!bR<B)nERQH20xb8p3@Zatj!+%hn55o?}8UH&S
z17U{$PRAe^RQJ0aWBd=opn4yMLH&P^V@&@&jxoS7sO|@0@8gXBL3KX@GyL~G#_-?o
zIKzKXy^oAR^?uMX#{Xb^oZ)}SF$fMl&hS6%7y^Upeh`j0#`qsp?;~SS-5+y|;Xeq2
z>V6mo)%yv@82-aBsP0cX#`qtELG?ZaGyG3E#_&H4ib3^0G6vQAFbt~qbB;sme^9*-
z!>}=cf@6&TLG?Z|E;+{V9~qY&V+6MWDvmM!2i5%`4664*xC+|uht>Zz#~A+C9b@`m
zcMNm=chfP({|(0(|2G|j)cGK~<ru?%5C+xzFbt~qVHi~J!*JJehX0_tABOvmG5!bR
z<B)nERQH20sNRQRP`wYv#~A)kInMBZ+A#zM)%!D!G5!Z(P`wYspn4yK=Ro`Zpt^tF
zaYpc10I2R?aE#$U2*c|BMaLNagD|MxhvB8i8UHUk2EvHCAJhg|ah%~lsNRQRP`$tA
z7~}ud#~}4SsO|^h4aXS4V*nr;gh6#b7$1Z5`$6?S41>l1wjE>q55hZ+G5+6ii~){!
z9b@<p!?1cEMuY18ea9I7!!W4sKX8oUKMaHFeh>!L`5=7c7{h-MhSmMYjx&PW0iZe`
zff@dvJjU?<)G^HQKT!RD?ik~L7!6{>`u^vSG5iN%P`@7;!^Qxv9AgBJ2Y~wh*N!p#
zhhb3tf8!X#e;5YU`yhPlI3su*;Lb6I|96ft{)f<ry8qrWhW{W8tMid*P@Vti7{h;L
zj9mYN*q}Ne9mDGV7sna?!!W4cN5-J~{>?GQ|EQSZ|J!4z7*yY5!>~I4(=o>XF#P2h
z!+&h}+cAd!*f6NhN5?;oGyeZ|41^i}|2l?>L3KSy3`GAq#`qtEL2M8P)%7s^=QzWE
z2pdA9RsZ0AKB&G2)&C$2Vxwc^x*x=b)%`FUQvXBheOUbuqe1Ne<hmcm##aAxABW5Z
zfa-l1Mz8xpe7@t1|3MhN4Ip@o;Xe$6>V6nTuKPi3^!gvv4uIABFk0d`!+(PH|8YdU
z53B!SG_3vy(fI0rSQ`LT?}NqxKs2oGhtZ%m0Ico@(V%)ChINiJ{>NGWA7}UvuK%Gl
z!TKNC?}yd>AR1r&4{8H|>V6nT)c*|s9gaileQfnVdK&<_?gz0!bw3D`RsSDn_#Z?}
z{ePU{f5dSHlr{ja`XAH|fYtpVnwa_@)DFO2|1<p0I>zuHR{w)&Sp5&8L2ZD7;|xUC
z|7FJ+;PpSO4S=owuRTtB{g2!RXg|*QA5#A_{O^GF{XuO2to8qKhW~v~466G<c;a!!
z|FHTWL{C1(@E?Tn)&Gb#0K@-T#~^)wQ2h_Wxaxmc8vs=IgD|Y_2houFpW*+qV-O6g
z`#~7J{s*-K)*NR5*Z&|IRQH4M`s1keKe!EWjN$)AD2CPjAR4*;hqM8(*Z-h)0Ico@
z(Xe_SMiX2A!`c9_`X5A-SN}6W#{QvoKdAn{a2(S2hqVFF>wi!?09N;dX!QCY)DFO`
z|3Pg41P1l}L3KX}BiH-LY~;Eh#0J&*$oR=|#{a1GKg0iL#~A)UKZdCLL2Ur!x*x_y
zt@}Z30o1x5)E0PmoZ&yV`X3|)Y6HOPeh`hV?gxostNTG>=ygAc|Km8re-H-M^XM2<
z&%?w(bw3D$#6TEQ-!p>ieS-D>afbhlNSNsaBb*Ov2QVLJ{Ev<y^*+OYmg5M_ew^Vy
zJ`Ah(Igc~`2jdeA|2a=E{0G<hpn4w-^B!mXj}3$BePqmkg6Y5DaRw9&tM@^)@CnBM
zAS`;E@johN_%C{#;lKC^1P0al=veXu<A3Sns2J4mmpRVxU-kq9%O7X>kB&k0J_suw
zXZ){tf&q+`jx+p+Vb$Xd|Isn1?pHs~_#cEdk2Cy7##$#B!To>j<Bb177*y{gFvEY{
z6Ab_Lk7Htk;|%`|PcT9;TL16g|No{Z7{J)<IKzJsHb21#rY(;%{zqVj|5nEt{#&1b
zVB6yi|6v$Z_uC(5{BM7P0ggd+KMXq`XZ(+hL3O{&afbh{Cm8;_A4gzNy$`~k#~J^F
zFsSZ_VV@HW|9y`mFsT3Ue}WM_4gjJ9k2C%cJk9{dpt?W!1jBzA2KE18IQ%%ne;5YU
z{gEdiZGh<G4F8casQ({(g5f_1#~)|-55tMa8UMpDsP7NM$tM{8ryfUOP~D$?obf*h
zXC7z#55WxovraJl&j$7Tk3;HzP~D$<g7H5H=O1VMpMRVIjtfsP{D<M<;|%{nxa0&Q
zcnqNQIKzKXy${0WCm8>OaOH8v|H!!NIK%(y6Ab@B^*)3KvC-oH|Ns9D#~Hx5`8d=6
z=Hm=-466HEk2C%U)%y_4@W1^y!~aes466HKxc4~2e;9_<{rx8x|AXp%1ZMa@`8X;D
z)&EmZF#ZSO>BkxW!|;sb4F6}IfZ*B38UDlYTu`4M34_J}<{fAFKmP>7|Aog97*zK!
zKF;_bghBQG(&G&OVHi~ZFF(%kAA~`5KMb!t!SH`IsNO%$@E=s~gYeoDjQ>FxT=#?O
ze=uhFzwtN(Z#vHK9~o~x!T5jcaRdg{{o7A4{D<M4#~J>EFu2}7&iH>f44+{5zvnmv
z??2A)A031G{|8Sn{0HH~#~J=3V{qLM>i0u2sO~>@oZ<iR6HNb49%uM}@;HpfjQ_L8
z8UCL=&IrcmKz06crvDI{;s5#L4F5rOKMY?y!TA63ab(Q!|H^TO|5r~S@b%*i|B*4c
z?g#bzPcZzyd4l2pt>XxM`vk-PyT?&6sQ$lyg5f_5KRnLx9~pz{eGq<pobf*lgX(=`
z{QNl6|L4aUP%x<8N5-#@GyX?lhX1dRL-3np4F5s+?Qw?xFbt~qk@3gljQ>$F!~c)R
zA^6jAhW{}9`2@p%5dM0c;XgVC)%hU&{W#<Q?<W}G7*yZm!aq+i{s-aT#~J@4V^G}>
z!Z5MF$C>_v>ixeb7{KEKAo~AtrvG3XZ2$nd?gz2)*8e9M{xhFI)cMHuKkJEssQ(%M
z^PfPi`(bSXP~8v0pt>K13Dy7D+5)KcKf{0N;}DEo|AX2ASnL1ekb0kX^*_UZo#POU
zul`500nqaQzyJSDjzj8yP&)v*{s*-KAoV}Pf6L>j^*^W`0IUB&G)eXUafbh}`X5^x
z095zGFr@xx_>W%ygW3Y1dLPyfptSx6wF8jre-Il~_k%F3?g!BcClK{Ns2u>V|Bo~L
zN3Z`uZ2?f-55lmzKl3<h{SRsfP*VTH+5n)sAB2(X{>tMF|4Fa^5p_SP9RREUA#DIi
z-H%@XgW3YH`oH@G_WB>S4S-trgW3Yv>wkv-#Ml1}{|VRsh`Jxt1|X*X2ekvR*Z&Ov
z*F)=mY;6FH`u{kh?gzC2Ky^P1BiH@A(dz%bCs5k}$n`&Z8vwojKYE<;Kdk;gegahg
zBk;d}pjkgeC4gD~GZ0b#GyK1N9D=D{{~t%x{rK7du(}^aBkF#J|4)uH{C|1^weE+t
z1(56imnT5=Kcvow)&0mctnLTV$aO!6{r&{3{)g20u(}^a!|Hwz4XXQL7`^@n@xL8M
z)ceS701z8n8vs=I!!WF_2hpIqAB2COVE7Nhpn4v&{%62i|AXp#hLeo{K{V3|1~eMl
z_lMT|pt>J~Sxz$i2Vqd1j|;=b0ys`E{s-fekp4cX&yS8lV*orS82_VV<o-Y3NrwM0
z465_dF}&VC!T4VYiedFWgogC@#ZEB%N5?4j{z=CF5+@n|gX(<*hSd3>x?ko5!+#hC
z)%!3Es{a*EF#bnihW`rCem|)GS2_u43n-sp_>YWXV*qL=8UBN?`U!^r$Qa!32lf4-
z7}WO%;}Z=3wNF6${h+!Zh7C?Ig2w?sGzdfb{tW+(PJ+e(FzbI%y$`}>CmH{Pu=xpw
z|1b=y_d(d|1jBz22G#q>*zN@5e><dpKWGfV;UwdK5OzGl_#cMB{r?jT|6NW(FsR;#
zVUH7x|B<oh35Ne5>~#`S?}O@o81_5C2p$Ij(V+Stf*Jn%pJ4bOgoI&z|B#c6|HDpz
zFvI__6A%pQ|3{o)_z$Y{k#WokM(`Lw%n647APlPeK^Ro$Bjdyq4F5qm=_I7y2i5&B
zoOXioKMaHF{`3<J|3Mhk??=Yqy8i^@{~T!FKlcQ~e-JJ>0qOsPXjtFB=p^HR5H2~v
z@E?Z3b^i&*|7Fm=KdAl(;i?l1|G{<t2}s``)b9u3nv;zG>rOy0qU49L8c#6%hvBA^
zjQ?9sAaLsmhW{W8s`ooiF#HE$P@NCMT_+g-gX(=42KE2@PB8w5VNl%<!V`}({GW6J
zf<bjY3{Qdf`$2tw2xj;{;{*c3`v0>|GX9@)0)`p>&piRb^G-7S2Vqd(ABGp5U<8i?
zfat|182-cXl9LSomz_XhP~RVfSDaw{59;?LV{qMng7N<vXx|^y|6hB8;r|9S466S(
zonZVAs`C+;;s53n4F9(wVNksf!aGhfg2w@NonZVA!k{`I8SgpC@E=s~!|;I<jNoyA
z11A{%gD|Mxhv6e982=+<P@NCL$4)T)KXww-_XlC7|DgK+)CtD_V0;oS|NsC0|IA5-
z|L0DiVo<*ygfE<61djoL`uz~h@c-foXuW@e;r|sVhV}oion!=$1>88n_#c5G{eE!Y
z|0KizTPGR*gZll*_}&S||94L?{J(b+f?@SOjDB>2@jp5S)%zg)<OI|I$0r#6KRF4h
z_d#_(48!aF6O8{~oM8M9s`C+;;s47M5d7u@!+&%Ps`o+o-3dnUH~@$S)%y_4@c;b@
z2nN;pApGeB!+&H9tM_3vxV}HZ`2QOiGyMN{0)avGJq-Ui$@m|HVf8#N`p*d__!z*S
zlMMfnF{u7W$N!JxtN%guJ`97}0uVOyNrwM0465(3VYZWu|4}i+f3}kl%yE+8KQiV#
z#rPkDxlS_v$Av*{0N#^K|9MX`fHADjN2d8tG5!}giHTwLK8O}R#qb}7MNTsON5-J~
zU;HHFe;5YU_vl#aB*TAn46FA+wCqX7{~#=PlJP$TGyIo3390kJ^*)rXc#`2isP2bh
z<x`AczRF34|1b=$_fIiG>i<)W|J6@1{?|B(z@RpO_DQDy5X|sj`y|7E9V85@`}IyT
z{zt|JCmH^OF?j4BQvZY60FY82N`m_TCm6u>zS&6x4XXbwPBQ!lVNksf!`3Gm|J$5o
zK*9DW8UMpDsNP4$PA8fEJDp?zV_4k}qTNn1{zt};`k&#y2dM5p$?zXk_rox#?)N>(
z_#cM-PBQ!l;eeA2|B*4M{trIM2yO>}=#Y~P|3NtP6vO}UlL!o|`(ZfpB;)@mFlP84
zbrM?dpJW8r|8XZ7|HCk-{!cu~@E?Xjbw3QJoMilujMGjq{0HImlMMeekT9tJ&pyfc
zAA~{me$GjT{~(-uis66WNdyMf{U8jg^C6hwf6+-u-Cuf=@jncM>V6O|KgsmJ;v@qc
zgW3Qf46665PD0uNkouqDf87bp^1tCE!+#J4)%{H;8UDANfZ*1X4FB8EaOX+J{~!#i
z_q$Fq{D<M5lZ^ji7+&|EV)#GdBr2YKlJP$XgX(=4o_dn$|Fn|~a15*eXP#vI55l0j
zAA%YF&jHo@CmH_Fh1UC^x*vq+pJM#K;3Nz){9kaA;s0VN2G#q>c=<`j{}9aZf5k}z
zUUic3KMaHG{gX_P`u`Ne|8*x37}N&Xc#`oy41?-_Fg^*X_qUv6_z%OdHo*3ijQ>G(
zKLj)U-*p0lcb{bV55k~&ABOjxWc&}o4FC6?gx32f86oxmNyh(&pcq#7A3e$N|Hui3
z{~#Jv?;~SS-GAaFr0xgPIO=~;8vuln+X3fKGX4kE{~&zv6r|q2bdupe2!rZ<7!6`y
zJ<0eVRQF#y$?zY9Z=8V8H%~JB2eCmksNRQRaNU23@&BEZAk6Up4y@ik#RzT#JUGet
zA05N$|Hmg8{=+b+&PT>iPcee~{?AS_{zt~3y8p#VhW{Y^@)X1WS0^zstp0y{lJP$b
zgX;WuCmH_3@cUDcI{(8-hX2SIx!#Adzno<J55Wxoznny1SiS%KB;$W%465_d@y}CC
z|H1eK<NseL8Bj2&zK4l{*ndwk!rK5aHhLT2AC~xMILYuI88e=O)cKIH00<k_1_066
z+5n(209c)mjmFjnz-$LF{O39e!8|7*bw8{P0HTrWe`Gd#J3#0p!+&Iqs|^5Z4<NS#
zBu+B?$A)pW0c1}x{D)ysy^oGTZ2%Ak)&C$2tN&p%tnP==pf&&qgX(?|M%4cd|20lR
z>U?b^8oB-lu@QAY!+$+k-4E*XpJMoLcnU}T|NsAg)02$<O;3U9eh4-{1*!Kzbw3P)
z>;IDs|E*6!Fmf9JR`<hbhm#EdVc78mr0&Po25>zEYXd;)eNf#G!k#A?{(~^A{s+;J
zx}V{{?@0&-)&KsdFxvs3HbBrxhX28*AQ)8t!!Sl0;3UKU$WsjeBTho<eo*}n!l1rC
z2*<+fe}?~YCm|SC|AS~){STrc^*_V^l#>vQt^NnK1+q^v{D)ys-4DW``X7Xm+W;VT
z;VFjyAPlPeVHj5TgXpr84F5s6{1n4~5JqkTfY{Y18UI(GV)zfL`)f`@>i&8x`M>cL
zX8jMU`$6ph5RKdh=sd~r9~r~ye^CD)R{!^$Wcc3)#r<e)08rfz$EO(nPdUl(f9fd+
z#?=Oxb&}yfG6vQCAPlPakuj*wN5+dlegBgT|B>r{5F0cGu>2&$e-K8l|3Pe6{STto
zoMiY9!fQ`4{0Cv=HUNkXum4Xn{NIFxVRb)<My~(2pJMpG<0Jxu+5n)sABJJ|KZpj^
z`^Xs7_XpvFCmH{PFr*E@@c$6B?uXU?$Zde*rx^c(@QITQ|3P&>h(37=v;7CE_hI<_
zDTe=`dLK-mV)%dIBq|2g`N$Yl_k-}&Qw;w>7*zKoV^G}>!l3#egkkkRj0V;F$Qa)L
zKgIa}{wY`+fZ_jxlMwvq1jBzA#?=M@wFe+|Kg0iLClMG__akGRZGe*u|KFTs`2Y44
z1jFinWE#2dM`nZT{*w&<Kb>Uw|M?UIBiH@NY;5fSNd3?7|HnxL{&@<)hSm2V8dT?l
zXb=Xmkuj+LhhT>PF#6v~#{Zc0|KI<h`W_vF>UoeDh(^Ju82+=IX86x~3Oh!x``J%1
z{)b^ueUFM6{&Sv!)c2rzpZgTUe`E}*^N}&%DaQXG4C?zMFvEZTQw;wFPC~HYDTe<r
z46FB%Y0*=R{}GtszvwB3|Kdnk;xxm57?wQ6@E?X@Z2;+04F6#mR`<hb`BM!4kuj*w
zS3Je=ABL4qGyGRRg}|_SU-c9tcpLykgX(=42G#i>ta*yzKMaHFf1Oi|;QqhvDaQZ0
zrx;K$sNUB<#qb{)gX(?|HagAt-}n^f`JZN|8UDjCsO|@0%TtX1VKk@>U<s}FVf8<V
zwmrr8ABMqo|0#z5_NN&BJDg_t?|2G<VRgUrDaQXG?0SmfKQeYd#qb}7LG?Zed!1tZ
z55nH382@{pVgO@M-R}pg^Pw12|HCk793b!%!+#Kl)%_qk<TS&7Q2!r>L2ZBtP@R7Y
zQul-Ee;AHF#rPkA8UDwfV)!3-n&E%^DO3!q`$0JA6yyJ7FlP9ld<s(Ur=DW?55u7T
zKL}@@V*H<ZiUE${_5Ue`|DbvwhCy|H{waq4Fbt~uLAdBN<NxAQ2wZxK;XeqMorcu=
zpt>J~L3MuRDaQX0%<#YF6cf1quRX=|zveW<|JqX!3?2D_Q=s}Egqu$>{D)ysy^oCB
zPci(5VOag&b&Byn2zQ@i{13ql|9ekCFsR-~#uHC5{)b?O|C3Ka@RZXG|3Mg5|AS~y
z8({h=#{bh#G5nti#j{Q`{GWXafkAaY2+upk_#cGlpJMnA!=U<q;VFjyAPnpOgJ@8_
zzw{Kte;5YU{UE&J6yyJuD45~@s*@1B8d~pz>V6Pje~R%x1T*|!e~RJ%MkwBNn&JQE
zQ>b|BDaQXW4665Gc*kjm|2t11Fud+R&G3KEX@>uMPeCxK?gz2=pJMzE!=QTq;3<ax
zAbjXF!~esl5ExYN!|<_FjQ>IS_$dZR{ePO_Kd9b^VR*zt8D~#1{)b_3y$|a5pJw<E
zVqZAT@E_dw2lfA<7*zjXKE?1KhC%f{3|~9V@c;TLR1B*3!T1!z|68XS{@*@@ib3`N
z-BXPJVfg+jhX2U;!D)v74^N?DSlthzpMd)OaLn-k=_v??)&0*;G5m*NP~RUJgW3SE
zPci(*hT--9X@>vcem|)1kAy!UjRAZ-#qb}7Vf8*b{q+>%e{}r)6vKaH{Npske;5YU
z`}pwhQ;h#%7*fYG{{MZN0gV5i0@eF4%=jO~2iN@=?LSEU&v2RnYdZkm1^|r-AYo7&
z0EBV113==iwg9aDXFm<8??H7wI>uK2gW3Wp_5W#x|9nsks`Jq?F>L@)pC44`qhoAs
z07<0!AH*iq1_1T{k?VgL8@c`mv60&VAU3=maGK%2>S>1m>ZedKtnP==pf&&)pJMp0
zjaL7I+5@1vAGsX>s{29M=rqHBV~qI!53l=?+W@foA5`~)FsS|qVNkt~j3M<uq}~VB
z{U8jg|3Mg|4RDI#zw>Db##R4=+5w)Y82*E>*J((-53Bz{G^qZEwF6*vKa2*|{V)uw
z`#~7J{s*-KU~K?cy$_>7bw8;8AAO49KL~^Be-Or~|4%XePdvr&Kj}22-UrqFFbu2v
zK{TlDPd~-*AB2(Xe-Ing2FN+Z@E?R>^*@LP)%~z`0I2Q<VNm@K!o{Z;{=+b={zq>E
zRGxy&1Au5yoe%E+pJpJc{s*-Inoc9y0HC%&>nVo+APgD<K(GHn?Epyq&+xzd6a<6%
z{;)Oxh=#QRK=S|-Pci%lVOaeSqS5PrP#XYL_royGHoz%{|8q|<{GWFkf?@SPhz8aD
zuy(-WQw;xMc*$u7c>ND*2Y~8-5Qek?82+z3g}|UT0I2>4VNl%<!=QQ}8H3sY*y?{!
zdtmD+hW{{(T>pdEur|Q%Qw;x+F>)IKR{w+A0{c%h{0CuB-4Daa^*@M>QvaU@)%_sM
z`2Pf+`X96s5K{Lu{6BM=;s04s{~y%vN2>op?Eqri0HFFG)E2;K1Ds;`e-m2&V`~F|
z>i#>Y82;Zq4Z+CuKZuQ9|AY9Tx*vo=_5b5j4F8{;hSdA8`X5B2w*ipreq=VG`XAI5
zct@Ze0IUCDG<y9H>iZ+=e}?~GPa!b2HUPf5A0!8=`$2tw5Qf$JFdAInpN7@{5Sp0!
zp9$Iy0MRfEs^`%$>lw!XFwAzE@jo^UulG+e{^vNu0LNUX8UAC#+-Dg7^PEP-p#DA>
zpJw>ae+GdCPBZ*R$FP1sh!#4{_#cKvPBZ=&In4mapt@h|G{b*n4D0j5Xvs5-|D{ed
zpkP?PA4JQXX7~@na;F*oBV$mVuW*|2KLj)US2)e^AJp#$VdXQ7V7AI>#{b9|)b9t?
z`)X$x{)4c_X@>vESnD+7e`E~m|AX;qhW|RJ8UE{`VNm@K!Um@q!Q%iR8dm><+5pgI
zKb(Tq`ykr<45Z(0ahmbJ#c2jG2G#pkry2i)u+3@4|H#<xG{b)o2G#e-*zpYGf2Y$3
z4C?oT>VB6q4F5sc?KH!G81^{L_#ckXF#HGA`!MW%hT*@@X#@t<{~+vtn(==C7&H72
zI1Ry|x<BYN!+#hC)%_qGcAD{j*l7kh2KE0VPc!}p;i%J${}C8c@5h{G_z%LMzCR2n
zoM!wF!H{|%T=$=0_@8`+;eX0$1P0anX{Q<ggK)-ahW{{}b(-NnG6vWCry2j}o@V@?
z2gVHl^G-ATFF4Hz?*D^mP@NCL#b=oQgXoge4F8dF`5DIlAY5^p@jnDJ{I5FA@E=t7
zgJ@9wkBmY6|GLwd<3FG}zu`2)e-I7ApnAXMG~@r4GYtRRP9t!~X~zFB4666R_%y@+
z9yHu{n(;pjPdLr^AA%YFPdbgjpn4yKr=DT_KkYOOGyI=+ngQJRpK+SuKL~^R{vbU2
z4CDVfr$LzE{~TzY532j;pMli>3r;iqhv7x18NvPkMQ0fPgX(-3UV4V{|FY8v4665G
zc-3i!|Hv3r@2@${_#cGVoo4(G!3_U5oJPgqy8jI0|1GCsnBo7H(+~`*`?sBD_z%LM
zem^qab(-=2uG0))465^Cc<&j;|NBm(Vo?A8z!`@BAPnmF!|;*QjNmZ<5DmhhKL0UL
zy?=(`|M4>n;CdfC{*P4upF)d&^!ooCv<(32_aoy=ry2iWI?Vvbu)hD5(+vMX7*y{g
z;~S?L{@*yw_#Z+;`u*T~{|qB|4B*ab#{b9|RR4qO{(EN_{(~^6&yS8Doo4)xiXnAA
zsNM(Rr)L=cKRb<yVSWD>ry2i)@T=2|{~?&+|Etpw466U%oM!lsjzM)k48K3a`2WLc
z1`G_V??LpZ(~SRN_{(X=|L7Q0=YKoR@E;w+`us5Z=NZQTApGkz<9}TE&lyNxA5`aq
z*vR<bX@>tG3~L8~*#A#K#NY-0|Ns9%dqF_;Ji}?G|175%A!7h%82>Y!VfYUc2VwNO
zAI2wC|0A~vKy3l!HUNl?-Ua~m_d)ePj0UlhF{~W`8Up~e1<>n%7#~#sgD|-MKf~}}
z2#S&003bGU{SRWp>V6n4b(-`xfczQ8|1b=y`(aoKsT}}gtDI)|55u7PAA~{mKMW(c
z0YH6!j5YwY{?|Rj@E?RR+5u-k^*_^p<I@cPLG?ZegW3Y1JP%6)Ahy{lrvE0;IRNuB
zkhuU*I{>-<M{WZk+5rszZBIcks0{$apmqRi{m<~<3EJ-mwE;jFxeWm7^Mf$F4FGKq
zfa-n_My~&1Y;0|Sz%z)tAJhf_)%`GxT>pdEpt>I!L)rig|D(@9>V9JCe^?s;z5WNa
z0YEtI48wmAhP44Q&!DyeKy^O|BiH|+{y(Vhhhb2?55mP~82*DWw)!8@24MJKaT?MF
z0M-AMXBZ&k|EHP%gXREg&oKN4VOZRQ>3{$KH=cpk{h+n~r<wmZg2n*OFo5fS<TgP2
z8OHx03~vLRX87NA8rttiY6F1!{fPRX;s1ow5Ipe=qW%Z91wi#b2&1+EAZ-Cq-47ZA
z0M-4-7*zMeFsS}V#<2PyMuX~q5Qf$NAR5%~hqVD<bw7w+d7A0}DlkU013+~@7@uMI
zzwR^wBewxS^*;>5>U|gus`p_Sx$cLtL1O@*HUO;d2hr&DKd9~p<I|A(AGr;1_zdHJ
zP`wYq4F8XuX7~@P|B*4c9dMH2Kd9aZj{|_}1yIC;GCm0Z|NsBg8Bo8U@&8#U4Qd0N
zJHzlFR{ulleo*}n!jLuqxc)x_sry0oKMbR`0TA^+wsyds(+vNSF{u7W#_07wsLv0>
zk4`gy+XA4zKNz1zv<1-H0kHZXM1$&o7>3pTAR1f!53Bc)X<TgpP`dzB|082qI{-v~
zInD4NhKX$hfZ76}HUJExwgVWD+64^%k?VdK8&v0m*#A#4{fE^3OyD-b|NnnMDd0cs
zAb3V-ea~=~;XjPce1-{L|1+Oq{Ev)b^*-wvhX3f84YW1@D$ag};Xe$6>U$XGJj?hW
zgh6}|&3TsLKL~T5Vfc@XdCoBW=RJ$SpgJEH2G#w7XBhtro?(DvSiKLUMb9w&$A&?5
zKM0GTVf+v3_e-8(_>T=spJDiqj6wZ>7>3mO4FBcNU}A-{jQ<tSATVeg0EAV~F#Jcx
zuzDXvtDj~355k&f82%$;tuqY&VHi~BBV$nguMev8p%_%(>z!rzZ*ZFVzrh)X|AuEE
z^*lKK|NZ~}2b2o_{`zlvmH|@#pJV)Qewz8e#aTx1IzP)ZjQ?R6ROefrVfYWjHm4c>
zTc2h4Z+ixUL3O|V8OHy}7}N%UV21zBXCN3<?;~UPGYtQcvFBNa|1b=y`(YSV@B5x%
z_z%PWXBhs&FsR;#;UG{O;0(k6;IjxEdWPXYG7dk(_&@wC1GxVmd4}PC)M*GtuKPjt
zKM2R3Vf+um@n;zSgD_|eAn^>te`E|A0|4QavyA^!&oIDo`dNnmAPlPaVL1B?!+&&~
zdxqhE-dV=~`DajZ!5N1CAY2Ts`$06U{x600{Xunq`5A`)APlPSkuj*RUvm~R_g{S$
zRQEHY)c?@pA6);}pJDjle1`FV6R6%l%ksbN6yyKavk(lb^I;fN_jjIQ`VYYj|GUqi
z;@&e1|3SF#48wmI?mx@$A5{0l@FY+>;0(k6$!8h<Pd$T*!TtX;4F6}GVfa7&48#AK
zXBgpl_8Er%Fg*7R!+#hCjRC;$!ZVEjA(-JmsP2d1#b+7+gZlq43~B=`Kf~}JhF6|p
z_z%LX&oKOlVOZV2<_yFCwPzXruRnvp;5NWn#{V17K=9@>jQ=;EVfer0ECO#m1L^yN
z+W;W;8HWF$x_{>xhW{W8s{3Jh_Zi0jAPlPiL3sZervLlTFu*aW-bcouF#u5g55kc8
zpYi|EGfd!qKd8<J;S*;W{~tfi^#9};#{ZzTf1r9E)DHOf|1YfQ|Nrm*@Be4dF#QMB
z_n`6rOJ^DWgX;ea=NSH<KMTPZ&oKOlVUYagGYtPh_zI~0N5Y`G|N0q*|LFL}8HWEL
zeDf^Be-OTXhT%U5-#N?l|Lz$WX83;>+V=<b|3UcvS;qe${O}Cpe`E|B19*If;Xeq2
z>U(qy8V7iOhVef-2G{*(82-OF!|?w#8h&$z;XgWldzRrp2){qW@E;w2Jj3`O9fRt6
zI6lMh|MOV{{(6StKQ8?J4C8-f46F0e>0f6V{{KD$s{0`{hz-J^dLA2w$^AXU{Qp0w
z?ROfo{u7k<LHPgw-~XA;GX7@-_xBn9gW3R~aR5;NA0ozpQukwT2SDZmK>dC8Gfe+M
znC&ct2C+dHRM*2Wq|S%50YGffxIZ$6_4z?!JZG8y^PYiXXj=eV8vs%NgW3QP46FBH
zG`6}QBnGPYVHi^XW3~gp_5N9g|I$z_bB5tRGR9i(pJqU-_Zj{xpMhX-zyB=5f0eWN
z+5p(=e(kdi|6v%p{s*y<>wgd%)CMp(3tj(zj^V%ISxEeYs(vsAo&R@+@xKMQ4Z!r@
z6g2)1!q9dAtp115;C29XE&yNs53Bbb&oKN4VOaeSqG9#F>siMC?q?7f)c^N9!}K49
zVRb)<2G#!{?0bgsKWOY9jIp!<K>dCY4nD&OZv!CL{h+=-sQw4_{XsMcgV<4L8UBMX
zs0{$ZF=rY7$DCpKAA6SJfBYE)##Zlx>;BV_dLPu^N5-J~AB17`f7V$>l=>f3_rox9
z{ST`5VYu)tr0)-^|3URW3`6RE*c<@Ee^}iQ>idK7S%&{r&^|w?-(PzMTK|JHKB5l*
z>i;*MW&-#3n?daWX#XF~KEnWS2eh7L_}_j8f;&z#fZG7D`X4k0(0hjQKM2G6{{3f|
z{)6zuGfXJ;|Ku}_|B*4M{|~{Cwg9N!2Vu|{00@KH0HE=I2!@RRgX(_JIKbSq4F5qG
zQU5diUw8(BG3$PY|I1Dz>U?B2sO|^hRc9IhuRa6AkhTD*{s&?7HUOwSfL{M2w*f%)
zKL~Gw*8L!Q`&mfck6izQ>U|If)%zd}sr#A!?>mdA|3Pg5<of^MS;qf|&oIC-sP7NL
zN1<c?p!y$F_n$ZmnF}~|7Ss-aj01oxe{dRrbOBGFh0Oh*ImZaD`$261P#fU<8OHw?
z;TX~eK$!!8wF6Ew{J(mJ5st5)Vf+ulkhTD<?+>DHo?-ld8;&9E08qV;j6roj2;V=;
z@E?XBo?-Zpj6wZ>P~8v0=ygAc52^nd{y#qh!Jzsc9lt!w@E?ZJ+X5i|+cS*+!5B*$
z;KNzQ{~(NB|AY9S&M^E3VOZUdUgyKc{$b)UKH>TwQRn{xt@8to|07{+_5a_qkTrq-
z&oKN4vHzT70C)eO1h@)dI?Dv<_n&0|w*^4$0fw_o1nYg4a}57snC&dXe|(tZEaQK4
z4C?bEW1h1N|8Zf^H~`-{#{YchAZq{w&NBQ*$FRP?&{>B6$XNI+!+#hC)%P$gc9!8k
z42z#-_z%Mp=NSIOu+&+G|HxS8EaQJ{SoRF#f7!DP|K-jx{s;B<(J^}eU*#+lxb6ql
z{~!z+2T(i5@E?TL&ocZ+#<2ds7E-+rtN%f?&N+tvpng6K>z`rx55l0j9*)m3LdF2j
zVb1@WoMi-$0T`WQ_zxQY2aN|<o@D@!1HkHi5N&mq3Ebxg)%!4Pcb4%#2qX9V9nLcS
zcRCBH_dzragX{jYjQ?HFGJvtmIS38ngT??n&NBQ*#$M+b{==}(S%&|}7&HzLaF*de
zG7dV+@E?Sc`~D&482^Wz1!0E&VP_e@{r-q^4F6#mROiDmq~3?r`Jj3q)b9u5vkd>^
z&N2K?I19m`HbBx@#{V!3>i2_i>N%$WX=fQwFsSYa;f!;P|Fh0AfHA25pM%s60QLQ0
zxZo_qe{>A0|3SFqEaQI&X82!nmf?TtS%&{*=ODP^EW>{gt~|&1zv?Uk*PUVc59<3@
zpJD!AbB^JE{W-?}zyJUG59$Mg$^g*(U*mbk|4nBZ!Q%i;XBqytoMi-KSpOeHgX;Z`
zvkd=1xbqCC?nmIRvyA_H&N9F;xc`5a;eQ_#gZlp<JmDO}|4C;N7}Wota*p9Y2v0l9
z@E?X}oMrq!<1EAfnMfGa@1Jv);Xeq2>U%JTjseU&%lIFJ7o27I55kMiGX6)$p#DDy
zFFVWdABJIle-I6-_dys`_pdq2^dEv5{;xR;!JxVygg2aJ_>YV?o@MwC!pQYLYz$!Q
zIfnn+&LS|V?uTJ;{ePD6|1KoF=N!X-5C+xzFnr)F<9}ofs`p{|$XSN}$QV@j!|*Xs
z-yhT#IL8DY-v{^o&occ7wF5xCe`xg&p8o~a|L4yzgUA2Deg1Py|IeIb_zxNbfMHO-
z9~oah%kcloIRw6Xmf=4#28{vSILr7Sgh6#a9G`{M`FGAT{71&H`v2Zp#{VD;>i6F}
zhp7LN+X0WxGW<uzpf<phvyA^?_}N*;{}9aZ|Jhjx2DJlToMreA!mv6YnSOJY@jnbB
z*ZH8nKL~^BdSnc$=Rcff_z%J#&ocan;ZNrn{^P=+_Q02OjQ?Ty+gZl{-_A0C@%OU~
z|3Uc2Ifnn}7}Vz{g#Vmn{Ev?Ronr!z75qEL@E=s~gXBSMaHS7R0RR7k`~0B#p6M*Z
ze};3AHUKkHTL8JwkIcqb--F~Z>w83>AJp$huKPi3^tvBZ=c8j--yc->L)rt3{{_yX
zV$eK*&{-y&Z2*yTjQ_>X!Z4%_0IT~!G_JZIJO%)o1AvVIoMQmj`LbsrG-wO}wccm=
zuW%NE70)vK2VtdikUl@C&WB-8-4DWQ;4yzh-LG+u;Xe$6>V9MltM@^5KMcd_e-I6-
z|Mky-+5wFJjiF=zU>ZyR-{dT$-nTf*^xq6L2LM_Fa1K=eGyDg&1FX(5{D)y!y$_;o
z&N2Q6VNm@K!?1P$s14w7jse^bfYtvlXBqz^V^F;h!svBBZ2aHr9OHkVv&a}R{!dK(
zA9R-SKWH2P(FOpu0~r5<`uq`Rnf`-t)ETD#V0@P0Ke*2i>i0u2xD9X?(jI`<{bw2e
zC!S^apL7mEgV-r&8UBNC>N!OH532WJIO80o?uWGja?UaQ2eko^F{llYe-2UqgX(+`
z2KD<v7*zLz>U?wzY6F1keh>zY0aStd{bw2eSDyj30~o;dKdA3tcb4HlXq_Lp{|8$8
z11boh^Z%f}egm}L2ek)4a{-`s0I2SV;f}LR{~;Jr_k-F3J>dEu)COSu-+K;G?}O@p
zP`wYslg={2>wi$)55u_Xe@Ht3GX6j79K(MQ2G#!{Jog+UxZe+I2Y~8)7zXwI;dTEx
zhX0GsG5lYA7J`?YL)87qZGaW$82*Fss<RCLL3s5!hW{W8tNTGTsO|^h4QClq>VHsM
zVADB<|Hv3t|HJBjSe*}}L3KX}BiH@A&qC^c^!k7QIn?_9z&VEh2hT$Ap>wG9Kd3DL
ztN%eXsPBLD93y!A|KvG_|DgE*P+bp-c5vGdJP-W$KS&IOL3KW;&wuVLsNWA6`v<iL
zKy3izx*x;_kN-pKf8=@}#0J&<APlPekukgtaE9?eXzU-o{s-0jFbt~yVRb%?My~Tg
zY*4)q!=Sn!Qs-mV{h&4ga{Z6q1_1T-Vff8ihW{W8s`Ftqi2d#y<NtT(7{C}*=R+`L
z3;@<HK(F^f^*uU<_xaC)>V61@_xqu308l#sgo&y1LF4-%4656aF{rQq_bkKzKNlct
z{y_CUNDR~t0LA}b$m}n800>g&GyG>f&jjxOGsD^d=NSHj*w`?v-;Yj%>V23P`#Hw{
zAPjE@oMZUUc^-ke&N2MQg?Z00{zt**8UFL0X8`yAL1O?Q%zvKYKL`t+WB88^gT?@0
z{eF>i4FAzFyzh_H--p%x=(OZ{hX2y%P_fK8hW{`ucaHHtI#xW#@E;k2>V9ObdXDiw
zG6vQE$QV}l!)WbujQ^3b&N;^aFbuBqLG?Wn295jcU10nV>eqwD0gTSGz{md)eSp8<
zI^Xmh6L<~))c-d-4`MU^w>-xH$DsP(`aI)*WNdSe;Xer5on`oMe-0Ca>V4;PjQ=5+
z;XkOqkBnW<GyHcuhrpn|zvnr||1gZ)_xC-=@E;lbon`p%e;$GZ&oTT*#^5o4bCB`>
zkaG<GK^WBc2jTE@4F5qG*8d05k>?rzN1tPW;}~#TfZ>1aIS2;z{XsbXJmdewb1)2P
z1Ayv&5C+xzFq{Tz1Ds>{pMH)Jj6r>WQ2h_W+2<Jl!!UB)pMQ?&KdA19VbB;r;W@_t
zFkEzw@qf`d1~4u?$M7G7LG?ZigZljt%<#YR9K(N58=(3e!~e?j4B&o0sP7NP=b8Wi
z{|6fT2c-ZAU3Z@4fBkue|IOzZ|2Lmw_zxNbXg$aDzx6x=7`L5c_z%PF=NbNYLNTb{
z560&h{&$^Y0N4GX`X7Wrbw3DCILG)Of*JmU`u~&9G5m*NP`wYsQ_nN}pMDO3XP#q#
zi~&IFeNf#G!*kCu{71+0&N2L-f1VMH7oKDMzYtXKpJ({L7>Yr4KMXHD&-j1&IRsvD
zmhu0}^9*nds{270RPTfE+H;Km*TFHv|8?geV*nem)cae{G5$wjhX0^3fbHiP|D)p_
z=NSL*KF0vYpgJENgZlrVx*vqW{r__e|G{<td4~T7&olf-sry0gfO8E0kDh1vf9xCr
zgZlc1&olf#b)NY@XgmPa1_0Ibp!Oe9_YXYJ532i5f#&-`eg6v#|3P&;sNP4$7tb^N
zzkCiAql^KZXZ(NlJmdds=OFmTS%&{0eDfT`e;B@Xj^RHH-#y3pAB16bJ~9oi|Iai0
zzYoO^&N2K)$B)l5{C{!|I|kSJ=NSG!KL_dagX(+`etDkZKMcP*$M_!=GyH#bj^Y37
z^Nj!Bo<m?r-4Ck&A^81yrvD)P@f^c{WQ<Y&pJ)94`8=Y(59{}%($N0@Ifnn=(J=Zr
z0EqwdJmY^52C;v``t?}ozvmhL|33#B^M~~P!S(++rvLw;<G--@2hj}Y8UHh!XZQ~q
z17JDJ1Rf6n)%l=#0Avgj17TSG4x>SJJ_v*AdIV+w*Zm+qxc)!K@Sg(-gWCaTao7K#
zb^&tz59{kA)1WZ`WQ^Vh0N4NL82<~OW5lTY(c1#z=NSH@W7xRAG+Mn6<IA3B{13wD
z^*)TRc#i2m0z=vYsP#X?f7NrS7&QJ5!?1cEnbtnf@E?X@{eBp&d!FGxGB!HP{NLa#
z(|^Nrpf&*Gf5Y<(;IRNu{s&`dAJ7ym&+y;;JOg+hzzo{ow>-!6A2j9<s{3IWz5WN)
z{UD63{&zgj_#cKLZ2(YPfZ@OMIS2;T{h&G@9b>EiL1X{O^*@Lmc#iQu0z=vWpt>K1
zLG?Zehn|Pj`N;J@s0{$B_dz)N9H{<>VMIFsROh2(*f;=)2G#o@4D0v9>VFUong;;Y
z_vjeb{|B`Ja?dmTN5-(aA4Ws!d{Dg)!jQTj)CK^L{hwp_Uw)nu1w-n8MsWQPZv%kF
z0nRi02lf5yLF4~t8DLQl>IQ(>p!y!v=Lhxon=UZ@Z#f5Q3t-m$h&BM@|ITxa;5r{v
z@59FaLG?ZigX;eNbBzB%7*hX(+5wO@z{K+m|3Mg0_cQ*Vehw3Z+5jL7tM_5_?DLG^
z`X5y1!!V-mX8_mz`09UHI{?(@hhb2^AA~{mJ`Art&+s1^gX(=`466S@7`gAi`8>ma
z7>4!#K{USlAJz^4(a7xpaJ`Q{{(p|?|G{%i{||vN!+%hpAA~{ud{F(5j6rPy5Fb?U
zgW3Y1`u#YlUH~ur1&sjw0r&q-pJ(_F!l3#8^XC}AWB=#RqmKVyJkR(aRR4o8tPOyz
z?nkcwZ=PfNkHDC1fZOL8{@*=^8>83vAU>$y55u_XevtUn^QiScsP2d1m**J&gD|MB
z$A&@mKM14O`!GJJ?gwGyy8q*OhX3do)E@YJp5Z?Te>unSA05NT{-O0gs7@z@e}m@l
z&N2Q6jSYb6e;5Y!>oM?orvIRJ0B8&Vgh6cp5C&&_@YoN81tCHG0Z4@anHz+N;v_*0
z2b_|`Nr2`a@u?&vk5BJ_$brHHga^cOsHGtLVHm#77t+rI34;p!-yj0693lte{`&_i
z7@+9@BYl8WpklCjs6vE!AWcvVq6lliq2eF7=)xfh@e@Vn<1m?O!h{@$PaY%(!o)b{
z-~a!Ap=!Ytbl(RoZ-MhVSOOGgs0M<CQH2mZX!zq*gHVme0@(#iXJ}F|E+K;n$wP`V
zq?8Ub7)C?vC&Cz*22`4CjZk9<=?BFd9@j%nAxweo`3ub~pm2vWq4^su4JIIJVCexY
zMA&rNsTgnvQ0_HY9wXNz%7XwFryv(V;~sqX<KO>a3X}%G`4}VzQ430Pl-mokZxqu!
z1PDbGIBr4t9Tc~JATvIos77}fR2@hdWF!cK*rRx;hXAOK17S!Sz#gxt2?DGJ++aWz
zr)fxlEv2aqBhqkCutMq}Xk3B>pk+QhK)`t)R6c-2KxqZS1}g;#4MGfZ8wlfb8X<Xn
zdWVY~xGe|s3@AWA7{o`Sk(mEMBSIkQA%j7Vhv6aPXnH#IFSPFm%GaRi1!r~;15_bE
z9RkhokOm=G4x;)uRDP7AT?l~6Wo(#=HiDuY9Je5QK;}YX7sLW#L>YmQ2Z@j3;Sd6l
zybbEp!7(_8|3TXS0b)Z3OTb=+q=P@8b^@3`j0srXfr}>Kb&xg!N(NjS(*6VO@&~yV
z6t|$2e~>Z&Bm$3S5C<d;6#$I|gM<ds10efBn67RBSqQ@fECz)l2oq3-T^dv_L$e*o
zI_!$5APP1dS`NVC7G^A14(bTF95@lciwl?%m=>aGvNb|&Afz7@e&BiysvemF=_NFN
z3eperI<nqj#s&oi$V;$t0L%vype7(FUHtw38#FQm3J+Z22{M2N80rk{CWG9AT?QhG
zS2NK{APRAiAS*x^hcs?skS0Rz$E_O_F%XPT4T*Ap{zGT|VD3V8BZv*o3%|kp0m1!1
zs5+1o2xGGjB#w;H)ga4(*y!>D%?G&&8Kb)gCWkIQWcW}IAZKfk5V&v$$2Z6)fB!RF
zWcbf`nc+XfCC2{@R~Y^?U0{UZiwysnpqTj*!+#iNy~yw%A7;PE@ShmWb&26W2y<U#
z_>T?qUSjx<jQKAz{Ktg_E;0OvVZn<G|3O&z0>gh87QM*$AA%YFi(W*<Viy?xi(h1f
zW66t*|6y3_64QSWmcGdJAAuSEOJ8L8FAK$Tml*$pu>3{F{}9aZU;ZM)e}zj7{}r)d
z<%<meL0I)7!+#i7zsT?(9cx}>_>YXWE-?IuVeN~I|8*}ipkTcV4F5q`|03gm5H`5X
z@L&HD!+(QI%>NB9F#ZSejV>`@lr1Kg82=kzWcUwS_iuWU@xR3dhX0lq5!m`7!+&&a
zbAjQ%?L`E(yU6e#gzYae{D)!3iwyrk*y$4Ef9H!Z%<$j&A_Ti#V)zfj?iU&UqhpVY
z4FA2+u+IgC|GpO);n@EI<9`qixXAQB@FD{S4!OkeKlCC3hh1R!55nOW8UBNC<VA-6
zARKjx@jnblUu66b!3_W7FJj_^3k?4gFEWC0@<oRK$T;;P<9}qFagpgi3};?s_z%Nb
zml*$paPCEh|1g|)f#E+0=U-&_55t8Q8UBNC@kNIJ$hhPJ!+#JizsT?(8CP6j_+NPu
zfom=@{RiRdiwys3E;0VEyTtUr_986)A?-X+S<rZq;eX==rvFWs82&e3Wcc570Yo$Y
zZ@s|yzwIIu7`I<!_z%M!7a0D7aOWk4|J@f+aqmTj|1jKtk>US@O9(viBEx@VJoO^O
ze`GxE0>gh0o_>+>|MZIt|7Tug_&@6s<Nw(gQSqD$jQ{6eWcok%BE$drXn4UT#{Ua1
zLh#~?4F5rR$t8yWAiVS<!+&JF{1U@|5MFta;Xg87b&28s>Wd8j*COF{ml*!9zle%A
zUS#|a$CnuXZ@k3tfAd8I-g=SYKL~HX$nYN>@3_G5f7d0Z|GO`OFvI`d7ZG^xMTY+%
zy#FG@e;7V^k>Ni&K75hkKQcaYiShr@iwJxi#J<Gv|Kvr6|Hm&f{6BM%@&Abnu=s}-
z1ONVm<<ElTFEISSaEbZ<nF|d6&s|{rfAJzFzI1`{KMY^K$nYP8uU=&MkBqNhWc&}p
zH!d*zhvAzS8UBOt?TZZmVfgMvhX3gJ{zZoWF#O;W!+#Kdc#+{hHvIS!!+#ildXeEj
zI(~kU@jov7@&e=k*B2SE;x`u<{)6z_i;VwK@Fj--?=K?o$BPXAapBJw8UBB{#0bV;
zFEajzV21x+FCy@_3k?53`1?hM|Jd-)iwytq;olb-{^Q5Y|NmZO0ONm`82*FspG%CO
zEDvqxf$IPN|Cuf@|7X0&46gGTFEai|#>^L){^P>9+5l`9K=nW4fA)*0nDYYTe`E}*
z`(YSs{eO}1KQ9#Hs`o+S0v90lJ*duyVNkt~%m(pAE;0OvVe~cta{VuUiQ&KGMFf_*
z0IBambv_8g>V0$?Quo8!0F3_?E<mv2MJ8}N095BAW0gw`|3Mhm1_05>Z2;uDAH>$W
z$nYN-YhPmc55m~m0igQd@B$OK&ey-l^xxnT(|?nT4F8QTfX@E`jaoo3XfK$_1&Evl
zNX-SN|7MpN{##sN{BL=Y2?=Ai0c<Za{s&>Z3ylBa7+U9p>V0I4sQ(%NyIz3eiwytW
zE+FcDj|&X{!T2J>e^CAJd5Pga2qU)xklO(M7a9J8aKHsb-5-2`;Xg7Cy~y|<f+2N3
zto{ep`yd>3f#E+0L+X6S|FIXK_#(sqxJwX>+zv>%1gig0F{llYa*6Rj45waX_z%Jv
zml*zoFs$AO(V%)i`x3){bPQ?-<XvL;55n;J{{qAR!V93fpYeb3MF=jr!1y18OD{70
zFTKbB#;`U(#U;l7l@~!6(gvux!0^B764QSWU2}=yf9*v^Fb4JSK>Yv^{{QdK|N2Xy
zI-dz%?>Ap${NHwg;eYEz2yVNCTK9KeWc-heyDu{S2Vq#fk4*Ppz+V4PzR2(&j4z?K
z0YLRW9AAR90YL2lhX1oKA~2}#2VwO3f8j-j|1b=y`(YSs{eO}1|8gjX)&H=%A5{N?
z@Y)Lu|6zFDMMji10Icrce39`#0yF&Iash%tbw3Cr*Zn&#G5+6q5r!H5@4U$Hf7b;>
z-4AL9fa-n_-gk-d|Ne`p_}~Rba6918CA7N#0>l3!7Z||xKd9aZ;ggpjd=L$)|4*G~
z_<si4{s+Z9WbWthe^A|j_B;caK6ep9U%bfh|NJEc2JvC|(gp1G{<RAX|F2)f#K>&`
zSly3K-@VBA9~s}jzzDAUan=8iE-?Ime320qUqWpIV5|E<^*#*0y2S7wgmJY4-d<w(
z55vgyK8%g4?uUuP>VI4`sP4yxVQm3ib^osm4F5qGz3zwA^)UMXMaKWXFEalB2WkU=
z%KeLs|3PBl1^}e$2a`;f82*DXcnpByKl5cs8vrZ@lY`Nh8UC}tG2?%h%LvSNiSa)I
zGyG?}1ZoE`{O7oY9mDE=5DlvTc`h;jN5u^Pc`iXP@;Cs9&375m--q@4K{Tk&7rMmw
zU+6Le7{ls&WExiYi(O*;kBmWW0EtUX|3Mhk=a;z5@E?SwE;0N^#-KI;2+Le%_z%Kz
zml*!TFs$DX>ifem@)&^9Wk{V5s`phcF@o!V5F1qYt6gIF55gLk82%$;&C87cwJw1$
z!+$Mkoe!$_buKgh*Smy@LG?ZegX(+TD-8ejE;0NE_4z^L0HA)p;bmrU^n>$1bYKYF
z=fA}8-|Paze~U{D|4l*cE6iXvh!4V6ml*%Uu+1fg|1fNOnc=_PB~%RS|2th`_z%Od
zKEKN)hW{W8>i5HF5ZnDS<A0A!sMzZ=<9`tLxy1M%hGG4Gze`O2{Vp?ralj>p{~#QA
znel(nB?Jcd|1UHA553IrKkO0$gZlmvml^&e<ETpv|3NtVGQ<CvOArjJ|3P&8WrqKt
zx*vuUFEYUE`;<!{Hl)r6)%$6e82*DWsP0F`pt>I!gW3Q&mmzgNsNM%*P~Bf}iSa)K
zGyE^Qguum@8UB}CLg2DXjQ>Hn;u6Du7_Pd+_#ck1F#QMB`=Gvm?PW;czy2~KwCxWX
z`v+(L|IL>{eSgOPjhC7JgX(_pIKX9w|1Fmg7~BT9%=o|K5(qQ=@3_S9AJqTvy3Ft&
zgnKSA{0HH_ON{?v7`^X5=@PWght~aI{w0S0Q!YdBv`Y;CVR*(R#{VD;>i>f<WDJ1e
z|C~z@466H)@w`in{})_hK*69o9~p!C{>v^g{D)z1-G7PU|BA~H466H)@tR8v|6v%^
z|A*lXml*%UFsuy#qBmV)`oHB80~~L=#P}Z>gX;brml*!<ybQs+E`i1XQ0x9Zml*$p
z>U{`i_`mNG1RuD>@E?Xjbw3Cnxy0}v86O4J_fUN7GQ)om|Kw$6aG(FwCFcL2cEAZx
z{SS$DI0<SKfZ71(E;0Q-f06P3*-K2|wg7Vdf9Vp#e`E~m_g}uu`2Wf!RDA6c<9`so
zewpe2jY|x04C?!X@g;`;w=OgMzjFx_gT?~xU1Io;jzMhz5Po=>@&Cii4F4Zpf?!zR
zADMo3iSa)IGyH#ciQ)f?%cvMs=VQa5cEFoUjQ^1_tpES+64QSW{&0!mKQ0Wb_di`?
z{13ukE`i1X5E#_=|8|MtKQ8?J62pIN_{U|2|1kXP62pHOhSmR|K0P-4{}RLh-{5{f
zsNQGz|K}3Z|Nobm{v+o0L4Cmg|Cuf^{b#tu@SpJ_19*%d#Ad$C3~3V}jr+sK|B-1}
zTL4toW5cj{0OU3RsJ;hbkQj(Y$K010{(~^Sx*uo#e~ID0AQa<k1BgM#0+8!}5F6C@
z2i5r?j9lk~*q}Ne8OvN^{13yR@qZAOzs&F-gkg0*G7V}6C|zd!55u5(AA~`5KL}&1
z`(f<>aR2`jr2a>41Hjq=h_(Qv&Ii}~7n#6yztKfz@Hl|sMFubpZUBICKd2G#|NnoJ
zOAKHPs`pJVGyS)?2x$j^>V4#S08ssJbBPgN_k-F1pg92K`X5&JJ6vY??{JwBUjM_|
z0iZe`hC%f{41>o1JuWf)hhb2^ABKG{G5m*N-%AYtK^Ro`gX(-3295s*U1InT!k~H|
zgh6aj-4DaaZGebNjQ>FxHtr9q`$0JRBEx?W2DJe|^*#(ITw?qW!HB+p(j~_K$QaiD
z2ek)MFGKqNp!z@aGGx3z>k`9%7zWq<mze(NKryK92jTq7u)3cSrS3<r_d)E^OAP<Z
zE+a6k{s+;OmmzHc&{#jH-UrqHpf*AMWoB?+9~$kT6aY>Npz;6aODz9EZG)yujNtYF
zsP7M||3URW3`6REMsU3ks{3IWx&8<B{rfI4{71*2w!p;84F5rOJ`98U|Dd`bR_DWL
zQ2!rP_rox_{=dxhfA(btFh*_zfa-k^295i}Fs%Q-=n~U^2!@RRgW3X1FEjpMb_s$(
zWB(uw>ifg$eNdkthGBI-hz8aD>n}6@Uw@eaj5l0jfVKf3<Nlzr|4o+}{(~@b8vxY*
z-*%bdKMaHFe;CH7|1UB8-*XvK-$UwsNLv6j27q4oL+XFV|DZ8{7zWk%APlPeLHOup
z$hbeK&Ii@~r!F!62eDxh4_XrfN(<onA5`aGX83;&gfB7vKX-`%j6rRH3zr%G!!Sl0
z;35OO4FIb5uU%sJ55w0lGyDf(^mf3lON{?P7`+XEUjKvYd>DRoiSa)KL+XA|8vwc9
z2eF@AMy~r&+0O~I172Td`2Xe-b_^Q>0MYL*GyDf(^fti9OAP;E_|s*E|1gZ+1_1G~
zwF6*%eh>|->p^T7{&9)%|1S)TIsT8_4)}eU@jnRvyTtha?-d4c-yb9o&h*gvf6!_`
z#>-5Q`TxsI{~0bb{b#<y0LGv-0iZDe(0BkGL**d#KBDgr83$na&wd#{=Df`KABJJ|
zKKErtaD5M|^N}&A{^z~S@E?Xjbv`!Ce}(bC;AI9346FY^wD1+i|Du;+nBl+ZWe|q&
zL2Uu?%MAZP7*y}0W63Lw|D`X(FvEZ8%Mc9e`@=A(&PT^6bw9Y?XZR25|HCl2?!V0N
zUloc$^*;!!Ut#zU!k~V?=4FQeFbuBuFEjqvhGI~i55u5w0DaJWKNf6wh4H`s6^8%D
zmmy;Tka0h7DF9vv3>xn@xdN&4LG{1oWyb%gnBl+WWrqJ&ml^(BUqN6{-yeoSZ2<c#
z4F6#mRR23)X84beVRgUDWrqK*R~Y`gUq;2C`rq?1<9`qa_5ESk`wGK<-^-}j{|e)O
z7zXwI11~fDhhcnme>k-7A9;o0KMaHV{pdLM3d4U82KD`67}Wnyyv+DN@d^XH?oYnL
z@E?Rhbv`mqzs&d_ghBN`1Vifo?8^-QK^WBc2jSc+jQ>IPe*R^K|H!!TGQ)ou2KD`6
zxb!mPe-MV%|K(R0|AR27-iKg@|CN^+{#RWAjsG+Luf5FhzwQcX{vRR+%m0uR@c)0q
zRfhi!(Efhw6$Z#U04N{S257y^_#cGZFEjiHVQ}C7GQ<B)C<fL4Al!SI@qh1S1~3NI
z|NWO4{=+b+?g!z?ml^&eV^IAM!|?k5GNkW6<1)klnO7inKCJEs(Q_^{{0CuBy${Ei
z8U8Os!;3F7{)geEml^&eW6&7D^2-eWVHh?B0HRl3VferLGQ<D1ml@$0Qul-Ee+1rm
znF(CqgX(-_y!A5Ue-K9Q`-AHL?N=cEe&qiD?#qn-VHni+2i5<3uQ2=v;r*8x{v%^h
z8{ps-hW{{p_%g$P7zT|4fa-e~2G#$^uP}h?`{P#_|AWQ>PF-gBfATWy{x8t_4-o$U
z|LkSP|7R~V{6Bq}>HoPaOyF^USbdL9gZlgs%<vyZU%AZiAB3-7fz<b)Iv<8_TxR$W
z!Z)ul{0CuB-yeoy_5a<=4F6#m)c3!CnGqFVVfcUl3In+B5AOe8Vf_E-3giFBmk}6L
z_d_tl|0kCr`1xg~{}9aZ|2fhaz{@L)|3UcmWyb&5@S7`4|3UceWrqJC465(ZF{u9k
zc$x7(GKSUp$n@tc4F5s+>t%-jxG-ou;QM99|KG1Lz%i^1fKG$zbL^Pm|DVec465s4
z7}VeYbA<^!_YW5Xt@Q>q{6Gc3zyIL6A5_=FFw+&r|4f&ma{{3L|7AvSdjQrhfYklS
z^8gSwdjB82Edc88!|`Q?{~XYMK60H8V}t5`5Qf$LFdAF^4-yjq_4$$70H8V_9V6<0
zP`wYT{~;Ju|AR2D`XAID0Qdi)^**Tnht>Nq8ollZ@f9vJ{0CvhD-ar1@55+N{SU(E
z^*^W$poUcMBiH}PZ2+Ci4F8casQw4_`$04^2Ce%8wE+yTF#HG6plC<Nrk5H1!!W2V
zV19)GyaoW$20+yPu=*cF!|Hty4XXR?K=S}l3~B>_>VFsp_5G3C0ie1chLP)kP~8v1
zi29%5zZbOL2aN&1+5n*bKMW(+{h)duhJ&GF|LFaHSpAPY{*PSu$AIPlE@RgHpf&)!
z{=W?E`(I}GpL7{I{(qU_Kdk--jsJt{eh|*Q%<vx>gX(?|2G#w@7`g5Tu|aiz!6k<O
zuzDXvmqO<NKs2oWhtZI_pAlU5gX{mx4F9XIF#HFN0YGRF8&>`!QUIv#2ao+<X87NX
zgh6#b2!rZ;WDKkKK{Tk|hhbRV528W!KMaHFePoQU{-1uC@&EM84F5rOKL}&3|1UB8
zpL>}RjOSfu_z%Od@qbu5V9_Op{~)~h3ToXCY6l?K|DZY_8H4J65C--8K^WE!fV2T1
z{eRFn0B8(gBec(tT>pdEp!$C+QokQm_k-F1u(}^a!~6eN82;~uVo?1L!l3>?dfk8E
zGVZz`x&8;${V)t_1Ayv$WQ>S;2<!9}26!6))DAd*nc+VSW7hwmdLMy7^*#uL>V6On
ztM_3vtnUx1`$6phSlth!(c1v`E;IaxVNjh9!k{`I8H4)%APlPiK{R^3532t`<NlyJ
z9~q<11AzMc=oonn095yb_~>;%h!3j&LHOfkhX2SIx$Z}1W2^hWU1s=?jA8XZdYzBV
zhmHM%XykSPs9z7O|6%m+%M9RtKd9dSf0+r){ts{eLE;|N7Xa7ypgJD~GyG?Q_Vr=)
zK8$9$%J84{3d4UG4Ps-%p!%QV3gdrd%z1_3KRSlj`BxbJ^B`eZoe!h=t}y=RyUOsN
z{|a^t8Uqlz!uTH<gZll*SnLYJe{2|3_k*y+6~_NC4C?nIFtpEqh2g&p5|+Kf@E?X1
zt}y;b#SH&Jbw3O%U1j*Md<7MQ>VCB=jNmZ<5Dn`0BV$nAuXTm-KMceA{vcZCD#L%!
z96vG!)%yll82^JXj18*uAsAHuW0wE0x*tTt>VHrh0E9vPeh{`o>h~j$0oYw({13vQ
zIv*K3TxIz0cm;t$^}ov%hW{W8>h~jKk1LG-kuj+5_q@XJ-|H&Fe^9?4hCy||-xbFH
zFbwPagJ@8{Kj;d>e-H-M`!F1Gh4FtF95eg})%_qGfz<bhjRC}5Vf-I+g#nI1eSZ*6
zxWf1!8N>VkS0Vj=P~RVh)2=Z7hhb3NpMHhmf5ugY|5;ZM7*zLzaLyIR|De7<1T*~4
zy~6On011QYe-JLZ!uY=gj2ZryTw(YRs{28>4BGDp_5EQO+~)`N`>#Oieh?qj|F5~q
z2pI#o0$TqG&HGTQ@d^WE?jKtBw_IWT-*SZk+~)_42Y_(L6^8#X4665Gxa$hz|86j5
z_}_hn;eQ_zhV}hH^rS0{|0i8x0ApDFKjjMJe-NH}h4DWOgX{h)4F6|bf%N@B_5ZA^
zjQ{6cL11v*e}&=y+$#+K=Urv^KmQ5>gX;c8R~Y}pFsSZ_;bm7C{v%^}-~S5Z|CM0O
z@E_Lq2iN~s5dD8}8{i7V{|#suT>oET{J$9kGyLCn1%g3!KMe1<%J_fR6$FOY`&SwM
z?}1`a-yen#Tww%{0f1;&zaK^)xx(-thGG4F5Pj?l<9`qa)%`Gh3OokD@c-0R%={0k
z|Ib}v_z%Odx*tSexWWh?`@eXF@&Cmu3}AfuGNk^$a)seP2!rZ=7`}Fu@&Ao0sQBh(
zMsVLB)CRb9mEr&GE2tRM_rG_A5j+NP58BrU)%(a8)Za(PkFPNN2jM4I8U8=Lf*r%^
z{})#n|AR27-;cly|6g8V_z!9Wyt%^gA0310e-M6mh4KG;teD~d`zwh0|I-zQ|Hv5B
z??=Ypt}y;b#SH(yA@%t|_5Y8njQ?Ty=M~2P_%Ntn4{HPbxdN%{K{N=1>U<atV*k4e
zodZCx|3UZvT?N(kjQ<hs01zJ)!|Hwz4XXFiF}C_2B!*}MF#PAZf{M}G0bExZ{(~@b
z8vw)x*Z)@-z;!>U{s&=F+5n*TfbbQD|1d0amAE#5<Q0bh=osAhN2>opZ2?&Q52EF+
zGX95PhW`qnem@k0+5n*XABK_J0V-Ev^*_UZwJQ*e+y>CNim3mQ+X0~ZU;7Hfe-Mq_
z2GF|-ssBN301$@t`;D$L{0CuZu@9#}WB=f~{|e)O^DB)1&8{;12i5&B46FY^Z2%BP
zuK#VWGW@r@g21pg0I2>4VdORdsP0F`ur`3(Rpk1g;lIZfhX1hoAH5CWbCnT14*+Td
zfa-n!D-8c(7*zKoV^A9aRR4!uW%wU<1%YApKd21=!m#>3>MEk{2eku0bw3ElT}7_{
z8U80+VStSPUuF28gw_T~xr(U&)2=Z52i5-|jNS$SwFf};f6i5g{~!#i`$0JGDxwVl
zs{270RR0%Uh1C6^`X7ct^*;<l>VJm+6;~l+{GfUt)aM7$pt`^2Ds&D2G!F=mc?bhs
z|AX29S0Md=Sp5%b1As87{%^a=@E?TH+W=ix8UBMXsO|^ho~x*B08o3N{|dwZ30EN)
ze;a_||5Rw*532uR7*zkm@SH0Q|3Mg3_k%E~{s&>?Ho$_bjNrL|MOPU9gD|ZAUvib<
zKM13@0ajdP_z%LMx*r*@xx)A#hSy$U_z%MCu41+UHeF%-55t?UF#LyMSp5&8k?VgD
zd)F0)|Hv3t_k(Cy-4CMoU4_;E4F3;YfnaR)KfE1qh2j6Ps}KyU`$06Q{s&_s>wi#N
z09OBlXjt73qd{!|P~8v1$n`&ned7uPv>gDVA!Glr`X5^x095Zo+5rszL2Tr@AH;re
zmGM6aqqYGM^*^W$0K?eY0-(Ad8H4J5Wc=zXX8jLp55VewP#fUgRfhi{465_7VdT0W
z#73_BVeBtgA$2~e-bcrv`X7X0^*@Zp-UeX!531jPUSaqT>gR*l$QV@TgZLmCgyHo+
zmi9m6HHQBn4C?PQTxIyr48<Tmj18mF>wOp>RM)dzW&F=}l>sY8uKPK!GW>^OP<@Y%
zL3KU|^Im2655l1O9v>FC%J?4{gX()QzRK`l=qkg1;cE>4L3KVh3>pg%zsmR@gkk-D
zIDM7jzr<CB|59ieROf@R>{Z79Fbu2n<*qXPhhbR#uXvT=KdjzIrd6&o{D)y!y$_<*
zuQL7zVNksf!=QR!`zq6a?W+uM4665G7*zj*>V0HvaFyXd2!rZ;qpM8dx*x=bl==wL
z^cur|GibdJqRp={{I|G@z@R!GhOMtM{s-0h$QV@r+h1k)55u5(ABI8oztdHQ|1gYF
z|6gVN532h?7}EcT*8Nu*{(D}9^#5V?Kd9b^VZW;k|3TRQ8l>(IxXSP!hGF%8@KwhD
z!Pgl6gX(?|4!_FqABI77J`6`*WdyGQ0M-2<46gUDLdF4NuQL7z)%`FWe~saP;#C9&
z)%`FGs`n9?;Xk<UzY6L5gX(@5&c4d{AA%wEKDh3`#_%6h@53-`4508T<9}G)532t`
zxb!OHe;9_>{a2a5^**TX2Vqd155m<~8UKSYa{XVArTlNa#_+%K8sq<_s|;Was{dQB
zGC;-vp!Ghe?g!z{tBn64nBjjXwC)Gh|DbvwhCy{c7++=h-+v8K@5Ac<$yXWwBjYKc
zzW-IG|I@BAz%i`e2hlUHGX96v{j;t@>;9_@|L0zX^!-6~KMaHFeF$dwzu+pv|HV)Y
zs`HUCsQzDmmEk`KgX(=4UU`l2|EjA946pmIG5iPB`!Ea}1K4<#@jnQ|>i$hv8UBOt
zma7c^VHi~RgYfpNjQ>G+$5n>^Fbt~ycVA`r55u6kABOi`W%v)nuzDXvAH2%&{}2)e
z)%!=ULdF3=G_39i(I>7l{y%<=@jr+L*Zo%*|DV2w+5bOt71H+y(dVx+{zt~({{K~m
z{}-V6(p854$QWM#UuFD%^(y24YgZXiFr*#8@c-sj2nN;t$oS4x#{YM&GQcsY?g!!f
zR~i3<FsRN)#*eNr{0HI3R~i1pFs$AO(NC{2g2w`$U1j`_jKOvPRfhjBp!nrAhX0^C
z9~pz{dl-IumGM6WL+X4`y${0guR;3!AFeX|N5`N#9~pnX%J~2DHHQD7Iv*Q`)&JkG
zGX95QSe=iJ2G#Yyt}^@wVGtWszk}Ey3}U0>zgHRmgX?`L{qHIRm=Bx!ht&X}x*t^U
z!!WGghtaUQA4bFL{A-N=S)mwLy$=%y)&H<MADKq4`$2r<x*t^kgD`si&wq{aKMW)4
zeun=7&^jMh?}O@o7)G!EMXy2XeNf#G!l1ey8B1Pc_z%K3>;G#E|7D>VR_7zrpn4w}
z!|HzJYmEPuuOaGwSQ`LT=i{pXHIV9kSQ`Ld_g`ZKj{zXp{d&;4A5{N?u;Dd^{~(O3
z{x`kK_#e3)fL{ND>V2!L4F9dKF<{jHuzDXx!|VQQh<YEn{&&5~_#cKrb-&wHNWBm4
z_e1M`SpDyPjS)Nt0IB;K{`)}det7+V4N>=l+5n(>Kj<n0xbBD5|Do3y{(~^A{s+;Z
z`X5~PUt{<md5z&esP2bhP`wYskh-7Yf814u|JdsP<ZF!oK^Ri^GyG4v3c=Xw|IBNk
zx}V{H_EiYZy#{FmfM{6V52FjOG5m*NP`wYr#n%vZKd22*ewFEe*;R)B<<}tneo);H
z!=QQ}jIS~L2i5=8V4C4SG4+4bRp|KtRfhkdb^xf}hhb2ikBmWeKL~eUWB3oN|3NgU
z-iKjW-4CLX>wXY>%2kH{Q?EfVavK0t@53;t-iKju-yci;KmQsdxXuUF`!I~H{$F|x
zQtyN6eh`M${U92>{$G2I;s2Ve4F5qitnOcbjS<`y0M+|2465^Cc=I(x-4AL5fa-j3
z{eO+&|MqK$x*yaAfYtjj8dmr3y@sg!L2Uq7y$`DUK^R;8532iN7*zMeFr@xx_<!Om
z2s2_G{|D9kFnsnJa{Z5}_b*;!_z%L!bw7v=s`Ei@fUDOS{(~@j{ST}6VKl7nzkQA2
zKL{h&{UA1|&PT?Gx}V|ygR2bxA6`S$`-JO%hX2p5A~2}#2i5y9j9mA_*pNCORQEId
ze|r^zLG?Zi<E#Hc?Ez5z53Bb<bw3DWtNTG>usR=^M%4QZ|9@O%`2X`71cTV1dL9{r
z>U$U;#0J&(AR2^0Y&gCKt@n}Yf6(3!<oX}f20+H3x*o&_(J1&D!+%yB7*^NAX!dIi
z|B*3ry$@q^U5AYMb6;clkBmWeJ_z$&V}y(WTx0wXV#Dfu1kLcD{~Dy;7re&s9~r~y
zeHaa@?=dmMfAMP&EODLTKL~^Bd~^(I14v(E{Ev)bbw7xfzsB$%9V6HMAU3GZN5-&v
zU-cT}e-H-M|HxSL8pD5N46pY=_5C%*|GH=xROf@R{xydGAPlPSVKj(sbe-Y9@iol(
zU$g5B;JP1F|AYGeAZ&4+5j+N9d5!Tu2!rZ<WNdql;Xe$+>U}VMjp4t;b%y_r*AN(1
z_d8!>{13w5y8jx(f7fda|J{)=sLqFBFHpUYghBN_2>V`R_z%M1zCWn{e~saP;59}#
z2G#j69C95}?}O@o5C+xzARGa$^Fj4K3`bvM{13zMy8k-E|G4XrdLLBx!*J3y#{VD;
zs`n9?;eYBi1Wv!o@E?RTt}*@x)%y_4@IUh!r0xf`0YLRWGS0uo_&@&|0~{A!X9Twa
zK=nQhgX(<{F1rS)_d#_(3|C%b{Ev)lt~2}x)%&&AnEr#<wb$_1|DbVz=4%Z9VHi~R
z!*KgG#{cct7{C}*|94$u_z%LMdLM>C^?vU)hW{W8tNUT}#A}TIVR-UYhW}HpK`^ZD
z2hp(lfBH4X|KPg+8pHpY*BJiKy3X)__B8|s_x-Oi{-1Y^@js~EhhT>P^RGer{R^)#
z{0CuJ{STs-USs?Zs{3IWT=!pN{J-KF<9|@SkBnDeWB3okpn4w}gX(?+X86Am)Zf3x
z@E=s?qvNgD82`gCsNRR+9oHHD@4N=V@Ou9m<NrM%e4XJxsO|@0P`$tZ8pD4W2G#o@
zeCQhE|AW^U{vSrd@Ou9m<9`tQ*fmJMA5`~4FvI_o*AN(1?!#zM-4CkwVHni^zi^G=
zKMaHFeHgxUoe|vszkH41|K)3pU<|7FVffm0hX2>Ep<+<of9o0}cnsjybx6Grs{3IW
zRPW!t#`qtG!S(+&hX41kG5mjU9a86m>V0Gks{5Z@V+4-@fcyNQem@v9{C|24QRhFu
z#_%78Vf8+Y2G#kmuQC2dV21y%uR-d3P~HCy$_Cf@png9R2G#X2{P7y&e+Xvy|M40F
zxX%x&_mT0}YmEQVF><{RV*j|#@E?X@^*%NlR_Fh|#`qtGVRb!-4`YMrYYhMYf-q?Q
zA2jv@Y74+39!i7id34NjjS)O201^k+|JNA)Gea@Ub%y`Q7*~4$x$Z}1!|Hy{YYhKE
z^*@-tidz4}+5(_DAJh&2VGtXJA@x6`?g!QXAdFo1BeP-kzsPmQ{~(NL12Fs-y#~Rc
zHUOyZN5<%F07%`>@L&2G0)y&)7?!(^*#-c$2^6m}{0CvB>kR)v7`Y7qVuR{_WDIKq
zXk2Ib55mZ801#UTTL0@@XZR1oy4M)~BV$mVkBmWeKL``5|3U2l7zWk<pmu;IbS?ly
zgD`R%z~(wy8{itle|u>CkF5;=s{5U<GyDf(P~8v0Zr4%U0HF2&s0{$B|3TRM8pD5N
z466HK7}f>|xDKoTL2UsD2DJe|^*;!M>V9Mls{cV4R`-MGsOyOOAJPth)cv6PAB16b
zKZpj^{cwDp;eYZq2u`_<sQ*E20Z{!9!jLuqr0xgR{~!#i|8qe7|7#5YQQH8B`XAo^
zzs~p{R{s}YWB3okp!y$%Vf8<VM%4cd;5xq&)bGCzVT0;_5Qb)ZI0dTrLF4}*8dmqi
zXjuK<b{$gp!`c9#x*vvN^*@O2xelrSL2UpKhSmQQu7m1-hW`_<K`^ZT2hpIq9~pz{
z|LNBl{(~^A{>Rw{xX$o@-gQXb532t`7*zMeFsSYa;U(7@{(~^A{s+;Zx*vui^*_V^
zmDd>lueuJY|3Pg45Qen@)?H`(zy2Bn3f^>$;XeqY*Z*6tgX({V|68v?Ft++1)((Kx
z{d=x6{0CuB{SU(Xt|RJya68~S!~a9q8Nl^Fh(>M$fY_jVA6EZ^*s!|)#C1g74{8U%
zBOb~)bDiNosP2c*4FAuA#`=-!e^5IBQU626{~`51s0{$Y`09U9djMSjUt{=>t^NnK
z17LOk-RqEgA5`~)FsS~AVdVNB#D>-XAo|I5hW{W8s{4`gv+IcZA6q-%)pban532Xk
zF|7Uv(J+jwEdZ+b(J^xU4`P40j@|}f`2Y191b@GVsQZa&1Ay8Ept>FzgX;U=*BSnU
zFsRP|bDarX_y4=j@E?Z%W2yg{t|RJt#v2ee({+abAaMwdTHk}}e%2cd|B*4<b%y`A
zFsSb5xX$<=jBhaf=YV2R-H(j9Z!rD`VV>)Z|B*4g&cDv|pZ^8}3KqD|@E;k&>V2W>
zjQ^1_sNRQQhW{eh8UBmjVE8X~9TlV0{Wlo@OWt7oFLfOmBkFyb>kR*47*y}Wu>1|i
z|1hj@o#8(WgX{epjF9^O2IGI_8;t)|t|Kt0{#U!s^k3};0~~|ueh}8Y!T4Y6Iwl6y
z{UEG+gW<p4bxdq<oe?|^V04}FKLj&?X=t{GQ?NQ8nFiJW7S|d6gD|Mxx4O>oABI8o
zJ`CI5VEk`)9fTSF+g*qB{lRtr4aWbDHyHmrT}Q<(HyHjSV{rX{gYmz|byVzio#DUt
z4G8wR&hQ_GeQz*=`~QB|8UKUoeFTQo`$5+k{=+c1?!UqKKlBFU|FG*I%<w<#I>Uc(
z-G80&e<T!x>V6mo)%`Ko8UBMXsNM(R_#2G>K{(+$<9`@V0@eFB82%^UVE7NJ_mOeh
zb;kcN466Gxt~314yaB;k*BSo9aPD=+|1g|)o#8(S=ih*g0Tf(k{158?gK+T;rvD&Z
za-Hda$#n)eF2BzBABHQgGyVtR${S4oL3Mr=w9bdou>ODDb;$YO@W}uF|9{hUhX0M%
znZPux-fy|i_#cKrbw3EV-(dLPaUFr-_5XFo|DbvwhWoBF{zt~3x*vom-eCAY={f>~
z>;CJE|EFGO{67r|gX;Ym*BSo9Fu3l&!T5jn4aWa-uEQ|2-oJsM7hGrf55fy?FoOI4
zi>@>N2VqdX55h}tF#ZSOW!D-1!!W4+UwNJBKN#PD)cv6PAB5LjXZ#Ptpt>J~*WY0H
zzu`J6-h7?$KMaHFeF$dwzwJ6I2KW7MF#ZS8yRI|-M_@?353c)fF#HGA`^b3zHHQBO
zt~35WaDxGiL3KX}AGyx>A0311{p(Esk6&l{e*%md{v+4_r><j;|H0~g5Pj}CqTdgy
z_hI-VsNWC94F4}(ht&C3t~2~c#^ApH4aWZ<`o?v}|EL&R_upXrfBOdG|2x-F@!cCt
z;Qs%;8w~$J7*^*a(+_Vj{(p2G6@%;i8_>G{2E+fSHyHkd>U?wzs{3DDXZ(+hL3KYe
zesi7SKRO20`|qza{)f>Z_J`|?{~?&+|A*@c{OLO5e`E}*@6qws8%+N}_}g`+|KF}N
zpkP?N52AnGVEm7ae_dz%kB&k0J4_73{&R!jKMaHFdyp8Y9ROm(FlPP#_dmGKzX7W6
z8U8bX>wO3t)c1$g|1cU<_rowT^*{S{hW{`OtM_3va@~*22KD_h>i_Eu|M`$Gs2zY@
z@59)z`X59K-C+0+!=O4J8H4)$`09U9TR`eM!+&&)-1o;;|HIk=AR1QpgJ@9w55u6k
zAB0t|GyI2P)$5RYA4Y@P0ie1chC%&))HVR5?+>g0LH&R9Hh}(hhX0^8fWZw=y$`~m
zb^zx3ACnsl|4ptl{5QYB_#e~;0MVd&ABJJ|Ka7Ue{V*C-@53;t?uTL2`XAEo2lf47
z^*^ZYhhb2^AA~)wGyDf(Q2h_Xp#DFs{s+;%*BSnUu-^@a{{hz#IPe;z?uXH!`X7Wt
zZ$RpOP~8v0p!y$%L2Up?-Ounp>N>;!=xdO=AG!Vqw*js(K<j=G&F~*o|HCkH-49}e
z`u-rCcAeorsP2bhSiKLU!Tta14F7X)K<a)_{SU&RIRH@o55l1Ozvw!{e-H-s`;qH^
zc>f<<_cQ#jxDLUf`X7Wrbw3D$>;4;z|7*b*E&l)g|KE6n0gOTI0C4?(12PBDa-HEn
z2!rZ=7>3pV;JW`h!~ZTQhSmKb8r1Jct^XPRPq+@ju=*cV_roxx{%80<?K%X5>VFVM
zuKz)801yVv1I)S3@E?Rh{eBppe*;qYgX(`6UUZ$|KL~^Beq;=*`$6=I>kR*47*yvY
zV^G}>>i@5~!SH|GbqEI4|DZ7d<Te1P{}0C38UAlU!?6B8s4W1h_mT0g>kR*47*zMe
zFml}wV(-5WsrO+tsO|@0P@f-!5p4j5|HrN)@bMcA|3Mg3|HJU98))(W|Nnnby?^!w
z!+%iS564hGy#Budo&UcMssBN301$?a1Ay8Apn4x2-+;~sfM`(P9~q;z0~r2;`u?E0
zABK_Zei$3n?+0N>I{;GegW3Qv466S@{eNur|MTk%|6kmIVB~rq#s>BOvDN>ey8qpE
zhW{Y^{szN;&=>%6y$@p}_y0ld0Mxpl;s2NG5De?{<E#HcZ2%C4w*jE*0DfI(_z%ON
zem*iA#D`&6I{-$*>VFU)x$O_S3xx3o!+&JV3~dX*>U<C%86(&G$ZSympZx~oe*|Xu
z&wc}fVRb%?=Df)W9tQyR_pxC}{m<~9_Xa8k)%)leRQC(sVEhlm@P0p1{V#kI(&q>D
z`;jrM4IqAl@jnQI`uqsY@L%!<qzxc_gW*36!|Hux8rJ8RzrpYyhC%f{2rJ%T{13vQ
zIv*LU-eCBTj6roi2&>;@{13vQem^pX)c*|swQoQ$sNau_^=~l#N5zQxAJhggzQOPx
zgi+)F|9?>ZZ+e6AzxfSN8vubVZ!r9aVOZba`Uc~F5VpO+@E?X@bw7x<hxYqHbw3O{
z-(dRhe1iduVRb)<cD>2?-~9#zL;C-ay5I8#!+#Kl_5VRMsNWB+`)@G(_r1aJA5{0l
zaNrGw|1b>e`v>1({13vQx*vu?b$|E`#{VD;s`o)S>IM^d93c7z!+#hC)%_qG3+?xV
z`u-5i@IUbe0)zVgFr0dW@jnDJ{7=2X@E=t7r{7@s55lm%KZpj^{n<Ad|7YKT)cfGN
z|0d)Ayqk>w!F_*F{~wAAZ!rBYyvgvt_yz)(-e3gx|3NgY?+>PLF#NAX!=Spq8eHci
z>i$~v@*k=GZ@$6!AA%wEKB(>oVNkyx8F$`b{NH(l0gStEF#Lz%-W!bnVHjTj-(dI;
z>h~k#$u}7P!!W4s2jOWq8U9bdfxxi3e<rlw59<5RzQOPxgh6%x+#3x4K^Ro;!|;Ne
zjQ<zjV1Q##-4DWxq5XbP-yeiQ_5QN!4F8wkfZ&xk82-cX>KlyzVHi~ZgX;dZHyQqe
zFu3l&!SEkOZ@j_yAB16j|IIfT{)6z=8w~%EF{tj}euEJ_9<cKU!+#hC)&09~F#Jcx
zdv7rO2jTrU82>{s!~gxzem|)HfAA*be-J)=gYiEML+XEq|3_~?FsRN)#-O_Y<PFCE
zAdId42i5%`46FOk-(dWI?gqnu5DmhhzW+r~{eOeu|79!~RQF%K!TA5m4Tk^Mv0zZ$
zfAa?8e-H-M`N;UrO(yVIz}*`R|3Mg5_k-yBHyQtfFsR>;j3ISD<NwDu7{C}@=R^Dc
zFgB?Ee}04UKLSJQeOUbuqF>)&_>T?4+5m5FGW-W&aGejT_mMED&i{CW@jp5S)%$RK
zgW><@n+*TI-oTEL>;LaJ82`gCyv|1%17P_7^9IBJ-%t#y_hD=h4XW3%;lDQ_V*>wg
zF#ZSOzc<mxe?a|z?DapaO@LhY!`PsDAH)XH$e8UW!+#it)&0mcdi@V-2Y@hU8-U?I
zH(K2fYYU*){~*4=O+@_<X$K(s{-7}cQ2h_W$aO!A4Qc~`>VEN?4F8casP2bhshf!U
zAJz^4(Xcjv>`g?y53Bz{G;;k9Y6E~UtPP-Y6Vm@jZUcbWpt>K15%oXAf6W^Z46FY^
zG;;l~ca!ly2qW464F5s(J`5Y)WcUxl==HzpO@{xV`X59iw*f3}BI<uwJHYxT!+)zA
z4F5qi2&1<FK=nTiL+XEq|4yJee`x&=Y6pPoei(Lzw*eUbyWfCdP~8v1pt>J~eQq*>
z=L0}>KMcd_fB&0^`XAm7xWVv0_$CCy>VFUos{3IWT>sx>_#b(L;eXUkMExHPZ3}?v
ze-MV%{qZ*#{wLf-)c>Hi0IdE`xykrH<tC)=2i5-|466G<7*y{gV^H0Xj6rojtQ~;d
z1_0IlFbr!0l-y(lw+BG=KN#O+_+Nelf-7#KwgEtOfAviUXuluS1^}_q`hWla|F6Hv
z@W1IMqV8|Lfm;8!-eCBTTK_}pe)Kj#&rMkU&+xzZ2E+e8DDJ<B+6I8t{b2eg!~dx_
z82*Fme-K7)1Ay3|`hVt4hW{W8s{3IWRQDreP#a*uO@{v<jNS$S)&C$2s{5DTVE7Ni
z*y{gPHxc#!>KhFIK^Ro`!!WGwhtZ(=f8$L^y$`DUL3qnehW{W8YXiXR{~HYdx8Fq6
z|DbjNt~S8Fn+*R!7*zKoV^G}>YX=;@!SEj$!|Hz+4Qm5{>iv^97zoz?ur>gw&WG3k
zHyQrJ>V6P?=_Y0y09^myWB}LyS8rmr0g&r|NE?9R|Lq$f%=rJ#O@{w>u0!g6Q2h_W
zpt>J~L3KY2L+XEq{||2<Fs%NE(XhH7MnAv7@E;w6>U|h~d6VHk2xDslfW$y`KQcyd
z2Yk4RS^p#20}TH^-GE?F8vumywF6*vKQaxf@6qwEn+*R!7$gp=_mMHE{)h2FY!HUk
z{~#Jv_k(EE^8fFDrkf0SF{qwL$1FD)|AX-@M12pd_hB?jy$|Z|Loukn$A-CXG5qJb
ziHTwLK8WVK$p{`30M+;CSnvkJe;5|J$?zYBLG?Z|2G#pwHyQs!FvEW_w0a-Z29UVL
z@E=s?BV$l~55qDy8UM@NWcUxN_mMHE&Ie(In~eWq7*ywju+mMY|B5#m{wv*L_z$l8
zLG}Ml#2A3uO~(H)45|Ma{;S_)_^)*nQtyLk7zWk-Fbt~m5t!k>-c5%8`ZpN<8$j!O
z7!9iXK^Qgu|NjTo`=I*Y>=wg+P@RvCL3O{?O~(ILpt}DiqV9*)|8_SS|AR2B-nYNW
z@ZaGU!+)on2n?$CLD=Oc<9`qa)%!5)ag*UcGKSUtAlmCD<9|@y?{kykKMaHFf4`dy
z|3URWG6vQCK{pxx!!WG=54pwoKkOy~gX;f?TMYj}7*y{gV^G~6bCdBu2!rZ=Fun<?
z_d#_(41?<aq??TYK^Ru|gX(_}PP@tQAA~`5KMZHxWc;6XlL3xF^?%My#{VD;s{diQ
z;3m`m{2L7a3vM!i`~IN%zvvbtm<_7?5t!kB*)4|ur8gP=gX(=4hK&JK-DLa^s{5;M
zGW@T(1;KSU8UBMXO8o!(|G(iDsQ!oGmYWR!kuj+5hvAN!4F6#mR`-KwP`!`94FCIX
zA~2}#hv7*#8UMrZ<eLotL3qk7hW{W8s{3IWRPWEY$@qT;wB85R{j+W{{GW3Zfnjz3
zyqk>RaR5-g55tR~;{YHURPV#^l3NV_m)%5QSp5&8LG?ZYL+brCHyQqeFs$we(Hm|u
z{)b?O{~K;H{0G(jn{F}u2Vqd1kBmX}|F)Zq|3Mg3?<3<~HyQrJFmnHY&n-y3532iN
z7*zisxXJh*hCywBgEtxeAGrys|3Nee!|MHGHyQtf@QIs@{~?&+|EZe@j1vE#@&8+l
z|IgfF{D1By0-wLh@E;k2>V0Gk8wa>@lkxwRn+*R!^*%Dbag*^sG6vQAAbjf<!~dJ0
zIv)*#>U|Ktca!ly2*c|A`!^Z>!!W4se{_@KKQe~Z{UG|uO~(JvP%y*)XEzaTfEPCz
z{(~^6&PT_f`u@#L#{X|_GN54O`v2W6#{Zx?9~*|$`wag--9%teosW(|ZGdk#8ULeW
zc)fp<;s5uW4F7-JLeQZ49vcSL^&oK&{pTj*e`E})>ly!p>U#*A;XjN<jekh}&u|Me
z27s$A0IvUUGW=)0$?%`$7Al6-_vkdJ{^x+!`N%Y+?q~SVc@q_b>VFVMZv%kpeGmrK
z{V)uv`x*WV+(gB&Iv<%vuKPu9q1OALx*vo=bv_7#>U|hSuKQtZP@RvCk?Vh0osUk#
z>U~h%55g+Yx*tTV-eLsL1HkHj5DlvLVOZl9qzwS8`$06Q?$^1=_#cKrbv_L1--6Wr
zpn4y<9RRBPK^PYQusxul`riaJ1^~s#?EuSLjNmx{SlthzLG?ZigX(=42G#o@466G<
z7`^@n)%#$4i{ZcPO$0`+`(bQQy${B>5cNK&{`bAb@E=t7gD`U44`RdWeHaa@|3P&>
z2qWr$NWBlL`(YSX|3}|~)cY|v8UBNC>`jLMakn5CR`0`Tc>RBi0o?Bg)%zfvdJ9tb
zBiH{Kw-EI{tPOx%|0CJ}4FB_QLF#_=`XAH=fYkjA|4VK{FsS~AVR-$2ixE5z0IK(q
z>wgd%)D9q2|AYGeO-OA3aNU2C;eXpLMBNW+1AyxNuA7YiK^Ri^GyLzl$?(7T7NYL&
zyUFk$R`*Z11*`iR{!c=y`_b!vP`!_gL3KY2!`c9#`X5yH&%4F&AB16bKZss<i}63G
z?gwFT-G7te|Kghr|FPBoD{eCW2VqFv&+vcMO$Y|{`$2U-41?<ab+;J*ue$}Q_d#_(
z2;-{%x88!(``d0Z{0CuJ-M`}&!+#Kl)%_qERR4qOeHez-`yhJ%Ezmpw1HA4(aEswT
zsO|@0P@RvCL2Up~-4DjM7@+L{P~RVdLG1uo{)f@0Z!$pZe}@0(ZbC4u?!R!0;Xeo?
z*Zm+isLn^mu)6=+Eyn*Kj9mAF*q}NeghBN`2!s3mNNoU6oe#&i5OqGR?tgF#wcdxd
z0bun$sP2Dqi{U>AgX(-_465^yF?!wq>K5bwSGQ2>eONmHRR4qOePoQN{~7*&xCz0?
z^*)S^UiW{wg<0<-+5w3A9#r=uV^AHB4TI`?kT|^lzs2zX4-`Y{eFz^`@597k@eZL8
z^*^W$0K%X)0P`)#m;i`I#^`lFjL&|H@josMulsK?{O7!lib3@~ItJDMytf$t!!WGQ
z2h+D0{_`PW!CMUfkuh?;4`K`7V*C%npn6~A7Q=sJ46gTYG5i;YVpzS8OiSNl_>YV+
z>i%1d|K)ICg_{ijL0It?q|Xnk_d!_sHY0cp09@~b>i%2Me*Z0o|7y1w{;S`HU{Jje
z!{9pq79)5pK>HTse-PHW#qb}7L3KZ<-bcou`X7uz?SWei|BY@j{x`aXHvaqn|9{h4
z3~&sp`$5?97Q=rS2G#j6Y<-LIzYQ7&)&KUl82*DWsNP4$&bJu<BV(6a4F6%+^)|zQ
zw_6YltM@^)=PkznUbh(F7*_9t>V6Og)%_sse~S@31`u$I;Xe!q-(m#!|3NeegX(?|
z4!_0pKl~O07{ls)5FL4&@js~EhhcENe+yFo!|Hw*op_7!KMW_`V)zfkpgJEJgX(?|
zPQT6YA5`}v<Lq0E|6v$Z?}KpeEhcci532h?7*zLzaN#Y+|Dbvwff@dng8KYW46FOg
zZ!`X{1l9Xs%<vyn_k(ctEr$Of4665Gxc(OU{2!$M-*}thfAcK_28{u<-e&j@!l1ez
zhC6RD{)b^u-4DjMAoV_|?gwE|y${0uw;2C}FsSZ_V21ybZ=qsP-9Pm<<NxWmV3+~i
z?+4ZYGjB2c2Vq#<528W!|J+*)|3Mg3@5Au?+l>D~^*%CQe4F7v2!rZ<WW4+q<9`?i
z)%{?6i{byu+YJ9#-$LNEw-_P)e{j7IsrzB||HfMk|6v%^_lIFn|9|T(hW{`Os{28B
z`z?n5APlPeVHjNZ-(vi~`xe80Slthz!F4{U-iKmXzaL!p-)8uK=oSKl>i?s+7{Ox!
zAR1inL;L^7Z!`Qqc8lTvNhFM|{s;B_&)fpF0T}+DzlDlHbw3DSyv+!12VB0z@E;k&
z+5lH?G5!Z(P~8u~4B&Ra&09?WZ`@?~e-qU2zs2w$RQJR1?c0q1@7_Yi_ir=&zXz)S
zZ!`P{)%oZcR_}x8$F~^&KZe%%pn4yKpWcS{`EN1&e~yGv>i=7e|6fAud{Dg)!|*!)
z7UTc7NEo^9e}5ZN-+#Qt@E;w+>U|gus_!u|!~ZY082*2|3Blh%{d_1!uJf_6!FByD
z#{a*e7*zlNzQyn#gkkkQjQ)F@;XgY5cZ=aa2t(?982R@<sLn^m%(oc-gX(;c7>LG(
zVf8+YX1$HA{%82lehYy)u+;yc_5gbQ58`v*W(3a#z}f)3w;BG!FmnCRf1BYy2qU)v
zKx|OmFLaCHzwm7YMy~r|Y|-0@`XAH|K(6~iY{}aU|3MhJ4FF=p+5xh+82^JXwl)B$
z?gwE|{SU*S`X7c>Z!!Ew$GGZ$P&+{LHtzZ#)DF<S&F~+&{x`hE2$=)8&G6sg7Q=rK
zAG!XA_y1w_|80i<pt>J~VRb(;4Qc~`>VFVMv;i3Y+uelJ{h<0EhOxH+82&rssQ*Fj
z08riUaf{)<=WPf^ZUcDVX7~@P`(fDc7Q=u4+YJ9<G_3v)yp3A_!`c9$w;BF}Fsuy#
zqG9zvh=$bv4F97+b^mQh{U3Xa;Xeq&>i_uLp!%QTf8s3&hSmScw;BF}FiIQX7Q=r~
z{SU&(^?&AVwEF)R!~fjd5DcpOkuj+LhvA}I4F5s6_%@;qfL#AW+5imyD{mn%sO|@0
zSlthzYj0z=|3Gy=2qV}3t+yEex7@<4|J!dP>i^DL4F9{JxcfHlHUO;dpKy!e|HRv<
z^*^XR0IL5XnBo8QTL=uQ`(YSV_rox#?nlO;HUOyp2Vq4052^b>^*;zB*Z)gzBkKR<
zw;2AffMQVn55llE0KD&ii}C;3+YI2oKdAl(;q|w%*Z-h)z~<YC`XAH|K(7Ch+W?UI
zp8;I|gW3Qf466S@7`+X!{}#i4Sp9zxtqpMaHlqGNdW+#d2!rZ<Z1w+XEbTw!`v2^0
z)cPOP9zd@DFWyG2|3Pg5P#XYL_k;0mP`!_ek?Vg@I{>-<M{NTz{J)1(|AX2BAdIUG
z0IK_87*zLzFsS|q(a3c_j16uB++z6u;ugdIm$w<feSTQok4%Hw0m$_~i2d#s!+#J4
z)&C$Gz3xZm!|MOfw;2D!FsRN)$DlR<a{UiuW2^gNVn1&){0Cu3TL4n`BiH{RHVA{-
z0qFHVh>xxQXS~h$pYb*W9K-5+m>A1##{al5sNTngIc_ujN5`Q09vO4pVf+ump!yyg
z=DUMb@84ng58{I`sLn^nLbn<Jqhdte4{8U9++p|+s_(I3aNU2K@xKHT2G#q>Smrk4
ze{>A0`(arAHq(Fk+YA_3={DnkQ2h_0K^WBkhhT>P%C{N*tD#|d|Njo-e~mkg|3URW
z0yF&Axr2&9^*#ve-C_I>q77~{{)gk64F3&oGyFG%Vq+}jKfM2co8iAX7&C%ti#v?}
zt!|@Yo7+tP!S(+ghW|Eq82;PdhG1B|5277zGyVr*$J>nmVc6w1!+&H9>idJR+a1RL
z?zfRKwC=yd@ZakW!+%h{55hio7{P46+l>GHK=uA@Nc|6L0|eY*{13vQx*vwY_5N+9
z{~@=T!1X?;?uX%s+l>D~7}WQN;ix+d|6@S)J`#?*&G;XLLG?ZYGyG4wjliIKABI!z
zF#b=w4Z;ln(?EUyJB<G`pcqu|!*JFervEv&8Q>UJ|L5Id{9kYzfs1Z4{Rh?mMRyqf
zgD|M>FS*0`A4HekX8aGspt`^OHp71quDZ?eABJmgGeY|Rw;91}06=v=2*X<bFd9_%
z!*C098~|MZ!}|Ys82^LneHiY#&Gf(PHUk`k>V6RJxx@Is?=~t1_y6xe>U~h%55iM!
zGyX@$u)2ThZHE8T?lAnHaT|eW-Ddm`!?SNQ{D<Lrw;BH<V^G}>!;5Y+{D)z1-G7Ji
z{}Lz$)%_66@PEZ^1P0anFudvx<Nr0c5qRAlhW{`Os`rucrrV7FL3s0R#{ZytABMNw
zVfer8HUjUs%?RoL-)8*3;||0Bowp$vT<70r{J#eY@4e0VAB6YaVfugIHV8BPKX4m@
z58Yw>53c|3F#ZSC`^fkhsK1YdPuyYr4{8H|FlY?m)NRK9*y?{!oqy&I!+#JB!r(d|
z)Za(Kpn4yKFWq7M55iY&GyX@$*KRXG`u}$r{$IPp@c;U4RDA0;BX|q|M1wG>-bcpZ
zdLLBxLouk{2jK^I82^Lt!`qDi(eabp43Pf+ZHE6KHVA|2e;9sthw=Z5+sGJF?}O@o
z5Po%s@jnc|zRma_9lyKH^#AQ`hX3#GATX%@N5&uSF#i8^8#@Nq{kIwZf4<G||H~bQ
z|6gz8#-O_Y$8E;{$oS`N#{Z}oQul-Ee-Qq2o8dn$465s~;eU6K$N&C<ivWf@kh&j6
z!|Ht)4Qmg;Xi!@KROf?e5C*YXZ!`Qy$DqDHq52=z7J&5m8UAzMM#Zo`KZpj^`yh;7
z@5A`ue*bNT|3XL@RPQ5WTx|ex&^W+thW`?G5E!}c2eHBZe&ja59ftq1w-H$G7G~WK
zs`p_SRQH20a@`N=|AXp(7!6{>>VFUo>Gw1I*Sw9u+P4}0gD|Ka0IKiNF{JK?)cdfy
zA4G%dexo~>{XdYn*=@%EW_K9C7}5rSv;|=Oe{ehC4#R)z+o%{@{cnGp;lINjhX0PY
z5g6R>M`{Cr>V6n@zs>L;8N>VkNcBIc4FJNhx*tS?>V6mo_5UGtKg0jP+YJAMp*Z9Y
zq~8y#`$7GF5QfzM4F4l<BQSdX59<4aaQtnC|Hv5L|A+SbVf8<V2G#p84C?!XFsKax
ztNSx=GyDhP>|2=iKd2o5s{cV_00p-h{ue?qtnLTZ`!Ece2LRXqcOdmXsO|@0P~8t2
z0|3$0w;BFd-(mP)1I3`aAB4e~9*JnU&F~*o|2N%X{12-Co9-}xX%HJU{tv=!@HPO$
z|MuGq|3Q6!5C*jaKy^P1L+XEq|9!V1xc@f8e-NI4)&>Ce`$2fh9ftp)dLM>i{eM^+
z0Nnq-&G3KL9Yoy^Y6HOf|FAZ|{M!uwVHj5TgJ@9w55u4~z|z|c|6v%^_XlB6I{;Sq
z!)VYLz?$0(|3Mhk_lIHRx*x;_%>it>!+=uv!`c9_`XAKi-+r6nKL{h&{aD)ocNqTf
zy^X-2em@Aq>VHt(55tFVGyF%!png9H!`cC$dLM>Q-DdcI;ts=q5DnV%jTHU=VRb)<
z2G#wbHUJ2pzs>Of!X3!`KdA19VNjnRgkkkRtlxhX)b|I~|F=-<eo&tuhHu?r_<#F0
zD!zLQ((i}Spn4x0et4VVKQe~*{h{?gtlmea;eG$x4F6w1F{tiG#-P4Gdfor}HUqfs
zN3Q>o>wRQ4tnZJ~4!8rU_d#_(4C8A9fa-r_{NoO4T@R}7(J`p*2le$q7{mtE_aGXC
zL2M8P)%Oq@F&}`4dqn-ubcgXjsQw3G5F1qYgJ>8A)$_=h^$yd2*1HUF%yx(2KQ0Vw
z190A9{Ev)5{eA>y_|JV8if=Rg=edKxpgJEN^WSCs55fX>82>{s!+(K0Xm$S`hX2A)
z4665$F=z}x><+_!WQ<(*gV>UH8UIV&LB+`Zf7!bX|3O&p4#R(JSm6%ie;5YU`(S*B
z;lJ`-hW{#eP%*gPzr*-n9g0EyevLZ}|6v$Z|7+c0_z%ONx*vvh?=t=e_5C53;lJJ;
zMBNXn_d#{O;T?wmAR2@b@eg5{fa-mu`XAKqx46UbA3{U=|JHYy{#$|S|GSWWKdA2y
z!*+KV|HCk--iKkwyA1!G?jSI%|L=N-@jnQI`u=Wr82*E>#~p_M$Qac32Vw8KkbXa?
z|L=2$;Xeq2>V6Og_4$!8sNN5{!|)%5L3KX}hu&rUA9e?UL3Mw`9ftprcOe+m_lIFn
z8zA-$<9`qa_5I`SF#Lz%ggXrXVHh+9kbH;nKL~^R{SeIXKjjX?|MWYIa15&ZVL0m!
z!+&H98w1F_!}uT6_lIDH|KPeG+UEz={V)uw`$7GG2xj<Sb_asX?=t+axP!ppy8jL%
zxZX#u|3U2lZ1sQR9mfBlIv<2Vbv}%4y~Fq)gh6#b2)Ey5_}_5{fkAaY2zTFM{158;
zLombt{yV4`RQH4M#Ji0DC*6TzhX0_tAB3mgh4lMDeSZ*!*Zp@G|IfSwsry0oKL~^B
z{yBFT|AR27?w@~$=|6~GaEIYPG6vWEcNqUKhW7hGb^nq(4F5rR*&T-eFbt~uL3rgI
z#{Zyx|EfC-|6zFT9ccZJ-2cDJ_#ag7Z@9zwAA%YFgX(`62KD=47*zjnzrzR~2iSg>
z0o?Bg)&C$2s{41{Vf+un;Qs#|hW~r+F#O+#hCy}z!8?rLF#r$^8Ur|V2T}JQxx?@u
zhGBI-j6Qyc@jqxB095aT>i^T=_CKWDhvfeM@cRGkUB>_C?tn1E|8t;v9|>Q)3+eZR
z`u-pctNUT})w_^>KdA2y!l3^DjXRA0kukXLzsv9+MBll?@E;w6#sKc$Vf+umpg#YD
zI}HEP@uNEo|B*4M&yS3s-eLR?>i0u1!~bV@AQ)8lzr4fvABJK5eq{R19j5<p?l7QW
z<i0<M{r)cFe^8$v8wS<?pYJmKhhb2Cj}3#y0lwW~{Ev>oeg8WQ|3P&>4F9~#@E?SK
z-C_8TjzRT2OziI+#{VD;5(8myy?>YCKZyQ!2SkG~<9`qv7Vj{c@h-!EP(9Ch7t#g*
zv9V*2I)?u&cM$bHv26fQ+W@)l2ea=o{O7uZia~7vkQj3PkIaU(13+~@|6PXvFbt~u
zkuhit09N<IXyp1I#1_5F@E?S6wE;l&KMZ5E13-O$X#J0?4FIeAAvD8(r8^J|s{cV4
zy$t}X`(ZS!?uXH^x*tX(*Z;bAA@x3}?uTJe-4CnxVKlD#AKV52wFBVwKBE2ywFRv2
zGQjJ95F1wagJ@XYZ+C~`KMaG~0HFFGgpu0-AhzpWhW{`Os{29M{Vr<#4{8g*>VFUo
zs`rsGsQ&lA!}uSBA#DJL{{cvKKXMxYRR4o8qz%CEKkN>}f8_cf)DD2v{~$W{4#R&K
zhSmKbI{q%A{s*-KKy^PD--Xospt>K1G1~wP|1<AGFsu!LT>nGb01W^0?jUgC9ftoP
z46FY^bjclt|1gYP|D(47K<xog-4DW`dLM*q?=t+a1DF4>oDZQJ?=t)cVOYHnqCxdO
z41?<awmS^}LG?cfqqhM-^*;#r++p|+!^mv_P~8v0p!$E}U55XY?jSI%{>Rn^0M-2<
z4665$F{ti`;rVwN{?EI^@E=4Y*Z&|ksP2bhP`wYsOYb7;e^5IBR{yWO%kUqBvDN>e
zwg7An07S39%kY209SDZi{UCbtU55W43~K{`>iunZ82*E35C+x#Fbu2vAvDAPUC{b}
z?_JC`0I1#vw*&4n{6Bb?;XkPUhhbRV52N9A|6PXvkoq6e?>~8$;XkhWAJq4U)&FPj
zLh66yHUOyp2Vqd%f9Vdxe+Xv$f8`DX7=!A65C+x#$QV)oGyK1C2U7Qg>i^q!8UBMX
zdK&;#_usq2@c;f@1SYx-aEIal)4LE1tM`#<{A~b+|F6*Mepp)oRPVzusQw3G%=(|<
z|A#va|388H{YY&9Ty24`chT#AhX3F0KrpQC2hpIqAB16SSbdL9gX;XhcNzZwxdXu<
zHW=T5)cK%#ABG{h9zi14|DZMi6KFo*F5`a~oB1xoe{>A0_d#MH8X1G?c^GED%lID|
z!|Hs_yA1zfnCl+2&kyVSBhjFGpZ6{!d@KOO=Dmlg^I>&Ahz8aDf_EAIBV$;-52Hoy
zGJ@-SP@RvAVfDZGUB>^&7*_X#Xi)txeV5@sG6vQA$XNa^<9}qVaEIYP2rJ%2(4cxB
zhGF%;>RrbFFsy!;;Xe#(-i7r4K{O15>VECJjQ>FxROcgOy?c;0fc{;E|1b=y_rdrs
z!++zujQ@@9VUGWs-evp`!{&Dx|AVl_Jy8A6@Za(-0)y&(7`DC3_}}Ip<9`qh!mxTD
zMBCqG_z$Z0VHi~BJKtse55b7KAJhhLyT|Y!RQJO$sNM%*&wC92z3-x8Q2p<Fm+?Oc
zgX(=44!FngKkzOB!|Hwz9ekJZKdA19U`X8`ewX1t2!rZ<7>>Hf_&@qC2s8YTz6+`U
z<L)y22VqdXkBmWef8t$+{~(-vm*GDQr`%)wpL!R8Gww3|2Vq#f52Hc#fA(F*|DZY_
zj_*S1{rtNO|6v$Z_k(cJUB>^#V9fBp_%5RU2i5t=7*yw1-evq>d6xl<Ywj}q2VqdX
z55xHC|K_`l|6v$b_k-xRdx*LpR{wY2W&97rpt`^NF2nzxdkp`3?;<d)4KU#@<9}G)
z53Bzt-(~m@!=Sn!hC%)R>313agD|M>2jN+F8UN2l!gIj=e}?~a??N!B?uTJey}$4-
z<9`r_)%}a_GW=h1kKsS4-iKjOy}$e}<9`qa_5DHhJ`AtE%kUqBL3KVdUJvT~-(~m@
zs{3IW)CSlHt@A<kJ`8WY%kUqDLG?Zi@3_bKf9G8U2G#w$?=t*{VNl%<!=Q11{dXDv
z!!W4chvCC_8U7<<P~Cs@F5`b>d>mH)--FcqxaxmUy$`DMK{Tk&2eHrJW&97rpn4yM
zFWrOG{g>}D{D)ysy${3J?lJzqeis#k>iwH{A@x6q2G#q>7}N&1dzbM)1S9HwSR3HM
zJ%;}e?_%P|cNzaby36qY@jXbL53BoO^z*xn|Isn5{|};H-(~oZ3xn$Zw|5!AV*wx<
zROh2(P<;==AMY~!N5`;wA4Y$<$M_#q=c8hV|6lJy>U>z;|NSn*e;5YU`?xTu{{MZK
z@&E6;3}6hd>!ECr7>NJx9>aeSMrQxNi&_4I>VHsO&v1_cUgtx^ApLz%J&%q-bv{T8
zM8h!KJ;wjY7`g6ezsv9+ghBN_sLn^mpgun~46FZP^**TX2VqcskBkNGG5iN%<hmck
zMy~fo?lJraVdQ!r#zwC5k=c@W8UBN?)IEm(AdFo1!`PtuU+x~`e-K8l`{ki^KCJ!+
zwE;jFR`-KwSe*}{8UCw6>wb-U4F5qGR_7zr@cREA!++$uAH)XL|FC)=M#JiU5T9WE
ze~;n6={*KS{eKTp_k-F2pt>Ja=Obg=yA1z9*bdtF2i5&B46FZP^}h36hW{W8s`o({
zRQH20tnP==pt>K1VQm1Pdysk`RQJO$sNVO#%kUpWqu2kSdLM>E?=t*{VNl;6RQH20
zsO|^V`w$vZ?}O@o7zWk-AdFJ?--Fcqpt>J~k?Vep`u`ro|BQQ(K0mzfzsL9=RQJPh
z?p=oeFbu2rVKk`T2iO1iAoV`D?!O1A|4Z*O{0Cv=`X5&B!)Q?55AOe?wF3|>e+UcI
z_Xpvod$9VS0o)E~z02?)RQH20sNRQRSiKLX?=k!b)%_rht^Nnq{S)pn{0G(hFbu2r
zVKl7n2hpH<ABJIdKWhEY@PE!7NWG6<|1Y=)srMJ&W%v)nu(}_;{s*-KKz0A}dyqaq
ztnOcR4^sDo>VFUh)&J}6GX7t854GNh)&HQnAB17`K8W6OkKsQEBiH|+dLM>&-evd?
z!?1cEnFiJW`|dIR2VqFv&+vagtlxi+;r}5h#;E`AG5kM@gu(UyU55WB?lJra)%`Gx
zKK~D@_d#|3nR}3aKZp&h`$06M?q~Ra@h-!EQ2h_9_hB@s?g!QTF#7skhX2SIR{w+Q
zeh@~f`|mM==K=2CW%v)n$n`#`?gwG4_5VFc-H)yQe|8VE?gzC6K=nQt-(~p!>K^X;
zAJi@Y)%!3EsrwoJzrPE?AMP>y2VwMjADIuT`$6?S41?-=Y#3Dc!|Hrw8e84}>mK8O
z5C+MC>UkIj)$t&V&IgGhV^DhllIsy9<9&wzO!t`ngX@1V8^lLoP(6>1S?)3ZhhgM8
zpY0yQe;5YU_aMx1kKsQuMy~r|Y*78rbC2;qDrWc(s_$W#?>@tS5C-u<^*uTU)%hSS
zbdT{r1T*{>g4X+>x*vwc?lJyH$MAap9>af$`w$GO^N}&E&X>8z_#cKr^*#bK{0G<j
z_Za>wAYo9w55h|K82^K4m3xf;A(-L6$~{QE532js?lJraVNl(VjJ57D{s*-IwC*wd
z2Vw1d4F8casNP4$2KN}j{eOddkZ}M|pC7~q(IAY7c?b*E_XpMeX7?HXgZuuV{y$Rv
zZ*`CHKL|tWeun=x_aNBr9>aeahSmEZ+TkAKe<wJG)cc^i-{l^|e-H-M`!MWrkMTbQ
zGyM0s$M7Fk_j}!E{12-4k+I)BrvJY882<a+ht&I^x*vvv?lJy{;oy4=|6w@n9>afR
z466Gh?lJxc)%_66@IUGv!~d9jkTw8_24PU$55o!f82=~SV}N5&-Jf)i@jnQI>U|ha
zz0dSN?H&UdgX(@5&br6=9~o!gWB8wQpW#1<&b!C(ABGF=F@pR5AiC%t!+&I40;>C=
z7*zL{-D3o|0V?h>{;#;l0LE4KAbo!j4XXcPbj>}6|8-!Dy#5yw|DbvwhMVs){BOF)
z@V^C$L3KY2cidzA55t}J82*EB*L?<XzaLch!*Jg{#{Uq^@E=t7!|<eg4F6#mR`*Z2
z$M}C57&H8zb`OF<_5X}}jQ>FxRQJR1?7IyA=iGx}SlvJG9^-!y2G#u#%<zBFJxKiz
zqCxdOGG2C%@jnDJ{0G(jAiUx}!+%h{kBmWe|C)P@|3Mg3_rvf8XgdHzgD|M>2jNZk
z7{PTusNRR+ZTA@e!!W$=zt8Z0$32GsyO1z)-M<G~@9(?E@E?Rh^*#t6xX17xgkg0*
zh(2<U@&A!~3~&sq`;Xmc_z%LMdLM>Cbw7xG>K-Wm(dPf}G5iPB`DgDl{y%pQgc;y{
z{|on+{+|c+`Oz?}?!R)6@jnQI>VF7k_<!vl!~Yv-7*y|r@U44{|3Uc9J%;~xKy^PD
zBkKNp_Za?zFsRN)$B*tY{(p3j0ggfSJ_tX#&j=m^0MVd&A0310{TKI`{=c}#0LGwt
zA05BB$M_!|gX{i#4FBKVXZZgXN`vZrY#3DUf4ax`9~ndHeTM&E?ji8Edkp`vVdQ!r
z#s<~%sF>mZuX_mm=N_c*532J)Y-9|o=W$_3u1AoN`k&!Hhz4P%dx*LpoegUT!0LV&
z4Xg99(b(Dmp!NW)?uXIb_Zk0l-)H#Ga}O1R>U$6d)%_rh%m(qXwF5x)J~D>Y{V-be
zKI4B7MzjMM{)^v3U|1UfL?gEWKx|Mu09^myXZSAz#d7x;{v%`g`<QJ2Sp5&8K^Ro`
z!!UCF4{8H|Fsu!rd7lBL{s*-IKp55r(7Dg>AG!XAu|ah{sNWB&^FeG74Z?_+hp<5P
zzsWsDaNi%j{s*-MKz)Bu-EVcD;Xeq&>V6PydmmB%Bew$_?lb%cVW)cx|B*4M?nlO;
zHh}wmQ2h_7`$6?T41?-_5JuGh4F7%aGr;SA>}>#s|3UX47*_v>+{di{!EJ#14F4nU
zL+XA|{SU&RzCWn$hhbR#AAcWF_rux&pt>K1A@x7Q{}gE5kKP8zywCU_gtP83{D)y!
z{STsH^?&|-SpCoNzW}ZNFTT(4AGr+xuK({b{4cu?srx}~fXe%b`oH!b<9|^7Uwfb7
zKdAl((V#ZKKS;F0$%cE3|3Mg3?>FB^t^Yyo09gIsejil-GyLzk2f?8FAB54{0I<5h
z?;gW{5Qf$N6YnGHe^5IB)CQPxpW#0U!|Hwzja>i3+W_|%{?CHe{m5+qP~8t|3xMba
z_Za?z@WT5L8dU#-FmnCB^ghG?W%m#mR{w+A03eLq23T{C;Xe$+>i_lkA>#m`x*vwY
z_5Xc_|C^u~R{w9kkEs7a?Ep}{zY|*jgJ|S70Ei802kg1e@E?Rhbw3Ov*Z;_EfW!9@
zbw8{f0BQq(>V6Og)%P$ORR5p6&+s2-{ePd~KT7?7pXvX(dko;ZA5{NexDV<3gZlr-
z7*zLz+5#XNRPQ6>>-SOH0pR-oKEwZ8NEp%%0JQ}mZ2(Z+kBpJq01xjY>V8-|0KNW4
zZ38g;e|8UopWlVl{jfFwh$h?yK-BxN`XAI5z*hf*#E|QLF#A5k|4;W3bw8*b@bx~!
ze;6jz4)}4O;Xg7)uKPi3P<;=gK^VkF$DsNjBnG09F+Af#8L&DZM1wG>&S$>Q2yPF6
zXmkv#^I7jR{bzl^0LSe28UEwLoc9_3W5bYoA5!;&>VFXCz0dF;8wS<)Ak6=O@jo&a
zywCVw@IC_y7QWB;9~pz{dt@y3fa$;31BU<N_favZ&Ie)12aNw=So%KWe{?MSfZ;z3
zgX(*9tazXCKQac@`AYX0{wqI#VAcB!|B<o!eMWHqA4G#NxZVfV{ZOoZpW#0;2G#o@
ztowlRKZw@9&-h>eJ_8(s>U<D3ywCU_L>u2{{13v=Xopj#_nH1fFvEXX{cm}n@jo)Q
zzRv`%`>h`^{0CuBy${3o_Zk1A;0KVp-|+#%e-L)Q&+s1^yWVH~55u6k-~B$re-H-M
z`=0k1|HCk-?uTLD`%I9!A5{O}hxGsbA29w0;lTTh|6w@zKD6$?&+s3_2G#u_9QuIq
zfB1a_2G#o@9QlCZKL|(PXZR1pvG*DOBV$nA55fr#82^KC;(f;dAPlSflkYSA2jSHF
z4F6#mRR5>nXZ#Pspn4yKvmP-0&w9Y{KO5BVzYppEgX;d=2aNwg7+m**>i_!;|MTxN
z{4a!JP`wYsrS}>CLolS?2i5)M4;cP~Fu3jq)&EcouK({d{0G(hFpRDKZ@ka+zu`W^
ze^A{I!>#uj|082i-4DVY4;cP;-bY|i-4DXu4;cUV-iKj^|NZw-F{thb;Ykk||4+UT
z!VLc>L+k#j4;cT0@bvqP|6v$Z@6Wu?^dF2LF#Ml=AA#rIXZ#Ptpn4yK=RaWh55l0j
zABGp-XZ#PtOYbxOhhT>P%N{WNUw$8fLG?ZeuYADxAB0!mXZR1ou)2TkeTM%a46ge@
z_5Xc_{~I1K{@-{Xf?@SOjNbf!@js~Uhhb3Nzx@Hje;5YU{UE&iKI4CM466J0K4AF2
z|2`@{c%Kp6{|C_^466HK_~?Cx|L7Q0?;n4_2p$Ij(WgLj0QVXGpT5uZA7lLgKI8wh
z(E9)UeI_s)M4!LU@E?Rhb^pZ&jQ?Tu<@=2Pkuj+5zxsgTKMaHFeHgy+fDt?vaPvOn
ze+Wj@|F<77{0HH?_Zj}f@Vy6&;Qs&p`;7m=_yNOzP`!_iAA|b*Pz<W`Vfg6-rvD)J
z^ZQKypWkOd!Js<-<$cEgF#P&H<9~Gg<^jY1x1jz$5(d@zF#P@jBX~UE<9){e*fFHe
z|NMaAKQe~Z`N%Y={{McT@johN`2QWL-v9Z4;Xeq&+5sT;@B0k@(J`o=2Vsyni2i$@
z@jnQI*$){0|9!yl|Nni)|Nrk}ng73!)c1eD_@C(k!+%hn4{8g5Xl$6}KEr?J2Mqr~
zGzi1m0r={FP@f-n{m%gI`-AF!5axLR83VxA20(5Hpx6B%KB)hXT>pdE$o0SIeFm)c
zKde1~+y+3e`=z1%epvkvqS5Pr*c<@34e)^Bzv2Ui|DgIGhLP)j7#q~@2i5%`j9&k1
zJ%En?L)!tMIv*M9K0ws{pmqSL&Nq0#_#agN!!alwz-xX8!}LDGe-H-M{UB`qfZ@OS
z1LXRj;lCxc?+>c`K^Ro`!)Op2UjIK}_-_xb|3UqK5Js;1L2Q@%4F5sc^#Q|w5C+x#
zFpS&=fYtq8_Zj|sKY;fA(dvKD7yzOT!0<ol0c!n^+y(%(1H$h!{D)y!{STvI^?%F*
zM(|uf>;s1XAPlPeVHmmohqVEcA29rfVOaeSqCs^(2!rbW%=--gL6~s;52^c+>wi!?
z09OB(JYWQm0hHb+T>n=;VE7Ni@cRD&X#5uv?=Z6Q0mFY#8=(0<6TA)3@_-RM2LNjW
zwBKj=55nm6Kd3DLtN*(nF#PYmkHDb5Kdc=9s{28B(gR4n532iN7}Wm<)&C$2tN%gt
zjQb4#XFh;n<oX}f|A*E8AbQ??NZpTK|AYGeAPjB;JYe__>ifemXbb?>1_0IlAPlPe
zS3ZE${e<d&P+MTb1BU+_??W)G?g!Br_5XcD-4AL5fa-o2M%4cd|93<C{<zuzpuRt-
z?mzf|;XkbI2hm3!K*j;Ew*eUbpS;ibAJq2;;ZqMW%m334Kz)A@W(3#wpgRBD14!Ku
zV#Dfv7>!)_U%t=q|H^$x-4CN-bw7*-%>}^f{+mdBf6zDpsQw3y0l?~i5Pk1H!+#LI
z|A65?45QcoAU?J>0IdFh`T(`=hqVPjZ2%AkwE<A;eun?A?;|j-HUO;t2hphYKg0iz
z_YoM>??<lxL2Tr@ADInl2SDn5P~8v1usR=^2G#!{4C?cP>UtOk)$<?>=ig`e{|8j>
zgW3V0G9Og$!`QHl52cyFbv~%xhhYYA8vrB@s{2_UF#U()hYbH&9zy#3FdA0(qthG@
z82_VVl=}Yx!+)-a4FAD(J*d7%!=SpK?*Sux900@yVMM>5;XnTa1QvS0_#YjE>U<a$
z0r&SoeSR2*)c>$C0Eq{T|B*4Q?+>G89x(lvdBA{zLG?ZiD?DKQkBXsn{zC)}>-)oK
zP`$7Afbl;JgX(=4)_BP9AJhf_*ZZKl{{f``uLJ7ugYZL!|DZY_hV>po`v0IhAA~`5
zK8yyj4IeQ42VrQm!zobR55k~2-|PY7e^~tw;#)mn_z%ON`W}XD9y0z1VY>&6|3MgB
z|HJD3hYbH69zy#5p#DDyyF6h055bT+A5`yyu-ik%{~ixeF{uCV^?>O=2!rZ<7zT~~
z`#oU%55u5(AA|!QGW`#F0K$;^A5`bVaL5D3|De7<1VifnhzAV+K^WBUhvBG)jQ_#)
zKB(>oV}}264;jH2ROcgOaJ~P4>3`A#CV0IMs{d0SGX76{fWR3KnEt~ssNRQRQ2#&Y
z0pouV2KD<9nBjlH0|W-u`ygBds`KHP;XkPE2jMbkzaP~1hvBLRjQ=4RQTNw8WCV`^
z)IDJQ55n+>hcdwRKd24xfZ;#5-UrqF4;bM6|F#EA|3URW41??Z2aNx_pcvHm2jQNF
z4FCHcATX@%pYVY3Kd9dis{270RPRrD!1y1ALG?ZigX{eVO#f#<>wQrDKkFgm|2Yp3
z7*ywj@Vp01|K~yb{h+!Zgh74(MGqMN!!Wq+zt8x8$wNrLAJq4U;S~=U|HCk>?g!QX
zYaTHChhb2^ABNXGVEhlN^O5nU2aNwg7*yvY<1G)F{%?B#!l-rsj)#o@cRfI0Q2oE>
z0n`6I4;bJW)c=R!0}mMg!!WGw2i5<F9y0s~*ZZKl{{f``e+<;$N5aP+F#HE$aJ~P4
z@&73h#!~;EdC2e|RNtR_zyzj2bv}rH0o3Pz!1y23_lMz251GJy|0@p|{=+b=-w&d%
zJ!Je3?(>8C{ZI_5`)@s9`VX%Ap?!W(y${3SIv>>U2V+E?53BnhJY@X;=m92v@_^|-
zs0{$3LG?ZaGyDhD{UH48A>;oS4^T0v-iP5=4;lW0FsRRu4ZnN92p$Un(V+Ss6EpmO
z|A68DCma}5=fm)qhm8NfJwV3{|Gzyzt@nRCVE7Nipn4u3{_}wGKQadQ_a8v(eHaa`
z^FjT87=~thIK}V~R`0`TMEwtI1AzMaFbt~qkuiF`596cP{TvS%{(~^*1BU-F466S@
zY<Qm^OB(>x4gg`khYbH=7`fhuvC->(7$08$KV<kX@(@wygX(=42KD)o>wXX$R_{Y-
z)OsJ*4uIADAX@GrX8o@K?e~NG{tp@cD?Nma{ln^i5DlyQ)gCbX2VwOG4F8caa{Uit
z!{z{V9y0s~VOaeSqd|2(96w}0^#AeH|0WM0V*rqL0I2^D!JxVy-1mpJ17P((h(@me
z?Vxo(xbKgp{s;H_A29rPfnreI55idM{|5~Jy&gg^tnP==u(}^agX(?|4tU7$AB4eu
ze^CGb0c7kS)CNG*{|x^_A3!ju|Bt)=XZRoU0D?h%e-H+>1CZ<gga-`&6Yn$pPkI2s
zpt>J~LG?cf!`c9#zJK}yhW{B48NlQIu=*cFW3~Yp{^ugq{h)RLsO|@0Q2h_WB@Y<>
z!!WG=M{fgEJz)5cj6wZ>(&~R$8vsJLg4zKO82-0CWI$;H!0LVw4eIy9FwQo>Lx%sL
zx*vvNbw7xP)%_5f0bKWk>VFW1)&Hn%0EYi_?=yhweo*}n!l1ezhGBI-h+h1F;Xe$c
zw*g>vKZpj^`!KxfA)@{VwF6-F|Jnzjaeq_{s{3IWQU5di-|~>*|F#DR4C?oTFsS|q
zVMH4MQSZar0I<3rM1$&n&|CnBKJb9yKdA19VdVNB#0J&>pfLatee5Bm?g!DJ`X7XG
z)&HRWKd8Px1Fio-Y!HUk{~#Js|1<o*h*bBZw*f%)KM13?0T}+@dcXj$|3Pe6-4CNd
z<NlC#0K@-#Nd10%Z2(Zc53B#5JY@I}!k~H|8RKmOJb={yxY_`qdLJ|n0HR?S(FTCj
z{h<0Egt4^&V0Ax?Mr{K?>V8oD55n+1KiTy^q}~Vh`9T;|*TZNK8yUkZekg<CA;W)2
z8vs=AgW3QL|Ct|x*a!@(`(ZS4{SRWp>U?w>G#>z}^RZ!2y^oARZ2=HQ9}nPt!0;c0
zVRb)<4Xg9fY4Er|@;JalhW|nj8U71DKwx}r0OWRn<O7EP=omcik7o=3(hgwwFZYn)
zKdA19VOaeSqe1mPGKP!;K<a<=HUO@10Bz8Czyr)S0LnN3QvGlAkl{ZFL!%u|f%^QW
z4;lZ1XfS>Vsrw=00MN02X#Edr4}j`^7>2X~82*Fme-H-M{~!$N|AR27?+?SowE-CZ
zdpuzH?}?)g;Pa3Xybi$cA;W+F2dEgi{s*x^^*;!QJcQKy==DFS4FJN3F#yOK0QCAF
z)CNG*{|x_e)&H<I0HpqB_@DNG;XkPU2Vrb&08sxQ+zxmMsry0of8ImL_&;*}4{8Gx
zBGvt{HUOyZhqVJ>{r`%G4F5sv06=Yk>W7T~L3KY2*F9js+y8HR$oRkI0mFY74Pt{Z
zwl)B0450G?!~d>_5DcsTK{WCh0EpfHfZ;y~Pe5t|fW`no7*zj*Fs$yM`hem8^!u1?
z08l#sgy%e9_z%LM`X7Wrbw3Eh>V6Qt;34CG$T$GQ|3ygkKd2pm-Ua~80jzk)@E?R>
z^*@XT)%`FGs{28B-9v`|u(5yGH~_5v2hp1!F#LyMT=hSw9kA;G!+&H98v6%fP#XYL
z?;~SK{m<|pRR4o8uKFL;1~~eF;XkO(2Vqd(A4H#c2<`h5=>LPp0nR^Ugp2_^gv<qi
z>VD980Hpqh)cv6PA2jX{!szusXbb>^Z#-c5kBmWme-H-M{U8jh_hB@s?gwE|-4DXB
zdLNm_90y?d|M&r<-iOiH+5n*T0DK(aA;bR{4;lWye1M8^wE<xDKbU^V@c-RI)OsIO
z_roxH8vs`CBhz0VqSpJMx*vvNZ2%ZeXdD1kzk|jHKx6(OHZlg)_aOeihoCV6hW{WM
zhT#Q2lmV;%K{R;o{~@IQ2ekpvF{rKwVb({C|B*4<L&pDX4;gS`&W8;Dv0+es55wG#
z82^JX??cA_5X|tO7pcz=s{i>PF@nbcKr{>sJY@Wjj6wZ=;fGBBg&#4%F{sW*#-fiH
z|AVmjL&pCw4C?d4u;e3#|1d1|kl{Zv2KD`AA2R+&#-REh8OuLn_^${W_lII|zyA><
zr2qej@xSsT#{Vi08Q>UP=Railua1O4^*#t|K4Sb2?)N`r_^*wGL4AJ^)_uhIA5`a~
zWAGRNw9Yqt1gZOR*Z&NV`u`!rf3t@S|1FR(xXypb_}?0YA2Iy5d5DVbA2R$$#^8GY
z5#xWyM~wfS9x|X{*N2S%kuj+M@BWDCzvn{+3=A3r@P5SjA5`ZfFvEXv-T#Q;zyBjh
zzaP~1hvDFdjQ<gs;Xk<Uf5h-V>>&b!>U<E6e8~78grgoZ{D)ys-5>jq@jncM`u-ps
z|A^r~2q!*d_z%O$4;lZ%FsR=T!3_UXA2Iw-e+a>#dLM){A2I$1;p~Tu|Fa)5fN}04
zhW|OBy8jWwe^9*-!{ECAA>;qThm8M=9x}jj@gs)+r4JFf{2}9iP#d895yO8_y${2%
zx*xUvXZT<Hh~a<zL(uv!XvT+9p!&Y?AtSinZ+Zx+|63n2{D)ys-yekAA2I&#d<en}
z|2rQ-FsT0Te#Gz})bEGk{)deJA(-KR|3ilVpn4yKCq82QKlvdl2G{+M82(Rth```}
z|3k+AGocvN_n-BU;Xeq^eaP@1hQamzLq_m8!2E}d|3UTsf`<(M7d~S6526=8WcUxl
zpgJFhmp)?rzx*Ks9E0k85MKF+;Xeq2`u;Gy_95f{wT~FU7*y|r@cKuPIe?818UMrZ
z=7&uGH$P&4V^H58hPOXt{Ev)xJY@I}!aE-^{NMc$6@%;khm8OCK4SR4?;!{?f@yG_
z|B&JTK_~`|{e$q~N02#yqYoMW!!W46KmLgEKQac@|1f;|5$60qsNM(l_d)dehYbHg
zZ2%Ys)&CbBGW@^z2!by?WcZJauRdf1&jWzytB)A|Uweqa*B>$bzxfaq-+ssl9t!}`
zAbjT`!+&Ia{~_alWDKhF5t!ls<A<0SROf^6(?^W|K^WBMN5|kg{}IFgmq-{?=Og2{
z4;lZXVut^3p>;mE-hagK|NSF|{~sP=$DsQE^Fzk}aQukj|K~>x|3P&=GXDCA;Xep}
zf5`A39mDE;82$4h<9{%I#PI*uLsSf^-(g~ZA2R;OhCy{cNc`VJL>mB_?co%t-bcph
zbv`;DRR4o8r2c34&-w_0@zwtzIYRY6tQ`QNLG?a13~B>_Fs$x}(TMt=;lBW^&yQ69
zgW3Wj(D8p54XXb^7*_v_KV<kXfrMf8KZr)I|3PeU8{iSce_1F-uKQtZ<oX}P2DJe|
zSosmde-K8l|3Pfzx*x;_)&0mAx$XzCL3KX}gX(_}4XOVb{_8!2U;`)(s{3IWZ~YIg
z`_b!vP+I_0_gg(=_;39Pf|1(*$aO!A4QT@~{C9kWTK|LE1L*a?+e3!`AdKDyfYtvX
z8dCo={P%eX!MNH0kh-7YfAB*HhSmR}=xu<94F4k^Auz1|2hp&)A4G%d{<w#rwE&p)
zKWO|Pwf<-LpYjlbVf8<V2G#!{466S#A3^GVP#XYL_k%E~9RR|x`X5FYK4kb0!pLm^
z<odttA;W(V2G#!{46FZPG^GA#_+R~q;eX9T>eT=3k0A9va{Z6J4FIY8(d&Oi8-U^e
z<cAFZr#xi%KlKp=<7xwd>V0GktN%eXs0{$Zkoq4|?}O@o5C+x#Fbu2zLG;o`i25JY
z7C^55k=p>Ex_`|>Nc|6DgX(`62DJlV_5Y@a4F5qGTN?mW_k+d(K=k%Ukh&jK|AR1k
z{SV^rdB}iN|AX295DcpOk=p^F`X7d2bw7*-wE;jF)CK_2kh-7Y|H(&8|8dp-pt>J~
z5%oW)9l-D(RQH20uKFL||9`~rAHDtuwFS`Ye^B55)<cH>w;w?;a@`MNgX(^8{~y*4
zc*OAk!9!Gx-Ua~G{V)uw|3Mg1|1<o5_7H*5+W^RQKa35k@6j=+?uTJe{SU%8+W-$C
zbv~%xN5;tYKa7oD_k;P582<lwh`>J|G5iN%kQj)D)%WN$s4W1h=Rq_GgV-R9S^s0U
z{}>-J{71*2Iv*qkqFEj>{zu2?bw9Q?0Q)0`|Hv3?{SWQ)b3bDEkB&k0Ki?zJSO9b!
z0Mz$?#P}ap=OfdgI$!V+!+&H9s`HVt$YV&KA5`Z<FvEY*M-2Z#^*#toJYx8dj6wB2
z41?-?=|_zJkuj|9htZ%uKQac@`5>(Hi1EMTBZmJ<k0JFwsO|@0P@NCLs*f1{!!W4c
zhhfb}4FAzFxZZ!n_+RG{<9|@SkH8H7^&Ug&ef>ua|3Mg3=fh|a+vqVP*71MyhfM!X
zL1X@pAbo%HN09!%<s-)b2n?<FA46!{M-2awF|6LVf5h<L;W4D%2i5%`465^;A2I%i
zVQ~Hbh~dBMBZmKOj~V{EKSE$w8^G%k<9|@!ABKG%L+X9sM-2Z#7}WQN;ef}C{{tU^
zFvI`AN053SRR4!OV)zfjpt>K1LE`}7j~M=gFmnAL{fO~DG6vWEj~V{QJ%-f#puRs0
zCp}{P55utfKlu@)-w*2h!*IqU#{VD;srNzse}?~{`acKM?|;PbA5`ZfV^F=H|A^r~
z41?-^5H5Pe@E_Fohhb0~pzIODe^8x|j6wB&<s-)bFbt~y!FB&*NZpUC{}1Z>gYhGV
z|IJ{`1n>KU#sJzLG5!bj{Xum<2zNbV_>YW1{eKYddCc&?_Ynev>V6QO@QCq0sNRQQ
zhW}F@p<-D5528VBfa#AI|AX+%M-2Z#c-CWv|Fa(<FsR-K;dzf3|AR27?w|jN;Xeq2
z>U~iEAB16bKZsuPi19zD-iKjuz5j^e{|acoA5`zd@ajhl|3Mg3=ObfKosYl_|2Kl_
z{YMP{HzD=?VQqk|j~M^MFsSa|@tEO1xc-04@E_FohhcD?|A_Jb9uR&Esry0we-PgP
zh~Ymn2DJeWJz@lp1AzMe$QV@jAA7|3ABI77KLj)U2i5;4AA#zB2CVh}*+-23&pu-K
z52GP{e}?}T9zigy?g!DA9y9*G{0JFC>U~h%55m_TGyDhj`;jrI4RGrb<NuqF82;aS
z45{~F^*@LP)%$lJG5&{PP#fU>BZmJV{NORee-M87h~Ymn2DJg6JYoco2Y_f$osWz`
z_5brn4FAzFa{vGJBgX#-%<%v9BM64o|L-0_`~T2>Kd9b^VOahD@e$*H2xj>I@eu?g
z*ZVN`m&cGkKd9f2j^XwGV}}1fkT9se$Av-l|L;eP|6v$Z*Ml$${}H6m|MwBYe-Qrv
zi0S`-EaN|*dLA8v>V1$Hh(^JW82+<7hV=JgG_3ANr$K#w<oX}P#%KdPg6shR_4%>Y
z|DZMi41?MNAdFn^^FLzv55wqf0OYzK#)j1Uuyz1y{g2)TfYtpl8qx+}_%Hnkfnjw&
zhz9lhG3tNNJOC8qtN&r`09f4*qG5f1<Te1P{)b^m-Oun}_Ynev`u?CgAA~`5K8yyj
zjUGeh0N?{ZP=?tfNd0g2hymUX0QLD{?Enzl658*F_5WcstPOx%|D(47K=nTe!|Q)&
z-4Ck&K^VFI2eC2R01W@VAEDO&7;S)ukh&ka{)e>zV0Ax;2G#!{j9&kP+5*V+fAk}U
z|FKXEtM_3vZ2TY81_0Opj~M=g>VFW1)%_qE)b|HrNc|6~`$6?TsP7NLpmqSZ`XAN~
z0M-2<jII91)&_vp{}39|?+4ZYAPnpO*MiCbXuQKHSl!?F2sHK&X#;@jePj%(_hA^;
z_Xp9Sb^xgEhhc2>Kd21=sry0g07$<d)b|HrP+I_0@53;t{s-ad(7GQ~|AR2L`XAN?
z0M+|2j9mYtv;iJ5pw$1Mb^xdi0K%|(A4bE*|Iyn3puRt({%82V{t*Pj+5oV6ADM>N
z|BoPbKd$;8+y;2e@P7{!gX(@5hRg#%+5w>YAB-O{{6F}J;Xiu)4{8H|FlrkBRR2Tj
zeoz|#TmK(c@55-w7yz{Y4{8G-jsJt&0MI#r%a0iTgD|Mxhhb3t59;@$*Z-h40HOLH
z)(!yG`{)=n27p}ugV>-p00^Vj{|x`1K7wH6zCWxTfL#BB*sy*-tnNpqk=p^VdLNyJ
zwF5vjtp115u(}^cqu2W|{`W@=|Isn19e}IuhlzvgdQdw6gh6#b2>*V>@E?Rh^*tDa
z<^|yOKLhsq{|V!NhR2980H((b{~?(1Kht9nhSd3>`W}W^pD_G~VYbH%|FL0EeGkJN
zj~V}SJZ6AnuEz}j(J}WE#{Xdah~YoaV@5az)%hs+F~fiUCk+1u9%EwU{=d*;#{VD;
z>i45!NWCxinBhMROQ7}rL42vljQ>$FqTUC!0c0LC{0CvV#|;0GF{}-s@R;F041?-^
z7*>A5@E?R#9y9!hVNm~H?J>iDWUTR+;Xe$6+5lRQ8UG_=oyQFSL0I<*wC@k<|07|8
z$Bf`{01yrC`-AHL$C%?kCXX5ZgX(@Te$4RS;xXfY3os30GyDhD{Z@||{==}%V}}1Q
z466U_9y9*8dkpFKgZlm;?D&N7ztdw>466TKo-q6eVNkyxhCy|{$79C-$QacB_j=6m
z-}?!}e{kO))c=QKP~GqMnDIZT-w(kI{{tRF>i?j}4F6#m)b|JB(8rAb!@!u~f7oM4
z-yc-}M?7Zy55iH88UMpDsNRox%<vzCL4AK12G#uuj~V~NFu3l2!tg)&3B&)C$EY~%
zG2?#_2KD{H_%Xx(jK>WBvyd>j?tjeqA4carX7~@op#FcsV}}2rdLJ2=JZAWhjLRQ0
z{s)f(JZAh~0mlsgD<3iZuX@bzzveNBW&+b7cI^|!{~!#j_hEG76NdjykC^^9J!Sx7
z&=^3=V}}1A-1eB^KMZ#~X7~@opn4yMyB{<D2lf47xbHFJe;5Y!{b6|0V}}1Q4665G
zc<N)u|I^@@;XkPEpYfRCKMaHV|1b<{2h4fQ_#cGlJ!ben{|Uo?7`@;z!+#hC)%}Ye
zGyVtRC65{Y!|>844F8ushG0<NABI;xVfer5F#?0?{xy#o!Q%iRdfj8j{~)~n38dcN
z@R;F02!s0mAiVi8<Nqyi%<zB9V}}1*A2Iyj_85UdV*oI`>oMbh7>3pRFnZr(hX2SI
zGzM_sG2{OOj~T%D&|`-GAPlSjk344l55u6k|M+7j@HoKnCk+2V_{3v|{~!#i|4%(;
zghe}?KJ%F2|Jf%@;4y%6j~V{MFs%O%qAxyX{158;UwX{&AA~{mJ_uiV3~2*^XmH*C
znBhN&2G##J9y9)jV21xU9z*;7PZ+^t0CyfU{zu24{{Owl4F5qG)aOUXpgRB2W5)l;
z7*zK^dCc%1hMzuR`2XxNDu&hlFCH`ghv8R`8UMd}%z%R5JZAWhjzMDp$oTzZ#{VB4
zGhkp?o&V`E!+#hC_4%>kZ;u)OLombtZ;ufeROh4PpHCS7gYd7%jQ`Owxc&!=GyMPa
z7=l4{KM4PW@<HMtHZq1sJe0xsgz-NJ!`c9lx*ygCz@$NK09f4*qp{Wh$YRKKKQbG+
z4FInDp=|)<`k&`9!+$;~2G#o@Hi(8{^mYKK4FIb5;rI!|f04(iSo8_Qe-MV%{~#Jv
z=fkk%W5)lIPZ+>h>M_HAWQ<(*gX(_}My~%sZ22dMx*ygC0M+@RHUNkQVOZS{qmk==
z5F1|iKVby70}ypT!+$Mk-4Cn(v9$p}^*#)fQvaKy)&HQj0IcqZ(Xjd-M1$&nWDKkS
zQQH6v|D7H~>V8oD55u4~fcq2Vx}V{{$72YF)&JPq0HFHc?+L?y5C+x#Fbu2vVKlh@
zf5PxT^a-Ty2i5-|j9mXi+5imyqaH&rsP2bhc>Vu`@qhdiQ2o#FKjAS1gX(@5Ms5S7
zK4JKu_85Xe^*#t^K4JI|!pLoa+$RkGa~?DN2hku5tN%eXsQ!oHB2Zi4F~k4jC%EhX
z@+S=cD;^^-qW*`p0|?dsjgJxaf6HS=aNQ58|3Mg5|F=Iu)c^2yz+;C0-A@>B*8iY(
zz=X#P|3P@-6GZ)w+ztTM|5KkZ{Gaw1fnjw&h=$euAbR!_hW~ROLolq~htcr5{|TfW
zu;?+ve-MV%{U92-{s*-KRy=0-55l1OAB2(H0HAswj-N36U-y{dKdAl((V)5?hCy{d
z7(Ze7zxfHI?g!QXAdFo9gV?b8f9Dg1|GOTeVo?3R_X)#)5Js;5L2Ovv52L~L{}V=V
zI{;SqA9>91AA~`5J~9T?{V;s$31<5rQvW0BeOUbuqCs^(2w!}{@E?Rhbw4r&)%&n^
z0Ei8$`(gO{6G*)es{3L1Hnjc+(IAXy12Fu*1Fic(^*;=ww*ipr{zs1){(~@b-4Ck&
zK^R*b;KdV$|Hv4<{(t=hv;GIQ2i`qq_z%MGpD_G~VO(thSly3IqqhORK4JI|!pL<$
zjE$@Q2ekn}7}5q{`2XuMq@NF>K^Roe<H9I){}asiAE@q!U<PnIfcXi-e-LJb(jYcE
zhSmEpn(Zm$fA%K~crmEn=X}EW9~~pt`!F`oQ_vUy!++i<m>5>?gJ^-LjQ>Gc@CoC8
zRLt;S=n2Dr;im`;s_)UU*i**;;!mLXDZ_v9r;s`yUiUv`_%HR8;lK0~Obn{`WuGwq
z2VqcskB(vWzTy*x|1b=y_hDG|3B!MM4666lpD_LhVa+Fu{}Gtszt&Soy|4X*;Xeq2
z>U?CZ_muI!{u2ZS*Zofz{u@4F0%PMR4F5qG+U$c<rcW6En?7au532XgpFn7frwso=
z*zyU(e;5YU{nk$z{)4dX6NdlD*!~IQe`E}*`yrU&zw;AR46FNHpECXjVNm_={)FK_
z2!rZ=&nFE3VHi~RgRsw2#{a%gK$zjbFSOqGe+sGpL3H2~hW{WO^px>`&=ZFL!A}tw
zRQJPh_!GweFbt~qBcC$-k9flHA4Eq#VfYWiF;5x6bnFwx{~!#i_v4>1{0HHLrwsoS
zpCB-({!e+z_#cEp^*#)P>i_g74F5qGRPV!Z)>Fp+*-se27*ywjaNbjf{~(<IgyBCj
zE_}-HABI77KM0pRWdx4_ls;kn59<Ge>;0z;|0|v{{I7h1imRV6{s-aOCk)_zKdA3t
z_Y}+e|ECQ9o1QZMZ+^n?zxfHM?gwE=|G)JK!+#J4)%_sc@s#0z=Mw}5)%_sc^OW&F
z2=_i={13vQdcW@p!~g!L5DcpOL3q+r#{ZL_AY+FA;JW`Q!~bbd8U9ayg214<f94a$
z{~!#i_hA@R|IdBG@E?XjV*m@DGX7uil;QuvCkPCx`$2f|6NdkwdLJ2s>i*?V82*DW
zsNM(RRZkiJgYfDnjQ>FxT=zd=_`mik1cT~+WW4bS<9`T-)cc^iAB49&W%$4K2?B%a
z{q0W}|8IZF0LGxYAA~{m|L!LY|B*4M?g!!hPZ<91d&=-1M8hzs?mzg1@jnP3e!}?w
z@Dm0wKJpY&?;m}_@E;k&+5jh?F#d;OZ1w-yC!qd61fPGx_#YKR>;0z)`tlQo|Hv3r
z?_Yhw`2WfihW}TeGW-YC`^Xqn_uqWN_#cLEKVkR}!Hoa!JcZQzcb_o)hhbRVfBy;N
ze;9uFgz^8wCk${5s`np1VfYWjpgJFfpFL&#52K$yVfc@Xk?a1KPZ|D$FsRPQhTlG6
z{Qvd|102Ka{il#Nz=x*{|35y#j$w8G=cf$+VHi~3W5cj||N9fh|Hv3r*P~*F|39BF
z{Qvb7f<f%xPZ<8gFs$xJ=Kp=d_#cEp_5XiRy${3ik{`kV)$_=h=_#bo4-x~h(d&K?
zA5`zdXb>BO*`6}|N5<IN1K8RCusR<?GyLa%g2068f6O)j!+*gi5DcpSL6}e*0KNVP
zwE;kwP#XYL|I0jK_%Hhug3;@L5FgYAfYtpV8dmp%XqBh<>wicafZ@O969`7H|Iyn3
z==DFSEnonu|DQ7aH+%}I`?1#lPZ_}VKd2o5uK%Av>VEY4AJh&2)&0mA)&@YX`@!s|
z4F4UUKrprHe@GhuQvZY60HAsw)c*(3pt>I!6IK61>wQY=e?%LA;XkbY2hpIqAB16b
zKZr)I|3U2lSp5&9iK+iV?Ep~yU;2dMKdk<T(a3Fp>Zc57^*_V^x~G`^zb1_OAJh&Y
zuKowL1+dlsy-yha6R!Um{!e~_yZ#5Y1weH_2*c`r7!9lYK{TlT2VqeC55nke08sr8
z!lc#z4F6X@VfeoWss0DG1CZ<g4Nq~`|Hy3sT=hSw4S-ztgV><DAA~`5KM2F>ei#j^
z`(YTl{s*y<>wXZM-1`6AQ&<~-;s1GPzaP~12jNRkQR{wCJAnN9pMmW9AJi6r)%`FU
zR`0`T<hmcmhP44ebw3PatN-6TMXmoqZ2?dl095b8Xb>A;8vs`K!)R>vKS&JJ20*U+
zVQfhK52^P-^*spVs{cXtKBx@<qCptM2G#u_3}gR)!T@d${6_<zdL9{r>U_`~07wkP
z2G#TE7*yYb#6UC%gZlr-bw7xWt^P;v`-Aw9dLKIX{{%vV`~Ocd`~INz0I1G~VNl;6
zh6(lmLG1uy`v0K1AA~{mKdA2y!{}oGp!y%w_Xp#r4F5s(Jvzo#|EoM@gv|dFRsX}r
z05JRigzJBX{{~3)KdcS#9}R%|{>T{A1_0IlAPlPWkuh@J4`So2|DQ1a2lfA*o}%{s
zL2UtY`~Sq$|DgUqs2xC5{r{K|-0uhV{XrPi_XlBe`~N9V$*=!G{eKW9t^Q|(*Z-jY
zKM14O|5Z;xbN&qfL2UuhH~_x-AJh(ji~&IEe^9?4hCzLQ5JvC+<F5Z1;eCJ57yzj6
z55lDM|8dp-bDkpl{;>KV*8fMZ|3URW43k#>L&pFHp#BHd`!Ecv_hB@w?g!DJIv<2V
z{eKV*s`HUCYW>du9s|JD|3Cc{(*Fn5{pX%S>V3#K0HWVdsQw4_{XrO|@Bb9E27m$H
z_XmvuK>GfmF#t&aAJ*@O(V+f6tltl#(fj|D)c>%0A4a3s|Dd`bgh6#aGKSUrFq&HR
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

literal 0
HcmV?d00001

diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index a650411..a987f63 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -22,27 +22,10 @@ target_include_directories(
 add_subdirectory(DMath)
 target_link_libraries(${LIB_NAME} INTERFACE DMath::DMath)
 
-# libktx
-set(LIBKTX_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/KTX-Software-master")
-target_include_directories(
-    ${LIB_NAME}
-    INTERFACE
-    $<BUILD_INTERFACE:${LIBKTX_FOLDER}/include>
-    $<INSTALL_INTERFACE:include>
-)
-target_include_directories(
-    ${LIB_NAME}
-    INTERFACE
-    $<BUILD_INTERFACE:${LIBKTX_FOLDER}/other_include>
-    $<INSTALL_INTERFACE:include>
-)
+# DTex
+add_subdirectory(DTex)
+target_link_libraries(${LIB_NAME} INTERFACE DTex::DTex)
 
-set(LIBKTX_LIB_FOLDER "${LIBKTX_FOLDER}/lib")
-set(KTX_SOURCE_FILES 
-	"${LIBKTX_LIB_FOLDER}/texture.c" 
-	"${LIBKTX_LIB_FOLDER}/filestream.c" 
-	"${LIBKTX_LIB_FOLDER}/checkheader.c"
-	"${LIBKTX_LIB_FOLDER}/hashlist.c"
-	"${LIBKTX_LIB_FOLDER}/memstream.c"
-	"${LIBKTX_LIB_FOLDER}/swap.c")
-target_sources(${LIB_NAME} INTERFACE ${KTX_SOURCE_FILES})
\ No newline at end of file
+# Vulkan-headers
+add_subdirectory(Vulkan-Headers)
+target_link_libraries(${LIB_NAME} INTERFACE Vulkan::Headers)
\ No newline at end of file
diff --git a/external/DTex b/external/DTex
new file mode 160000
index 0000000..9a0b7e1
--- /dev/null
+++ b/external/DTex
@@ -0,0 +1 @@
+Subproject commit 9a0b7e18d9d774e85c8a15a7204b4da7815ba082
diff --git a/external/KTX-Software-master/BUILDING.md b/external/KTX-Software-master/BUILDING.md
deleted file mode 100644
index dd73a3c..0000000
--- a/external/KTX-Software-master/BUILDING.md
+++ /dev/null
@@ -1,409 +0,0 @@
-
-Building KTX
-============
-
-This document describes how to build the KTX library `libktx`, the
-portable KTX loader tests `ktxtests` and the KTX tools `ktxtools`.
-
-Status
-------
-
-You can build `libktx` and `ktxtests`for GNU/Linux, iOS, macOS and
-Windows. There are three versions of the tests for the
-OpenGL<sup>&reg;</sup> loader: GL3, ES1 and ES3. There are also tests
-for the Vulkan<sup>&reg;</sup> loader: VK. GL3 can be built on GNU/Linux,
-macOS and Windows. ES1 can be built on iOS and with the PowerVR emulator
-on Windows. ES3 can be built on iOS and with any of the major emulators
-on Windows. VK can be built on GNU/Linux, iOS, macOS and Windows after
-installing a Vulkan SDK.
-
-Android builds will follow.
-
-You can build `ktxtools` for GNU/Linux, macOS and Windows.
-
-Make/Solution/Project Files
----------------------------
-
-The project includes separate cmake/make/project/solution files for the
-KTX library, `libktx`, the KTX loader tests, `ktxtests`, and the KTX
-tools, `ktxtools`. The last 2 have dependencies on the first.
-
-All these make/solution/project files are generated by GYP and should
-not be hand edited. Make changes to the GYP files and regenerate the
-projects.
-
-The current project files include both OpenGL and Vulkan loaders and
-tests. The plan is to offer alternatives in future. 
-
-Building
---------
-
-### GNU/Linux
-
-```bash
-cd build/make/linux
-# Build everything
-make
-# or
-make -f [ktxtests|ktxtools|libktx].Makefile
-```
-
-**Note:** The generated makefiles cannot be used to build `vkloadtests`
-due to a problem with the shader compile code generated by GYP. Use the
-`cmake` files instead.
-
-Alternatively you can use cmake:
-
-```bash
-cd build/cmake/linux/Debug # or .../Release
-cmake .
-make
-```
-
-You can create an Eclipse project with `cmake`.
-
-```bash
-cd build/cmake/linux/Debug # or .../Release
-cmake . -G "Eclipse CDT4 - Unix Makefiles"
-```
-
-You can import this into Eclipse via "Import->Existing Project".
-
-### iOS and macOS
-
-Use the generated projects under `build/xcode/ios` to build the
-library and load tests to run on iOS. The OpenGL tests will use
-OpenGL ES 1.1 and OpenGL ES 3.0. The Vulkan tests will use MoltenVK.
-
-Use the generated projects under `build/xcode/mac` to build the
-library, load tests and tools to run on macOS. The OpenGL tests
-will use OpenGL 3.3. The Vulkan tests will use the macOS Vulkan SDK
-and MoltenVK.
-
-To find the Vulkan validation layers when running the macOS Vulkan
-load tests set the environment variable `VK_LAYER_PATH` to
-`$(VULKAN_SDK)/macOS/etc/vulkan/explicit_layers.d` when running the
-application. Environment variables are set in the Arguments section
-of Xcode's Scheme Editor. Validation is only enabled by the debug
-configuration.
-
-#### Xcode Preferences
-
-You must create the following Custom Path preferences in Xcode:
-[`DEVELOPMENT_TEAM`](#development_team) & [`VULKAN_SDK`](#vulkan_sdk).
-If building for macOS you must also set [`ASSIMP_HOME`](#assimp_home).
-
-##### DEVELOPMENT_TEAM 
-As of Xcode 8.0, Apple, in its wisdom, decided to require selection of a
-Development Team for signing. If you set the Development Team via the
-Xcode GUI, Xcode will store that selection in the `project.pbxproj` file.
-Thereafter `git status` will show the project file as `modified`.
-Instead abuse Xcode's _Custom Paths_ preference to store your
-development team identifier outside the `project.pbxproj` file by
-setting a DEVELOPMENT_TEAM custom path (replace ABCDEFGHIJ with your
-team identifier):
-
-![Image of Xcode Preferences open at the `Locations` tab with
-Custom Paths selected](https://i.stack.imgur.com/WtGcY.png)
-
-(Xcode menu → Preferences… → Locations → Custom Paths)
-
-Note: if you change anything in the project (update a build setting,
-add a new build phase, rename a target etc.) the development team will be
-automatically added to the project.pbxproj file. So, as noted above,
-changes should be made only to the GYP files.
-
-Thanks to [0xced@stackoverflow](http://stackoverflow.com/users/21698/0xced)
-for this solution.
-
-The team identifier, formally known as the Organizational Unit, an
-alphanumeric code (in the case of the author's "personal team"), can be found
-as follows:
-
-- Open Keychain Access (it's in /Applications/Utilities)
-- Select *login* in top left pane
-- Select *My Certificates* in bottom left pane
-- Right click the certificate of the team you wish to use; choose *Get Info*
-  from the context menu.
-- Click the triangle beside *Details* to expand it, if not already expanded
-- Copy the value of the *Organizational Unit* field under *Subject Name*
-
-If you have already manually selected your team in Xcode, you can find the
-Organizational Unit and revert to the original project file by running
-the following in the KTX project root:
-
-```bash
-git diff | grep DEVELOPMENT_TEAM
-git checkout build/xcode
-```
-
-##### VULKAN_SDK
-
-Set this to the location where you have installed the [Vulkan SDK for macOS](#vulkan-sdk).
-
-##### ASSIMP_HOME
-
-Set this to the location where [`libassimp`](#libassimp) is installed. If
-you use the MacPorts version, this will be `/opt/local`.
-
-### Windows
-
-Use the solutions under one of
-`build/msvs/{win32,x64}/vs20{10,10e,13,13e,15,17}` to build the library,
-load tests and tools for Win32 or x64 plaforms. There are separate
-solutions for Win32 and x64 platforms.
-
-**Note:** Builds of the Vulkan loader tests require vs2015+ because they
-use `vulkan.hpp` which needs C++11 & in particular `constexpr`, so solutions
-other than vs2015 and vs2017 do not include a `vkloadtests` project
-and their `appfwSDL` projects do not include Vulkan app support.
-
-Dependencies
-------------
-
-The KTX library, `libktx`, and the KTX loader tests, `ktxtests`, use
-the _GL Extension Wrangler_ (GLEW) library when built for
-OpenGL on Windows.
-
-The MSVS `ktxtests` solutions on Windows include OpenGL ES versions.
-To build a complete solution and run the OpenGL ES versions you need to
-install an OpenGL ES emulator.
-
-The KTX loader tests in `ktxtests` use libSDL 2.0.8+. You do not
-need SDL if you only wish to build `libktx` or `ktxtools`.
-
-Binaries of these dependencies are included in the KTX Git repo.
-
-The KTX vulkan loader tests in `ktxtests` require a [Vulkan SDK](#vulkan-sdk)
-and the Open Asset Import Library [`libassimp`](#libassimp). You must install
-the former. The KTX Git repo has binaries of the latter for iOS and Windows
-but you must install it on GNU/Linux and macOS.
-
-As noted above, the KTX project uses GYP to generate make, project and
-solution files. *You do not need GYP unless you want to re-generate
-the supplied projects or generate additional projects.*
-
-### GL Extension Wrangler
-
-Builds of GLEW are provided in the KTX Git repo.
-
-#### Building GLEW from source
-
-If you want to build GLEW from source you need the OpenGL core profile
-friendly version, i.e, 1.13.0+. You can either clone
-[the master GLEW repo](https://github.com/nigels-com/glew) and, following
-the instructions there, generate the code then build it, or you
-can download a pre-generated snapshot from https://glew.s3.amazonaws.com/index.html
-and build that following the instructions also found in
-[the master GLEW repo](https://github.com/nigels-com/glew).
-The snapshot used for the binary included in this repo came from
-https://glew.s3.amazonaws.com/index.html?prefix=nigels-com/glew/25/25.1/.
-
-### OpenGL ES Emulator for Windows
-
-The generated projects work with the
-[Imagination Technologies PowerVR](https://community.imgtec.com/developers/powervr/graphics-sdk/).
-emulator. Install that before trying to build on Windows.
-
-Projects can be modified to work with any of the major emulators;
-[Qualcomm Adreno](https://developer.qualcomm.com/software/adreno-gpu-sdk/tools),
-[Google ANGLE](https://chromium.googlesource.com/angle/angle/)<sup>*</sup>,
-[ARM Mali](http://malideveloper.arm.com/resources/tools/opengl-es-emulator/)
-or [PowerVR](https://community.imgtec.com/developers/powervr/graphics-sdk/).
-To use a different emulator change the selection at the bottom of
-`gyp_include/config.gypi` and regenerate the projects. If you want to run
-the load tests for OpenGL ES 1.1 you will need to use Imagination
-Technologies' PowerVR emulator as that alone supports OpenGL ES 1.1.
-
-<sup>*</sup>You will need to build ANGLE yourself and copy the libs
-and dlls to the appropriate directories under `other_lib/win`. Note
-that ANGLE's OpenGL ES 3 support is not yet complete.
-
-### SDL
-
-Builds of SDL are provided in the KTX Git repo. These binaries
-were built from a post 2.0.8 changeset given below. This changeset
-includes a fix for an issue with OpenGL applications on macOS Mojave.
-Standard SDL 2.0.8 works fine on all other platforms so you can download
-binaries from [libsdl.org](https://libsdl.org), if you prefer.
-
-#### macOS Notes
-
-If you wish to use the provided version of SDL in other applications
-on your system, you can install the framework. Open a shell and enter
-the following command
-
-```bash
-cp -R other_lib/mac/<configuration>/SDL2.framework /Library/Frameworks
-```
-
-replacing `<configuration>` with your choice of `Debug` or `Release`.
-If you do this, you can modify the projects to use this installed
-SDL framework instead of copying it into every application bundle.
-See`gyp_include/config.gypi` for details. You will have to regenerate
-the xcode project if you wish to do this.
-
-#### Building SDL from source
-
-As noted above, KTX uses a post SDL 2.0.8 changeset, no.
-[12343](https://hg.libsdl.org/SDL/rev/84eaa0636bac) in the canonical
-Mercurial repo at https://hg.libsdl.org/SDL or the automated GitHub
-mirror at https://github.com/spurious/SDL-mirror. Clone the repo,
-checkout changeset [12343](https://hg.libsdl.org/SDL/rev/84eaa0636bac)
-and follow the SDL build instructions.
-
-Copy the results of your build to the appropriate place under the
-`other_lib` directory.
-
-### Vulkan SDK
-
-For GNU/Linux install the Vulkan SDK using the `.tar.gz` file from
-[LunarG](https://vulkan.lunarg.com/). Set the environment variable
-`VULKAN_SDK` as instructed by LunarG.
-
-You will need to build `glslc` whose binary is not included in the
-SDK. To do this:
-
-```bash
-cd $VULKAN_SDK
-./build_tools.sh --shaderc
-```
-
-It takes a while.  10 minutes or more! Add a comment to [issue 671
-at LunarG](https://vulkan.lunarg.com/issue/view/58e4e57be46ffe7e73becd83)
-to apply pressure on them to include this binary.
-
-For Ubuntu Xenial (16.04) & Bionic (18.04) you can install the
-Vulkan SDK from the Ubuntu distribution. Follow the instructions
-give at [LunarG](https://vulkan.lunarg.com/). The `glslc` binary
-is included hence use of this distribution is highly recommended.
-
-For Windows install the Vulkan SDK for Windows from
-[LunarG](https://vulkan.lunarg.com/). Set the environment variable
-`VULKAN_SDK` as instructed by LunarG.
-
-For iOS and macOS, install the Vulkan SDK for macOS from
-[LunarG](https://vulkan.lunarg.com/). Set a `VULKAN_SDK` Custom
-Path in the Xcode preferences to point to the `vulkansdk-macos-*`
-folder you extracted from the download. This SDK contains MoltenVK
-for both iOS and macOS.
-
-### libassimp
-
-Binaries for iOS and Windows are provided in the KTX Git repo.
-
-#### GNU/Linux
-
-Install from your package manager. For example on Ubuntu
-
-```bash
-sudo apt-get install libassimp3v5
-```
-
-macOS
-
-Install via [MacPorts](https://www.macports.org/) or
-[Homebrew](https://brew.sh/). For example
-
-```bash
-sudo port install assimp
-```
-
-Set an `ASSIMP_HOME` Custom Path in the Xcode preferences to the
-parent of the `include` and `lib` folders where `libassimp` is
-installed. For MacPorts this is `/opt/local`.
-
-### GYP
-
-All the builds use cmake, make or project files generated with
-[GYP](https://gyp.gsrc.io/). A modified version, available in the
-`remaster` branch of [this
-fork](https://github.com/msc-/gyp/tree/remaster), is needed to
-generate makefiles and vs2013+ projects. To install GYP, follow the
-[instructions in the
-fork](https://github.com/msc-/gyp/tree/remaster#installing-gyp).
-These work for either version of GYP. There are no install instructions
-at GYP's home.
-
-*You do not need GYP unless you want to re-generate the supplied projects
-or generate additional projects.*
-
-*You can use the standard version of GYP if you do not need to generate
-make projects or Visual Studio 2013 or later projects.*
-
-### GNU make 3.81+
-
-You need this to run the top-level `GNUmakefile` which runs GYP to generate the
-various projects. It is possible to type the GYP commands manually, if you
-really do not want to install GNU `make`. However, if you want to have GYP
-generate makefiles to build the KTX project, you will need GNU `make` and
-a Unix-style shell to run them.
-
-On Linux, GNU make is available through the standard package managers in
-most distributions. A suitable shell is standard.
-
-On OS X, GNU make is included in the Xcode Tools available from
-[developer.apple.com](http://developer.apple.com/tools/download/).
-A suitable shell is standard.
-
-On Windows, if you do not intend to generate makefiles to build KTX, you
-can install a native Windows version of GNU make from
-[GnuWin32](http://gnuwin32.sourceforge.net/packages/make.htm) and run
-`make` in a Command Prompt (`cmd.exe`) window.
-
-To get a Unix-like shell choose one of the following:
-
-* install [Git for Windows](https://msysgit.github.io/) a.k.a `msysgit`
-* install [GitHub for Windows](https://windows.github.com/)
-* install [Cygwin](https://www.cygwin.com/) making sure to include `make` from
-the *development* section.
-
-The first two of these options include a copy of [MinGW](http://www.mingw.org/)
-(Minimalist GNU for Windows). Sadly it is not the *same* copy; installing both
-tools results in two copies of MinGW on your system. Neither copy includes
-GNU `make`. You can download a pre-compiled version from the
-MinGW project [32-bit](http://sourceforge.net/projects/mingw/files/MinGW/Extension/make/make-3.82.90-cvs/make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma/download) or
-[64-bit](http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/make/make-3.82.90-20111115.zip/download).
-Unpack the archive and you'll find a file called `mingw32-make.exe` (32-bit) or `make` (64-bit).
-
-If using the Git for Windows shell (*Git Bash*), copy this to either
-
-`%SystemDrive%\Program Files (x86)\Git\usr\bin\make.exe` (Windows 8.1 and 10)
-
-(omit ` (x86)` if using 64-bit) or
-
-`%USERPROFILE%\AppData\Local\Programs\Git\usr\bin\make.exe` (Windows 7)
-
-:confused: I do not know if the difference in OS caused the different install locations
-or if something else is at play.
-
-If using the GitHub for Windows shell (*Git Shell*) copy this to
-
-`%USERPROFILE%\AppData\Local\GitHub\PortableGit*\usr\bin\make.exe`
-
-### Doxygen
-
-You need this if you want to generate the _libktx_ and _ktxtools_
-documentation. You need a minimum of version 1.8.14 to generate
-the documentation correctly. You can download binaries and
-also find instructions for building it from source at [Doxygen
-downloads](http://www.stack.nl/~dimitri/doxygen/download.html). Make
-sure the directory containing the `doxygen` executable is in your `$PATH`.
-
-
-Generating Projects
--------------------
-
-To (re-)generate the projects run the following commands in a shell:
-
-```bash
-cd <your KTX clone>
-make [cmake|make|msvs|xcode]
-```
-
-All important configuration options are gathered together in the file
-`gyp_include/config.gypi`. Change these as necessary to suit your local
-set up.
-
-
-{# vim: set ai ts=4 sts=4 sw=2 expandtab textwidth=75:}
diff --git a/external/KTX-Software-master/CODE_OF_CONDUCT.md b/external/KTX-Software-master/CODE_OF_CONDUCT.md
deleted file mode 100644
index a11610b..0000000
--- a/external/KTX-Software-master/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1 +0,0 @@
-A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/external/KTX-Software-master/CONTRIBUTING.md b/external/KTX-Software-master/CONTRIBUTING.md
deleted file mode 100644
index 34ba770..0000000
--- a/external/KTX-Software-master/CONTRIBUTING.md
+++ /dev/null
@@ -1,12 +0,0 @@
-## How to contribute to the KTX library and tools.
-
-1. Make sure you have a GitHub account.
-2. Fork the repository on GitHub.
-3. Make changes to your clone of the repository.
-4. Update or supplement the tests as necessary.
-5. Submit a pull request against the _incoming_ branch.
-
-If you will be generating documentation with or preparing
-distribution archives, you **must** follow
-[these instructions](README.md#kwexpansion) to install a
-smudge/clean filter for expanding keywords.
diff --git a/external/KTX-Software-master/LICENSE.md b/external/KTX-Software-master/LICENSE.md
deleted file mode 100644
index 0a0090d..0000000
--- a/external/KTX-Software-master/LICENSE.md
+++ /dev/null
@@ -1,228 +0,0 @@
-License and Attribution Notices           {#license}
-=======================
-
------------------
-
-This file has two names: LICENSE.md and NOTICE.md. The former to tell GiHub users this
-is the license. The latter to tell creators of derived works that they need to distribute this
-with or make it available in a display generated by any Derivative Works, except for any
-parts that do not pertain to the Derivative Work, in accordance with clause 4d of the
-Apache 2.0 license, i.e. this is the "NOTICE" file.
-
------------------
-
-## Default License
-
-With the exception of the files listed explicitly below, the source
-is made available under the Apache License, Version 2.0 (the "License");
-you may not use these files except in compliance with the License.
-You may obtain a copy of the License at
-
-&ensp;&ensp;&ensp;&ensp;http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-libKTX is the work of Mark Callow based on work by Georg Kolling and Jacob
-Ström with contributions borrowed from Troy Hanson and Johannes van Waveren.
-The source contains code
-
-    © 2010 & © 2013 The Khronos Group Inc.
-    © 2008 and © 2010 HI Corporation
-    © 2005 Ericsson AB
-    © 2003-2010, Troy D. Hanson
-    © 2015-2018 Mark Callow
-    © 2016 Oculus VR, LLC.
-
-The KTX load tests are the work of Mark Callow with a few small portions borrowed
-from Sascha Willems' Vulkan examples and use Sam Lantinga's libSDL for portability.
-The source contains code
-
-    © 2013 The Khronos Group Inc.
-    © 2008 and © 2010 HI Corporation
-    © 1997-2018 Sam Lantinga
-    © 2016 Sascha Willems
-    © 2015-2018 Mark Callow
-
------------------
-
-**IMPORTANT:** Due to GitHub Markdown limitations license text has
-been copied into this file from the files named below. In the event
-of a discrepancy, the licenses in the files shall be deemed correct.
-
-## libktx Exceptions
-### etcdec.cxx
-
-etcdec.cxx is made available under the terms and conditions of the following
-License Agreement.
-
-Software License Agreement
-
-PLEASE REVIEW THE FOLLOWING TERMS AND CONDITIONS PRIOR TO USING THE
-ERICSSON TEXTURE COMPRESSION CODEC SOFTWARE (THE "SOFTWARE"). THE USE
-OF THE SOFTWARE IS SUBJECT TO THE TERMS AND CONDITIONS OF THE
-FOLLOWING SOFTWARE LICENSE AGREEMENT (THE "SLA"). IF YOU DO NOT ACCEPT
-SUCH TERMS AND CONDITIONS YOU MAY NOT USE THE SOFTWARE.
-
-Subject to the terms and conditions of the SLA, the licensee of the
-Software (the "Licensee") hereby, receives a non-exclusive,
-non-transferable, limited, free-of-charge, perpetual and worldwide
-license, to copy, use, distribute and modify the Software, but only
-for the purpose of developing, manufacturing, selling, using and
-distributing products including the Software in binary form, which
-products are used for compression and/or decompression according to
-the Khronos standard specifications OpenGL, OpenGL ES and
-WebGL. Notwithstanding anything of the above, Licensee may distribute
-[etcdec.cxx] in source code form provided (i) it is in unmodified
-form; and (ii) it is included in software owned by Licensee.
-
-If Licensee institutes, or threatens to institute, patent litigation
-against Ericsson or Ericsson's affiliates for using the Software for
-developing, having developed, manufacturing, having manufactured,
-selling, offer for sale, importing, using, leasing, operating,
-repairing and/or distributing products (i) within the scope of the
-Khronos framework; or (ii) using software or other intellectual
-property rights owned by Ericsson or its affiliates and provided under
-the Khronos framework, Ericsson shall have the right to terminate this
-SLA with immediate effect. Moreover, if Licensee institutes, or
-threatens to institute, patent litigation against any other licensee
-of the Software for using the Software in products within the scope of
-the Khronos framework, Ericsson shall have the right to terminate this
-SLA with immediate effect. However, should Licensee institute, or
-threaten to institute, patent litigation against any other licensee of
-the Software based on such other licensee's use of any other software
-together with the Software, then Ericsson shall have no right to
-terminate this SLA.
-
-This SLA does not transfer to Licensee any ownership to any Ericsson
-or third party intellectual property rights. All rights not expressly
-granted by Ericsson under this SLA are hereby expressly
-reserved. Furthermore, nothing in this SLA shall be construed as a
-right to use or sell products in a manner which conveys or purports to
-convey whether explicitly, by principles of implied license, or
-otherwise, any rights to any third party, under any patent of Ericsson
-or of Ericsson's affiliates covering or relating to any combination of
-the Software with any other software or product (not licensed
-hereunder) where the right applies specifically to the combination and
-not to the software or product itself.
-
-THE SOFTWARE IS PROVIDED "AS IS". ERICSSON MAKES NO REPRESENTATIONS OF
-ANY KIND, EXTENDS NO WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
-EXPRESS, IMPLIED OR STATUTORY; INCLUDING, BUT NOT LIMITED TO, EXPRESS,
-IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS OF TITLE,
-MERCHANTABILITY, SATISFACTORY QUALITY, SUITABILITY, AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
-OF THE SOFTWARE IS WITH THE LICENSEE. SHOULD THE SOFTWARE PROVE
-DEFECTIVE, THE LICENSEE ASSUMES THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION. ERICSSON MAKES NO WARRANTY THAT THE MANUFACTURE,
-SALE, OFFERING FOR SALE, DISTRIBUTION, LEASE, USE OR IMPORTATION UNDER
-THE SLA WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR OTHER
-INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND THE VALIDITY OF THE
-LICENSE AND THE SLA ARE SUBJECT TO LICENSEE'S SOLE RESPONSIBILITY TO
-MAKE SUCH DETERMINATION AND ACQUIRE SUCH LICENSES AS MAY BE NECESSARY
-WITH RESPECT TO PATENTS, COPYRIGHT AND OTHER INTELLECTUAL PROPERTY OF
-THIRD PARTIES.
-
-THE LICENSEE ACKNOWLEDGES AND ACCEPTS THAT THE SOFTWARE (I) IS NOT
-LICENSED FOR; (II) IS NOT DESIGNED FOR OR INTENDED FOR; AND (III) MAY
-NOT BE USED FOR; ANY MISSION CRITICAL APPLICATIONS SUCH AS, BUT NOT
-LIMITED TO OPERATION OF NUCLEAR OR HEALTHCARE COMPUTER SYSTEMS AND/OR
-NETWORKS, AIRCRAFT OR TRAIN CONTROL AND/OR COMMUNICATION SYSTEMS OR
-ANY OTHER COMPUTER SYSTEMS AND/OR NETWORKS OR CONTROL AND/OR
-COMMUNICATION SYSTEMS ALL IN WHICH CASE THE FAILURE OF THE SOFTWARE
-COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL, MATERIAL OR
-ENVIRONMENTAL DAMAGE. LICENSEE'S RIGHTS UNDER THIS LICENSE WILL
-TERMINATE AUTOMATICALLY AND IMMEDIATELY WITHOUT NOTICE IF LICENSEE
-FAILS TO COMPLY WITH THIS PARAGRAPH.
-
-IN NO EVENT SHALL ERICSSON BE LIABLE FOR ANY DAMAGES WHATSOEVER,
-INCLUDING BUT NOT LIMITED TO PERSONAL INJURY, ANY GENERAL, SPECIAL,
-INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING
-BUT NOT LIMITED TO LOSS OF PROFITS, BUSINESS INTERUPTIONS, OR ANY
-OTHER COMMERCIAL DAMAGES OR LOSSES, LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY THE LICENSEE OR THIRD
-PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER
-SOFTWARE) REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT, OR
-OTHERWISE), EVEN IF THE LICENSEE OR ANY OTHER PARTY HAS BEEN ADVISED
-OF THE POSSIBILITY OF SUCH DAMAGES.
-
-Licensee acknowledges that "ERICSSON ///" is the corporate trademark
-of Telefonaktiebolaget LM Ericsson and that both "Ericsson" and the
-figure "///" are important features of the trade names of
-Telefonaktiebolaget LM Ericsson. Nothing contained in these terms and
-conditions shall be deemed to grant Licensee any right, title or
-interest in the word "Ericsson" or the figure "///". No delay or
-omission by Ericsson to exercise any right or power shall impair any
-such right or power to be construed to be a waiver thereof. Consent by
-Ericsson to, or waiver of, a breach by the Licensee shall not
-constitute consent to, waiver of, or excuse for any other different or
-subsequent breach.
-
-This SLA shall be governed by the substantive law of Sweden. Any
-dispute, controversy or claim arising out of or in connection with
-this SLA, or the breach, termination or invalidity thereof, shall be
-submitted to the exclusive jurisdiction of the Swedish Courts.
-
-### uthash.h
-
-uthash.h is made available under the following revised BSD license.
-
-Copyright &copy; 2003-2010, Troy D. Hanson   http://uthash.sourceforge.net
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-## Load Tests Exceptions
-
-### icons/{ios/CommonIcons*,mac,win}/ktx_{app,document}.*
-
-These KTX application and document icons are &copy; & &trade; The Khronos Group, Inc.
-and may not be used without specific prior written permission from The Khronos Group,
-except that the ktx_app icon may be distributed in a Derived Work as the icon for
-the `glloadtests` and `vkloadtests` applications.
-
-### other_include/SDL2/*
-
-These files are part of the SDL2 source distributed by the [SDL project]
-(http://libsdl.org) under the terms of the [zlib license]
-(http://www.zlib.net/zlib_license.html).
-
-### other_include/glm
-
-OpenGL Mathematics is licensed under the [Happy Bunny (Modified MIT) License](https://github.com/g-truc/glm/blob/master/manual.md#section0)
-
-### testimages/hi_mark{,_sq}.ktx
-
-The HI logo textures are &copy; & &trade; HI Corporation and are
-provided for use only in testing the KTX loader. Any other use requires
-specific prior written permission from HI. Furthermore the name HI may
-not be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-### {VulkanMeshLoader,vulkantextoverlay}.hpp, vulkandebug.*
-
-Copyright &copy; 2016 Sascha Willems - www.saschawillems.de
-
-{VulkanMeshLoader,vulkantextoverlay}.hpp and vulkandebug.* are licensed
-under the [MIT license](http://opensource.org/licenses/MIT)
-
diff --git a/external/KTX-Software-master/NOTICE.md b/external/KTX-Software-master/NOTICE.md
deleted file mode 100644
index f0c4298..0000000
--- a/external/KTX-Software-master/NOTICE.md
+++ /dev/null
@@ -1 +0,0 @@
-LICENSE.md
\ No newline at end of file
diff --git a/external/KTX-Software-master/README.md b/external/KTX-Software-master/README.md
deleted file mode 100644
index 50953d9..0000000
--- a/external/KTX-Software-master/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-<img src="https://www.khronos.org/assets/images/api_logos/khronos.svg" width="300"/>
-
-The Official Khronos KTX Software Repository
----
-
-|                      |  master  |  incoming  |
-|----------------------| :------: | :--------: |
-| GNU/Linux, iOS & OSX | [![Build Status](https://travis-ci.org/KhronosGroup/KTX-Software.svg?branch=master)](https://travis-ci.org/KhronosGroup/KTX-Software) | [![Build Status](https://travis-ci.org/KhronosGroup/KTX-Software.svg?branch=incoming)](https://travis-ci.org/KhronosGroup/KTX-Software) |
-| Windows | [![Build status](https://ci.appveyor.com/api/projects/status/rj9bg8g2jphg3rc0/branch/master?svg=true)](https://ci.appveyor.com/project/msc-/ktx/branch/master) | [![Build status](https://ci.appveyor.com/api/projects/status/rj9bg8g2jphg3rc0/branch/incoming?svg=true)](https://ci.appveyor.com/project/msc-/ktx/branch/incoming) |
-| Documentation | [![Build status](https://codedocs.xyz/KhronosGroup/KTX-Software.svg)](https://codedocs.xyz/KhronosGroup/KTX-Software/) | - |
-
-This is the official home of the source code
-for the Khronos KTX library and tools. KTX is a lightweight file format
-for OpenGL textures, designed around how textures are loaded in OpenGL.
-
-See the Doxygen generated live documentation for
-[`master`](https://github.khronos.org/KTX-Software/)
-for API usage information.
-
-See [CONTRIBUTING](CONTRIBUTING.md) for information about contributing.
-
-See [LICENSE](LICENSE.md) for information about licensing.
-
-See [BUILDING](BUILDING.md) for information about building the code.
-
-More information about KTX and links to tools that support it can be
-found on the
-[KTX page](http://www.khronos.org/opengles/sdk/tools/KTX/) of
-the [OpenGL ES SDK](http://www.khronos.org/opengles/sdk) on
-[khronos.org](http://www.khronos.org).
-
-If you need help with using the KTX library or KTX tools, please use the
-[KTX forum](https://forums.khronos.org/forumdisplay.php/103-KTX-file-format-for-OpenGL-OpenGL-ES-and-WebGL-textures).
-To report problems use GitHub [issues](https://github.com/KhronosGroup/KTX/issues).
-
-**IMPORTANT:** you **must** install the [Git LFS](https://github.com/github/git-lfs)
-command line extension in order to fully checkout this repository after cloning. You
-need at least version 1.1.
-
-A few files have `$Date$` keywords. If you care about having the proper
-dates shown or will be generating the documentation or preparing
-distribution archives, you **must** follow the instructions below.
-
-#### <a id="kwexpansion"></a>$Date$ keyword expansion
-
-$Date$ keywords are expanded via a smudge & clean filter. To install
-the filter, issue the following commands in the root of your clone.
-
-On Unix (Linux, Mac OS X, etc.) platforms and Windows using Git for Windows'
-Git Bash or Cygwin's bash terminal:
-
-```bash
-./install-gitconfig.sh
-rm TODO.md include/ktx.h tools/toktx/toktx.cpp
-git checkout TODO.md include/ktx.h tools/toktx/toktx.cpp
-```
-
-On Windows with the Command Prompt (requires `git.exe` in a directory
-on your %PATH%):
-
-```cmd
-install-gitconfig.bat
-del TODO.md include/ktx.h tools/toktx/toktx.cpp
-git checkout TODO.md include/ktx.h tools/toktx/toktx.cpp 
-```
-
-The first command adds an [include] of the repo's `.gitconfig` to the
-local git config file `.git/config`, i.e. the one in your clone of the repo.
-`.gitconfig` contains the config of the "keyworder" filter. The remaining
-commands force a new checkout of the affected files to smudge them with the
-date. These two are unnecessary if you plan to edit these files.
-
diff --git a/external/KTX-Software-master/include/ktx.h b/external/KTX-Software-master/include/ktx.h
deleted file mode 100644
index e6c3f2a..0000000
--- a/external/KTX-Software-master/include/ktx.h
+++ /dev/null
@@ -1,845 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-#ifndef KTX_H_A55A6F00956F42F3A137C11929827FE1
-#define KTX_H_A55A6F00956F42F3A137C11929827FE1
-
-/*
- * ©2010-2018 The Khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * See the accompanying LICENSE.md for licensing details for all files in
- * the KTX library and KTX loader tests.
- */
-
-/**
- * @file
- * @~English
- *
- * @brief Declares the public functions and structures of the
- *        KTX API.
- *
- * @author Mark Callow, Edgewise Consulting and while at HI Corporation
- * @author Based on original work by Georg Kolling, Imagination Technology
- *
- * @version 3.0
- *
- * @todo Find a way so that applications do not have to define KTX_OPENGL{,_ES*}
- *       when using the library.
- */
-
-#include <stdio.h>
-#include <stdbool.h>
-
-/* To avoid including <KHR/khrplatform.h> define our own types. */
-typedef unsigned char ktx_uint8_t;
-typedef bool ktx_bool_t;
-#ifdef _MSC_VER
-typedef unsigned short ktx_uint16_t;
-typedef   signed short ktx_int16_t;
-typedef unsigned int   ktx_uint32_t;
-typedef   signed int   ktx_int32_t;
-typedef       size_t   ktx_size_t;
-#else
-#include <stdint.h>
-typedef uint16_t ktx_uint16_t;
-typedef  int16_t ktx_int16_t;
-typedef uint32_t ktx_uint32_t;
-typedef  int32_t ktx_int32_t;
-typedef   size_t ktx_size_t;
-#endif
-
-/* This will cause compilation to fail if size of uint32 != 4. */
-typedef unsigned char ktx_uint32_t_SIZE_ASSERT[sizeof(ktx_uint32_t) == 4];
-
-/*
- * This #if allows libktx to be compiled with strict c99. It avoids
- * compiler warnings or even errors when a gl.h is already included.
- * "Redefinition of (type) is a c11 feature". Obviously this doesn't help if
- * gl.h comes after. However nobody has complained about the unguarded typedefs
- * since they were introduced so this is unlikely to be a problem in practice.
- * Presumably everybody is using platform default compilers not c99 or else
- * they are using C++.
- */
-#if !defined(GL_NO_ERROR)
-  /*
-   * To avoid having to including gl.h ...
-   */
-  typedef unsigned char GLboolean;
-  typedef unsigned int GLenum;
-  typedef int GLint;
-  typedef int GLsizei;
-  typedef unsigned int GLuint;
-  typedef unsigned char GLubyte;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @~English
- * @brief Key String for standard orientation value.
- */
-#define KTX_ORIENTATION_KEY "KTXorientation"
-/**
- * @~English
- * @brief Standard format for 2D orientation value.
- */
-#define KTX_ORIENTATION2_FMT "S=%c,T=%c"
-/**
- * @~English
- * @brief Standard format for 3D orientation value.
- */
-#define KTX_ORIENTATION3_FMT "S=%c,T=%c,R=%c"
-/**
- * @~English
- * @brief Required unpack alignment
- */
-#define KTX_GL_UNPACK_ALIGNMENT 4
-    
-#define KTX_TRUE  true
-#define KTX_FALSE false
-
-/**
- * @~English
- * @brief Error codes returned by library functions.
- */
-typedef enum KTX_error_code_t {
-    KTX_SUCCESS = 0,         /*!< Operation was successful. */
-    KTX_FILE_DATA_ERROR,     /*!< The data in the file is inconsistent with the spec. */
-    KTX_FILE_OPEN_FAILED,    /*!< The target file could not be opened. */
-    KTX_FILE_OVERFLOW,       /*!< The operation would exceed the max file size. */
-    KTX_FILE_READ_ERROR,     /*!< An error occurred while reading from the file. */
-    KTX_FILE_SEEK_ERROR,     /*!< An error occurred while seeking in the file. */
-    KTX_FILE_UNEXPECTED_EOF, /*!< File does not have enough data to satisfy request. */
-    KTX_FILE_WRITE_ERROR,    /*!< An error occurred while writing to the file. */
-    KTX_GL_ERROR,            /*!< GL operations resulted in an error. */
-    KTX_INVALID_OPERATION,   /*!< The operation is not allowed in the current state. */
-    KTX_INVALID_VALUE,       /*!< A parameter value was not valid */
-    KTX_NOT_FOUND,           /*!< Requested key was not found */
-    KTX_OUT_OF_MEMORY,       /*!< Not enough memory to complete the operation. */
-    KTX_UNKNOWN_FILE_FORMAT, /*!< The file not a KTX file */
-    KTX_UNSUPPORTED_TEXTURE_TYPE, /*!< The KTX file specifies an unsupported texture type. */
-} KTX_error_code;
-
-#define KTX_IDENTIFIER_REF  { 0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A }
-#define KTX_ENDIAN_REF      (0x04030201)
-#define KTX_ENDIAN_REF_REV  (0x01020304)
-#define KTX_HEADER_SIZE     (64)
-
-/**
- * @~English
- * @brief Result codes returned by library functions.
- */
- typedef enum KTX_error_code_t ktxResult;
-
-/**
- * @class ktxHashList
- * @~English
- * @brief Opaque handle to a ktxHashList.
- */
-typedef struct ktxKVListEntry* ktxHashList;
-
-/**
- * @class ktxTexture
- * @~English
- * @brief Class representing a texture.
- *
- * ktxTextures should be created only by one of the ktxTexture_Create*
- * functions and these fields should be considered read-only.
- */
-typedef struct {
-    ktx_uint32_t glFormat; /*!< Format of the texture data, e.g., GL_RGB. */
-    ktx_uint32_t glInternalformat; /*!< Internal format of the texture data,
-                                        e.g., GL_RGB8. */
-    ktx_uint32_t glBaseInternalformat; /*!< Base format of the texture data,
-                                            e.g., GL_RGB. */
-    ktx_uint32_t glType; /*!< Type of the texture data, e.g, GL_UNSIGNED_BYTE.*/
-      ktx_bool_t isArray; /*!< KTX_TRUE if the texture is an array texture, i.e,
-                               a GL_TEXTURE_*_ARRAY target is to be used. */
-      ktx_bool_t isCubemap; /*!< KTX_TRUE if the texture is a cubemap or
-                                 cubemap array. */
-      ktx_bool_t isCompressed; /*!< KTX_TRUE if @c glInternalFormat is that of
-                                    a compressed texture. */
-      ktx_bool_t generateMipmaps; /*!< KTX_TRUE if mipmaps should be generated
-                                       for the texture by ktxTexture_GLUpload()
-                                       or ktx_Texture_VkUpload(). */
-    ktx_uint32_t baseWidth;  /*!< Width of the base level of the texture. */
-    ktx_uint32_t baseHeight; /*!< Height of the base level of the texture. */
-    ktx_uint32_t baseDepth;  /*!< Depth of the base level of the texture. */
-    ktx_uint32_t numDimensions; /*!< Number of dimensions in the texture: 1, 2
-                                     or 3. */
-    ktx_uint32_t numLevels; /*!< Number of mip levels in the texture. Should be
-                                 1, if @c generateMipmaps is KTX_TRUE. Can be
-                                 less than a full pyramid but always starts at
-                                 the base level. */
-    ktx_uint32_t numLayers; /*!< Number of array layers in the texture. */
-    ktx_uint32_t numFaces; /*!< Number of faces, 6 for cube maps, 1 otherwise.*/
-     ktxHashList kvDataHead; /*!< Head of the hash list of metadata. */
-    ktx_uint32_t kvDataLen; /*!< Length of the metadata, if it has been
-                                 extracted in its raw form, otherwise 0. */
-    ktx_uint8_t* kvData; /*!< Pointer to the metadata, if it has been extracted
-                              in its raw form, otherwise NULL. */
-      ktx_size_t dataSize; /*!< Length of the image data in bytes. */
-    ktx_uint8_t* pData; /*!< Pointer to the image data. */
-} ktxTexture;
-
-    
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Structure for passing texture information to ktxTexture_Create().
- *
- * @sa ktxTexture_Create()
- */
-typedef struct
-{
-    ktx_uint32_t glInternalformat; /*!< Internal format for the texture, e.g.,
-                                        GL_RGB8. */
-    ktx_uint32_t baseWidth;  /*!< Width of the base level of the texture. */
-    ktx_uint32_t baseHeight; /*!< Height of the base level of the texture. */
-    ktx_uint32_t baseDepth;  /*!< Depth of the base level of the texture. */
-    ktx_uint32_t numDimensions; /*!< Number of dimensions in the texture, 1, 2
-                                     or 3. */
-    ktx_uint32_t numLevels; /*!< Number of mip levels in the texture. Should be
-                                 1 if @c generateMipmaps is KTX_TRUE; */
-    ktx_uint32_t numLayers; /*!< Number of array layers in the texture. */
-    ktx_uint32_t numFaces;  /*!< Number of faces: 6 for cube maps, 1 otherwise. */
-    ktx_bool_t   isArray;  /*!< Set to KTX_TRUE if the texture is to be an
-                                array texture. Means OpenGL will use a
-                                GL_TEXTURE_*_ARRAY target. */
-    ktx_bool_t   generateMipmaps; /*!< Set to KTX_TRUE if mipmaps should be
-                                       generated for the texture when loading
-                                       into OpenGL. */
-} ktxTextureCreateInfo;
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Enum for requesting, or not, allocation of storage for images.
- *
- * @sa ktxTexture_Create()
- */
-typedef enum {
-    KTX_TEXTURE_CREATE_NO_STORAGE = 0,  /*!< Don't allocate any image storage. */
-    KTX_TEXTURE_CREATE_ALLOC_STORAGE = 1 /*!< Allocate image storage. */
-} ktxTextureCreateStorageEnum;
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Flags for requesting services during creation.
- *
- * @sa ktxTexture_CreateFrom*
- */
-enum ktxTextureCreateFlagBits {
-    KTX_TEXTURE_CREATE_NO_FLAGS = 0x00,
-    KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT = 0x01,
-                                   /*!< Load the images from the KTX source. */
-    KTX_TEXTURE_CREATE_RAW_KVDATA_BIT = 0x02,
-                                   /*!< Load the raw key-value data instead of
-                                        creating a @c ktxHashList from it. */
-    KTX_TEXTURE_CREATE_SKIP_KVDATA_BIT = 0x04
-                                   /*!< Skip any key-value data. This overrides
-                                        the RAW_KVDATA_BIT. */
-};
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Type for TextureCreateFlags parameters.
- *
- * @sa ktxTexture_CreateFrom*()
- */
-typedef ktx_uint32_t ktxTextureCreateFlags;
-
-#define KTXAPIENTRY
-#define KTXAPIENTRYP KTXAPIENTRY *
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Signature of function called by the <tt>ktxTexture_Iterate*</tt>
- *        functions to receive image data.
- *
- * The function parameters are used to pass values which change for each image.
- * Obtain values which are uniform across all images from the @c ktxTexture
- * object.
- *
- * @param [in] miplevel        MIP level from 0 to the max level which is
- *                             dependent on the texture size.
- * @param [in] face            usually 0; for cube maps, one of the 6 cube
- *                             faces in the order +X, -X, +Y, -Y, +Z, -Z,
- *                             0 to 5.
- * @param [in] width           width of the image.
- * @param [in] height          height of the image or, for 1D textures
- *                             textures, 1.
- * @param [in] depth           depth of the image or, for 1D & 2D
- *                             textures, 1.
- * @param [in] faceLodSize     number of bytes of data pointed at by
- *                             @p pixels.
- * @param [in] pixels          pointer to the image data.
- * @param [in,out] userdata    pointer for the application to pass data to and
- *                             from the callback function.
- */
-/* Don't use KTXAPIENTRYP to avoid a Doxygen bug. */
-typedef KTX_error_code (KTXAPIENTRY* PFNKTXITERCB)(int miplevel, int face,
-                                               int width, int height, int depth,
-                                               ktx_uint32_t faceLodSize,
-                                               void* pixels,
-                                               void* userdata);
-
-/*
- * See the implementation files for the full documentation of the following
- * functions.
- */
-
-/*
- * Creates an empty ktxTexture object with the characteristics described
- * by createInfo.
- */
-KTX_error_code
-ktxTexture_Create(ktxTextureCreateInfo* createInfo,
-                  ktxTextureCreateStorageEnum storageAllocation,
-                  ktxTexture** newTex);
-
-/*
- * Creates a ktxTexture from a stdio stream reading from a KTX source.
- */
-KTX_error_code
-ktxTexture_CreateFromStdioStream(FILE* stdioStream,
-                                 ktxTextureCreateFlags createFlags,
-                                 ktxTexture** newTex);
-
-/*
- * Creates a ktxTexture from a named file containing KTX data.
- */
-KTX_error_code
-ktxTexture_CreateFromNamedFile(const char* const filename,
-                               ktxTextureCreateFlags createFlags,
-                               ktxTexture** newTex);
-
-/*
- * Creates a ktxTexture from a block of memory containing KTX-formatted data.
- */
-KTX_error_code
-ktxTexture_CreateFromMemory(const ktx_uint8_t* bytes, ktx_size_t size,
-                            ktxTextureCreateFlags createFlags,
-                            ktxTexture** newTex);
-/*
- * Destroys a ktxTexture object.
- */
-void
-ktxTexture_Destroy(ktxTexture* This);
-
-/*
- * Returns a pointer to the image data of a ktxTexture object.
- */
-ktx_uint8_t*
-ktxTexture_GetData(ktxTexture* This);
-
-/*
- * Returns the offset of the image for the specified mip level, array layer
- * and face or depth slice within the image data of a ktxTexture object.
- */
-KTX_error_code
-ktxTexture_GetImageOffset(ktxTexture* This, ktx_uint32_t level,
-                          ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                          ktx_size_t* pOffset);
-
-/*
- * Returns the pitch of a row of an image at the specified level.
- * Similar to the rowPitch in a VkSubResourceLayout.
- */
- ktx_uint32_t
- ktxTexture_GetRowPitch(ktxTexture* This, ktx_uint32_t level);
-
- /*
-  * Return the element size of the texture's images.
-  */
- ktx_uint32_t
- ktxTexture_GetElementSize(ktxTexture* This);
-
-/*
- * Returns the size of all the image data of a ktxTexture object in bytes.
- */
-ktx_size_t
-ktxTexture_GetSize(ktxTexture* This);
-    
-/*
- * Returns the size of an image at the specified level.
- */
- ktx_size_t
- ktxTexture_GetImageSize(ktxTexture* This, ktx_uint32_t level);
-
-/*
- * Uploads the image data from a ktxTexture object to an OpenGL {,ES} texture
- * object.
- */
-KTX_error_code
-ktxTexture_GLUpload(ktxTexture* This, GLuint* pTexture, GLenum* pTarget,
-                    GLenum* pGlerror);
-
-/*
- * Loads the image data into a ktxTexture object from the KTX-formatted source.
- * Used when the image data was not loaded during ktxTexture_CreateFrom*.
- */
-KTX_error_code
-ktxTexture_LoadImageData(ktxTexture* This,
-                         ktx_uint8_t* pBuffer,
-                         ktx_size_t bufSize);
-
-/*
- * Iterates over the already loaded level-faces in a ktxTexture object.
- * iterCb is called for each level-face.
- */
-KTX_error_code
-ktxTexture_IterateLevelFaces(ktxTexture* super, PFNKTXITERCB iterCb,
-                             void* userdata);
-
-/*
- * Iterates over the level-faces of a ktxTexture object, loading each from
- * the KTX-formatted source then calling iterCb.
- */
-KTX_error_code
-ktxTexture_IterateLoadLevelFaces(ktxTexture* super, PFNKTXITERCB iterCb,
-                                 void* userdata);
-/*
- * Iterates over the already loaded levels in a ktxTexture object.
- * iterCb is called for each level. The data passed to iterCb
- * includes all faces for each level.
- */
-KTX_error_code
-ktxTexture_IterateLevels(ktxTexture* This, PFNKTXITERCB iterCb,
-                         void* userdata);
-
-/*
- * Sets the image for the specified level, layer & faceSlice within a
- * ktxTexture object from packed image data in memory. The destination image
- * data is padded to the KTX specified row alignment of 4, if necessary.
- */
-KTX_error_code
-ktxTexture_SetImageFromMemory(ktxTexture* This,ktx_uint32_t level,
-                              ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                              const ktx_uint8_t* src, ktx_size_t srcSize);
-
-/*
- * Sets the image for the specified level, layer & faceSlice within a
- * ktxTexture object from a stdio stream reading from a KTX source. The
- * destination image data is padded to the KTX specified row alignment of 4,
- * if necessary.
- */
-KTX_error_code
-ktxTexture_SetImageFromStdioStream(ktxTexture* This, ktx_uint32_t level,
-                                   ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                                   FILE* src, ktx_size_t srcSize);
-
-/*
- * Write a ktxTexture object to a stdio stream in KTX format.
- */
-KTX_error_code
-ktxTexture_WriteToStdioStream(ktxTexture* This, FILE* dstsstr);
-
-/*
- * Write a ktxTexture object to a named file in KTX format.
- */
-KTX_error_code
-ktxTexture_WriteToNamedFile(ktxTexture* This, const char* const dstname);
-
-/*
- * Write a ktxTexture object to a block of memory in KTX format.
- */
-KTX_error_code
-ktxTexture_WriteToMemory(ktxTexture* This,
-                         ktx_uint8_t** bytes, ktx_size_t* size);
-
-/*
- * Returns a string corresponding to a KTX error code.
- */
-const char* const ktxErrorString(KTX_error_code error);
-
-KTX_error_code ktxHashList_Create(ktxHashList** ppHl);
-void ktxHashList_Construct(ktxHashList* pHl);
-void ktxHashList_Destroy(ktxHashList* head);
-void ktxHashList_Destruct(ktxHashList* head);
-/*
- * Adds a key-value pair to a hash list.
- */
-KTX_error_code
-ktxHashList_AddKVPair(ktxHashList* pHead, const char* key,
-                      unsigned int valueLen, const void* value);
-
-/*
- * Looks up a key and returns the value.
- */
-KTX_error_code
-ktxHashList_FindValue(ktxHashList* pHead, const char* key,
-                      unsigned int* pValueLen, void** pValue);
-
-/*
- * Serializes the hash table to a block of memory suitable for
- * writing to a KTX file.
- */
-KTX_error_code
-ktxHashList_Serialize(ktxHashList* pHead,
-                      unsigned int* kvdLen, unsigned char** kvd);
-
-
-/*
- * Creates a hash table from the serialized data read from a
- * a KTX file.
- */
-KTX_error_code
-ktxHashList_Deserialize(ktxHashList* pHead, unsigned int kvdLen, void* kvd);
-    
-
-/*===========================================================*
- * For Versions 1 and 2 compatibility                        *
- *===========================================================*/
-
-/**
- * @~English
- * @deprecated Use struct ktxTexture
- * @brief Structure used by load functions to return texture dimensions
- */
-typedef struct KTX_dimensions {
-    GLsizei width;  /*!< Width in texels. */
-    GLsizei height; /*!< Height in texels. */
-    GLsizei depth;  /*!< Depth in texels. */
-} KTX_dimensions;
-
-/**
- * @~English
- * @brief Structure to pass texture information to ktxWriteKTX.
- * @deprecated Use ktxTexture_Create() and @c ktxTextureCreateInfo
- *
- * Retained for backward compatibility with Versions 1 & 2.
- */
-typedef struct KTX_texture_info
-{
-    ktx_uint32_t glType;
-    ktx_uint32_t glTypeSize;
-    ktx_uint32_t glFormat;
-    ktx_uint32_t glInternalFormat;
-    ktx_uint32_t glBaseInternalFormat;
-    ktx_uint32_t pixelWidth;
-     ktx_uint32_t pixelHeight;
-    ktx_uint32_t pixelDepth;
-    ktx_uint32_t numberOfArrayElements;
-    ktx_uint32_t numberOfFaces;
-    ktx_uint32_t numberOfMipmapLevels;
-} KTX_texture_info;
-
-/**
- * @var KTX_texture_info::glType
- * @~English
- * @brief The type of the image data.
- *
- * Values are the same as in the @p type parameter of
- * glTexImage*D. Must be 0 for compressed images.
- */
-/**
- * @var KTX_texture_info::glTypeSize;
- * @~English
- * @brief The data type size to be used in case of endianness
- *        conversion.
- *
- * This value is used in the event conversion is required when the
- * KTX file is loaded. It should be the size in bytes corresponding
- * to glType. Must be 1 for compressed images.
- */
-/**
- * @var KTX_texture_info::glFormat;
- * @~English
- * @brief The format of the image(s).
- *
- * Values are the same as in the format parameter
- * of glTexImage*D. Must be 0 for compressed images.
- */
-/**
- * @var KTX_texture_info::glInternalFormat;
- * @~English
- * @brief The internalformat of the image(s).
- *
- * Values are the same as for the internalformat parameter of
- * glTexImage*2D. Note: it will not be used when a KTX file
- * containing an uncompressed texture is loaded into OpenGL ES.
- */
-/**
- * @var KTX_texture_info::glBaseInternalFormat;
- * @~English
- * @brief The base internalformat of the image(s)
- *
- * For non-compressed textures, should be the same as glFormat.
- * For compressed textures specifies the base internal, e.g.
- * GL_RGB, GL_RGBA.
- */
-/**
- * @var KTX_texture_info::pixelWidth;
- * @~English
- * @brief Width of the image for texture level 0, in pixels.
- */
-/**
- * @var KTX_texture_info::pixelHeight;
- * @~English
- * @brief Height of the texture image for level 0, in pixels.
- *
- * Must be 0 for 1D textures.
- */
-/**
- * @var KTX_texture_info::pixelDepth;
- * @~English
- * @brief Depth of the texture image for level 0, in pixels.
- *
- * Must be 0 for 1D, 2D and cube textures.
- */
-/**
- * @var KTX_texture_info::numberOfArrayElements;
- * @~English
- * @brief The number of array elements.
- *
- * Must be 0 if not an array texture.
- */
-/**
- * @var KTX_texture_info::numberOfFaces;
- * @~English
- * @brief The number of cubemap faces.
- *
- * Must be 6 for cubemaps and cubemap arrays, 1 otherwise. Cubemap
- * faces must be provided in the order: +X, -X, +Y, -Y, +Z, -Z.
- */
-/**
- * @var KTX_texture_info::numberOfMipmapLevels;
- * @~English
- * @brief The number of mipmap levels.
- *
- * 1 for non-mipmapped texture. 0 indicates that a full mipmap pyramid should
- * be generated from level 0 at load time (this is usually not allowed for
- * compressed formats). Mipmaps must be provided in order from largest size to
- * smallest size. The first mipmap level is always level 0.
- */
-
-/**
- * @~English
- * @deprecated Use ktxTexture_Create() and @c ktxTexture_SetImageFromMemory()
- *             or ktxTexture_SetImageFromStdioStream().
- * @brief Structure used to pass image data to ktxWriteKTX.
- *
- * @sa ktxTextureCreate()
- * @sa ktxTexture_SetImageFromMemory()
- * @sa ktxTexture_SetImageFromStdioStream()
- *
- * Retained for backward compatibility with Versions 1 & 2.
- */
-typedef struct KTX_image_info {
-    GLsizei size;    /*!< Size of the image data in bytes. */
-    GLubyte* data;  /*!< Pointer to the image data. */
-} KTX_image_info;
-
-/*
- * Loads a texture from a stdio FILE.
- */
-KTX_error_code
-ktxLoadTextureF(FILE*, GLuint* pTexture, GLenum* pTarget,
-                KTX_dimensions* pDimensions, GLboolean* pIsMipmapped,
-                GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd);
-
-/*
- * Loads a texture from a KTX file on disk.
- */
-KTX_error_code
-ktxLoadTextureN(const char* const filename, GLuint* pTexture, GLenum* pTarget,
-                KTX_dimensions* pDimensions, GLboolean* pIsMipmapped,
-                GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd);
-
-/*
- * Loads a texture from a KTX file in memory.
- */
-KTX_error_code
-ktxLoadTextureM(const void* bytes, GLsizei size, GLuint* pTexture,
-                GLenum* pTarget, KTX_dimensions* pDimensions,
-                GLboolean* pIsMipmapped, GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd);
-
-/**
- * @class KTX_hash_table
- * @~English
- * @deprecated Use @c ktxHashList.
- * @brief Opaque handle to a hash table.
- */
-typedef ktxHashList* KTX_hash_table;
-
-/*
- * @deprecated Use ktxHashList_Create().
- */
-KTX_hash_table ktxHashTable_Create(void);
-
-/**
- * @~English
- * @deprecated Use ktxHashList_Destroy().
- * @brief Destroy a KTX_hash_table.
- *
- * Should be documented as a member of KTX_hash_table but a doxygen limitation
- * prevents that.
- */
-#define ktxHashTable_Destroy(a) ktxHashList_Destroy(a);
-/**
- * @~English
- * @deprecated Use ktxHashList_AddKVPair().
- * @brief Add a key-value pair to a KTX_hash_table.
- *
- * Should be documented as a member of KTX_hash_table but a doxygen limitation
- * prevents that.
- */
-#define ktxHashTable_AddKVPair(a, b, c, d) ktxHashList_AddKVPair(a, b, c, d)
-/**
- * @~English
- * @deprecated Use ktxHashList_FindValue().
- * @brief Looks up a key and returns its value.
- *
- * Should be documented as a member of KTX_hash_table but a doxygen limitation
- * prevents that.
- */
-#define ktxHashTable_FindValue(a, b, c, d) ktxHashList_FindValue(a, b, c, d)
-
-/*
- * @deprecated Use ktxHashList_Serialize().
- */
-KTX_error_code
-ktxHashTable_Serialize(KTX_hash_table This,
-                       unsigned int* kvdLen, unsigned char** kvd);
-
-/*
- * @deprecated Use ktxHashList_Deserialize().
- */
-KTX_error_code
-ktxHashTable_Deserialize(unsigned int kvdLen, void* pKvd, KTX_hash_table* pHt);
-
-/*
- * Writes a KTX file using supplied data.
- */
-KTX_error_code
-ktxWriteKTXF(FILE* dst, const KTX_texture_info* imageInfo,
-             GLsizei bytesOfKeyValueData, const void* keyValueData,
-             GLuint numImages, KTX_image_info images[]);
-
-/**
- * Writes a KTX file using supplied data.
- */
-KTX_error_code
-ktxWriteKTXN(const char* dstname, const KTX_texture_info* imageInfo,
-             GLsizei bytesOfKeyValueData, const void* keyValueData,
-             GLuint numImages, KTX_image_info images[]);
-
-/*
- * Writes a KTX file into memory using supplied data.
- */
-KTX_error_code
-ktxWriteKTXM(unsigned char** dst, GLsizei* size,
-             const KTX_texture_info* textureInfo, GLsizei bytesOfKeyValueData,
-             const void* keyValueData, GLuint numImages,
-             KTX_image_info images[]);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
-@~English
-@page libktx_history Revision History
-
-@section v6 Version 3.0
-Added:
-@li new ktxTexture object based API for reading KTX files without an OpenGL context.
-@li Vulkan loader. @#include <ktxvulkan.h> to use it.
-
-Changed:
-@li ktx.h to not depend on KHR/khrplatform.h and GL{,ES*}/gl{corearb,}.h.
-    Applications using OpenGL must now include these files themselves.
-@li ktxLoadTexture[FMN], removing the hack of loading 1D textures as 2D textures
-    when the OpenGL context does not support 1D textures.
-    KTX_UNSUPPORTED_TEXTURE_TYPE is now returned.
-
-@section v5 Version 2.0.2
-Added:
-@li Support for cubemap arrays.
-
-Changed:
-@li New build system
-
-Fixed:
-@li GitHub issue #40: failure to byte-swap key-value lengths.
-@li GitHub issue #33: returning incorrect target when loading cubemaps.
-@li GitHub PR #42: loading of texture arrays.
-@li GitHub PR #41: compilation error when KTX_OPENGL_ES2=1 defined.
-@li GitHub issue #39: stack-buffer-overflow in toktx
-@li Don't use GL_EXTENSIONS on recent OpenGL versions.
-
-@section v4 Version 2.0.1
-Added:
-@li CMake build files. Thanks to Pavel Rotjberg for the initial version.
-
-Changed:
-@li ktxWriteKTXF to check the validity of the type & format combinations
-    passed to it.
-
-Fixed:
-@li Public Bugzilla <a href="http://www.khronos.org/bugzilla/show_bug.cgi?id=999">999</a>: 16-bit luminance texture cannot be written.
-@li compile warnings from compilers stricter than MS Visual C++. Thanks to
-    Pavel Rotjberg.
-
-@section v3 Version 2.0
-Added:
-@li support for decoding ETC2 and EAC formats in the absence of a hardware
-    decoder.
-@li support for converting textures with legacy LUMINANCE, LUMINANCE_ALPHA,
-    etc. formats to the equivalent R, RG, etc. format with an
-    appropriate swizzle, when loading in OpenGL Core Profile contexts.
-@li ktxErrorString function to return a string corresponding to an error code.
-@li tests for ktxLoadTexture[FN] that run under OpenGL ES 3.0 and OpenGL 3.3.
-    The latter includes an EGL on WGL wrapper that makes porting apps between
-    OpenGL ES and OpenGL easier on Windows.
-@li more texture formats to ktxLoadTexture[FN] and toktx tests.
-
-Changed:
-@li ktxLoadTexture[FMN] to discover the capabilities of the GL context at
-    run time and load textures, or not, according to those capabilities.
-
-Fixed:
-@li failure of ktxWriteKTXF to pad image rows to 4 bytes as required by the KTX
-    format.
-@li ktxWriteKTXF exiting with KTX_FILE_WRITE_ERROR when attempting to write
-    more than 1 byte of face-LOD padding.
-
-Although there is only a very minor API change, the addition of ktxErrorString,
-the functional changes are large enough to justify bumping the major revision
-number.
-
-@section v2 Version 1.0.1
-Implemented ktxLoadTextureM.
-Fixed the following:
-@li Public Bugzilla <a href="http://www.khronos.org/bugzilla/show_bug.cgi?id=571">571</a>: crash when null passed for pIsMipmapped.
-@li Public Bugzilla <a href="http://www.khronos.org/bugzilla/show_bug.cgi?id=572">572</a>: memory leak when unpacking ETC textures.
-@li Public Bugzilla <a href="http://www.khronos.org/bugzilla/show_bug.cgi?id=573">573</a>: potential crash when unpacking ETC textures with unused padding pixels.
-@li Public Bugzilla <a href="http://www.khronos.org/bugzilla/show_bug.cgi?id=576">576</a>: various small fixes.
-
-Thanks to Krystian Bigaj for the ktxLoadTextureM implementation and these fixes.
-
-@section v1 Version 1.0
-Initial release.
-
-*/
-
-#endif /* KTX_H_A55A6F00956F42F3A137C11929827FE1 */
diff --git a/external/KTX-Software-master/lib/checkheader.c b/external/KTX-Software-master/lib/checkheader.c
deleted file mode 100644
index e46e7b7..0000000
--- a/external/KTX-Software-master/lib/checkheader.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: df002b39ae6b9b3b995e7633ff96acf0d285edcc $ */
-
-/*
- * ©2010-2018 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file checkheader.c
- * @~English
- *
- * @brief Function to verify a KTX file header
- *
- * @author Mark Callow, HI Corporation
- */
-
-/*
- * Author: Georg Kolling, Imagination Technology with modifications
- * by Mark Callow, HI Corporation.
- */
-#include <assert.h>
-#include <string.h>
-
-#include "ktx.h"
-#include "ktxint.h"
-
-/**
- * @internal
- * @~English
- * @brief Check a KTX file header.
- *
- * As well as checking that the header identifies a KTX file, the function
- * sanity checks the values and returns information about the texture in a
- * struct KTX_supplementary_info.
- *
- * @param pHeader   pointer to the KTX header to check
- * @param pSuppInfo pointer to a KTX_supplementary_info structure in which to
- *                  return information about the texture.
- * 
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation
- */
-KTX_error_code _ktxCheckHeader(KTX_header* pHeader,
-                               KTX_supplemental_info* pSuppInfo)
-{
-    ktx_uint8_t identifier_reference[12] = KTX_IDENTIFIER_REF;
-    ktx_uint32_t max_dim;
-    
-    assert(pHeader != NULL && pSuppInfo != NULL);
-
-    /* Compare identifier, is this a KTX file? */
-    if (memcmp(pHeader->identifier, identifier_reference, 12) != 0)
-    {
-        return KTX_UNKNOWN_FILE_FORMAT;
-    }
-
-    if (pHeader->endianness == KTX_ENDIAN_REF_REV)
-    {
-        /* Convert endianness of pHeader fields. */
-        _ktxSwapEndian32(&pHeader->glType, 12);
-
-        if (pHeader->glTypeSize != 1 &&
-            pHeader->glTypeSize != 2 &&
-            pHeader->glTypeSize != 4)
-        {
-            /* Only 8-, 16-, and 32-bit types supported so far. */
-            return KTX_FILE_DATA_ERROR;
-        }
-    }
-    else if (pHeader->endianness != KTX_ENDIAN_REF)
-    {
-        return KTX_FILE_DATA_ERROR;
-    }
-
-    /* Check glType and glFormat */
-    pSuppInfo->compressed = 0;
-    if (pHeader->glType == 0 || pHeader->glFormat == 0)
-    {
-        if (pHeader->glType + pHeader->glFormat != 0)
-        {
-            /* either both or none of glType, glFormat must be zero */
-            return KTX_FILE_DATA_ERROR;
-        }
-        pSuppInfo->compressed = 1;
-    }
-    
-    if (pHeader->glFormat == pHeader->glInternalformat) {
-        // glInternalFormat is either unsized (which is no longer and should
-        // never have been supported by libktx) or glFormat is sized.
-        return KTX_FILE_DATA_ERROR;
-    }
-
-    /* Check texture dimensions. KTX files can store 8 types of textures:
-       1D, 2D, 3D, cube, and array variants of these. There is currently
-       no GL extension for 3D array textures. */
-    if ((pHeader->pixelWidth == 0) ||
-        (pHeader->pixelDepth > 0 && pHeader->pixelHeight == 0))
-    {
-        /* texture must have width */
-        /* texture must have height if it has depth */
-        return KTX_FILE_DATA_ERROR; 
-    }
-
-    
-    if (pHeader->pixelDepth > 0)
-    {
-        if (pHeader->numberOfArrayElements > 0)
-        {
-            /* No 3D array textures yet. */
-            return KTX_UNSUPPORTED_TEXTURE_TYPE;
-        }
-        pSuppInfo->textureDimension = 3;
-    }
-    else if (pHeader->pixelHeight > 0)
-    {
-        pSuppInfo->textureDimension = 2;
-    }
-    else
-    {
-        pSuppInfo->textureDimension = 1;
-    }
-
-    if (pHeader->numberOfFaces == 6)
-    {
-        if (pSuppInfo->textureDimension != 2)
-        {
-            /* cube map needs 2D faces */
-            return KTX_FILE_DATA_ERROR;
-        }
-    }
-    else if (pHeader->numberOfFaces != 1)
-    {
-        /* numberOfFaces must be either 1 or 6 */
-        return KTX_FILE_DATA_ERROR;
-    }
-    
-    /* Check number of mipmap levels */
-    if (pHeader->numberOfMipmapLevels == 0)
-    {
-        pSuppInfo->generateMipmaps = 1;
-        pHeader->numberOfMipmapLevels = 1;
-    }
-    else
-    {
-        pSuppInfo->generateMipmaps = 0;
-    }
-
-    /* This test works for arrays too because height or depth will be 0. */
-    max_dim = MAX(MAX(pHeader->pixelWidth, pHeader->pixelHeight), pHeader->pixelDepth);
-    if (max_dim < ((ktx_uint32_t)1 << (pHeader->numberOfMipmapLevels - 1)))
-    {
-        /* Can't have more mip levels than 1 + log2(max(width, height, depth)) */
-        return KTX_FILE_DATA_ERROR;
-    }
-
-    return KTX_SUCCESS;
-}
diff --git a/external/KTX-Software-master/lib/errstr.c b/external/KTX-Software-master/lib/errstr.c
deleted file mode 100644
index bf6a695..0000000
--- a/external/KTX-Software-master/lib/errstr.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: 11f526c2587823b49cde3b437746e95b57e3200e $ */
-
-/*
- * ©2010-2018 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file errstr.c
- * @~English
- *
- * @brief Function to return a string corresponding to a KTX error code.
- *
- * @author Mark Callow, HI Corporation
- */
-
-#include "ktx.h"
-
-static const char* const errorStrings[] = {
-    "Operation succeeded",                            /* KTX_SUCCESS */
-    "File data is inconsistent with KTX spec.",       /* KTX_FILE_DATA_ERROR */
-    "File open failed",                               /* KTX_FILE_OPEN_FAILED */
-    "Operation would exceed the max file size",       /* KTX_FILE_OVERFLOW */
-    "File read error",                                /* KTX_FILE_READ_ERROR */
-    "File seek error",                                /* KTX_FILE_SEEK_ERROR */
-    "File does not have enough data for request",     /* KTX_FILE_UNEXPECTED_EOF */
-    "File write error",                               /* KTX_FILE_WRITE_ERROR */
-    "GL error occurred",                              /* KTX_GL_ERROR */
-    "Operation not allowed in the current state",     /* KTX_INVALID_OPERATION */
-    "Invalid parameter value",                        /* KTX_INVALID_VALUE */
-    "Key not found",                                  /* KTX_NOT_FOUND */
-    "Out of memory",                                  /* KTX_OUT_OF_MEMORY */
-    "Not a KTX file",                                 /* KTX_UNKNOWN_FILE_FORMAT */
-    "Texture type not supported by GL context"        /* KTX_UNSUPPORTED_TEXTURE_TYPE */
-};
-static const int lastErrorCode = (sizeof(errorStrings) / sizeof(char*)) - 1;
-
-
-/**
- * @~English
- * @brief Return a string corresponding to a KTX error code.
- *
- * @param error     the error code for which to return a string
- *
- * @return pointer to the message string.
- *
- * @internal Use UTF-8 for translated message strings.
- * 
- * @author Mark Callow, HI Corporation
- */
-const char* const ktxErrorString(KTX_error_code error)
-{
-    if (error > lastErrorCode)
-        return "Unrecognized error code";
-    return errorStrings[error];
-}
diff --git a/external/KTX-Software-master/lib/etcdec.cxx b/external/KTX-Software-master/lib/etcdec.cxx
deleted file mode 100644
index 5731979..0000000
--- a/external/KTX-Software-master/lib/etcdec.cxx
+++ /dev/null
@@ -1,1845 +0,0 @@
-/*
- 
-@~English
-@page license License
- 
-@section etcdec etcdec.cxx License
- 
-etcdec.cxx is made available under the terms and conditions of the following
-License Agreement.
-
-Software License Agreement
-
-PLEASE REVIEW THE FOLLOWING TERMS AND CONDITIONS PRIOR TO USING THE
-ERICSSON TEXTURE COMPRESSION CODEC SOFTWARE (THE "SOFTWARE"). THE USE
-OF THE SOFTWARE IS SUBJECT TO THE TERMS AND CONDITIONS OF THE
-FOLLOWING SOFTWARE LICENSE AGREEMENT (THE "SLA"). IF YOU DO NOT ACCEPT
-SUCH TERMS AND CONDITIONS YOU MAY NOT USE THE SOFTWARE.
-
-Subject to the terms and conditions of the SLA, the licensee of the
-Software (the "Licensee") hereby, receives a non-exclusive,
-non-transferable, limited, free-of-charge, perpetual and worldwide
-license, to copy, use, distribute and modify the Software, but only
-for the purpose of developing, manufacturing, selling, using and
-distributing products including the Software in binary form, which
-products are used for compression and/or decompression according to
-the Khronos standard specifications OpenGL, OpenGL ES and
-WebGL. Notwithstanding anything of the above, Licensee may distribute
-[etcdec.cxx] in source code form provided (i) it is in unmodified
-form; and (ii) it is included in software owned by Licensee.
-
-If Licensee institutes, or threatens to institute, patent litigation
-against Ericsson or Ericsson's affiliates for using the Software for
-developing, having developed, manufacturing, having manufactured,
-selling, offer for sale, importing, using, leasing, operating,
-repairing and/or distributing products (i) within the scope of the
-Khronos framework; or (ii) using software or other intellectual
-property rights owned by Ericsson or its affiliates and provided under
-the Khronos framework, Ericsson shall have the right to terminate this
-SLA with immediate effect. Moreover, if Licensee institutes, or
-threatens to institute, patent litigation against any other licensee
-of the Software for using the Software in products within the scope of
-the Khronos framework, Ericsson shall have the right to terminate this
-SLA with immediate effect. However, should Licensee institute, or
-threaten to institute, patent litigation against any other licensee of
-the Software based on such other licensee's use of any other software
-together with the Software, then Ericsson shall have no right to
-terminate this SLA.
-
-This SLA does not transfer to Licensee any ownership to any Ericsson
-or third party intellectual property rights. All rights not expressly
-granted by Ericsson under this SLA are hereby expressly
-reserved. Furthermore, nothing in this SLA shall be construed as a
-right to use or sell products in a manner which conveys or purports to
-convey whether explicitly, by principles of implied license, or
-otherwise, any rights to any third party, under any patent of Ericsson
-or of Ericsson's affiliates covering or relating to any combination of
-the Software with any other software or product (not licensed
-hereunder) where the right applies specifically to the combination and
-not to the software or product itself.
-
-THE SOFTWARE IS PROVIDED "AS IS". ERICSSON MAKES NO REPRESENTATIONS OF
-ANY KIND, EXTENDS NO WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
-EXPRESS, IMPLIED OR STATUTORY; INCLUDING, BUT NOT LIMITED TO, EXPRESS,
-IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS OF TITLE,
-MERCHANTABILITY, SATISFACTORY QUALITY, SUITABILITY, AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
-OF THE SOFTWARE IS WITH THE LICENSEE. SHOULD THE SOFTWARE PROVE
-DEFECTIVE, THE LICENSEE ASSUMES THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION. ERICSSON MAKES NO WARRANTY THAT THE MANUFACTURE,
-SALE, OFFERING FOR SALE, DISTRIBUTION, LEASE, USE OR IMPORTATION UNDER
-THE SLA WILL BE FREE FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR OTHER
-INTELLECTUAL PROPERTY RIGHTS OF OTHERS, AND THE VALIDITY OF THE
-LICENSE AND THE SLA ARE SUBJECT TO LICENSEE'S SOLE RESPONSIBILITY TO
-MAKE SUCH DETERMINATION AND ACQUIRE SUCH LICENSES AS MAY BE NECESSARY
-WITH RESPECT TO PATENTS, COPYRIGHT AND OTHER INTELLECTUAL PROPERTY OF
-THIRD PARTIES.
-
-THE LICENSEE ACKNOWLEDGES AND ACCEPTS THAT THE SOFTWARE (I) IS NOT
-LICENSED FOR; (II) IS NOT DESIGNED FOR OR INTENDED FOR; AND (III) MAY
-NOT BE USED FOR; ANY MISSION CRITICAL APPLICATIONS SUCH AS, BUT NOT
-LIMITED TO OPERATION OF NUCLEAR OR HEALTHCARE COMPUTER SYSTEMS AND/OR
-NETWORKS, AIRCRAFT OR TRAIN CONTROL AND/OR COMMUNICATION SYSTEMS OR
-ANY OTHER COMPUTER SYSTEMS AND/OR NETWORKS OR CONTROL AND/OR
-COMMUNICATION SYSTEMS ALL IN WHICH CASE THE FAILURE OF THE SOFTWARE
-COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL, MATERIAL OR
-ENVIRONMENTAL DAMAGE. LICENSEE'S RIGHTS UNDER THIS LICENSE WILL
-TERMINATE AUTOMATICALLY AND IMMEDIATELY WITHOUT NOTICE IF LICENSEE
-FAILS TO COMPLY WITH THIS PARAGRAPH.
-
-IN NO EVENT SHALL ERICSSON BE LIABLE FOR ANY DAMAGES WHATSOEVER,
-INCLUDING BUT NOT LIMITED TO PERSONAL INJURY, ANY GENERAL, SPECIAL,
-INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING
-BUT NOT LIMITED TO LOSS OF PROFITS, BUSINESS INTERUPTIONS, OR ANY
-OTHER COMMERCIAL DAMAGES OR LOSSES, LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY THE LICENSEE OR THIRD
-PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER
-SOFTWARE) REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT, OR
-OTHERWISE), EVEN IF THE LICENSEE OR ANY OTHER PARTY HAS BEEN ADVISED
-OF THE POSSIBILITY OF SUCH DAMAGES.
-
-Licensee acknowledges that "ERICSSON ///" is the corporate trademark
-of Telefonaktiebolaget LM Ericsson and that both "Ericsson" and the
-figure "///" are important features of the trade names of
-Telefonaktiebolaget LM Ericsson. Nothing contained in these terms and
-conditions shall be deemed to grant Licensee any right, title or
-interest in the word "Ericsson" or the figure "///". No delay or
-omission by Ericsson to exercise any right or power shall impair any
-such right or power to be construed to be a waiver thereof. Consent by
-Ericsson to, or waiver of, a breach by the Licensee shall not
-constitute consent to, waiver of, or excuse for any other different or
-subsequent breach.
-
-This SLA shall be governed by the substantive law of Sweden. Any
-dispute, controversy or claim arising out of or in connection with
-this SLA, or the breach, termination or invalidity thereof, shall be
-submitted to the exclusive jurisdiction of the Swedish Courts.
-
-*/
-
-//// etcpack v2.74
-//// 
-//// NO WARRANTY 
-//// 
-//// BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE THE PROGRAM IS PROVIDED
-//// "AS IS". ERICSSON MAKES NO REPRESENTATIONS OF ANY KIND, EXTENDS NO
-//// WARRANTIES OR CONDITIONS OF ANY KIND; EITHER EXPRESS, IMPLIED OR
-//// STATUTORY; INCLUDING, BUT NOT LIMITED TO, EXPRESS, IMPLIED OR
-//// STATUTORY WARRANTIES OR CONDITIONS OF TITLE, MERCHANTABILITY,
-//// SATISFACTORY QUALITY, SUITABILITY AND FITNESS FOR A PARTICULAR
-//// PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-//// PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
-//// THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ERICSSON
-//// MAKES NO WARRANTY THAT THE MANUFACTURE, SALE, OFFERING FOR SALE,
-//// DISTRIBUTION, LEASE, USE OR IMPORTATION UNDER THE LICENSE WILL BE FREE
-//// FROM INFRINGEMENT OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL
-//// PROPERTY RIGHTS OF OTHERS, AND THE VALIDITY OF THE LICENSE IS SUBJECT
-//// TO YOUR SOLE RESPONSIBILITY TO MAKE SUCH DETERMINATION AND ACQUIRE
-//// SUCH LICENSES AS MAY BE NECESSARY WITH RESPECT TO PATENTS, COPYRIGHT
-//// AND OTHER INTELLECTUAL PROPERTY OF THIRD PARTIES.
-//// 
-//// FOR THE AVOIDANCE OF DOUBT THE PROGRAM (I) IS NOT LICENSED FOR; (II)
-//// IS NOT DESIGNED FOR OR INTENDED FOR; AND (III) MAY NOT BE USED FOR;
-//// ANY MISSION CRITICAL APPLICATIONS SUCH AS, BUT NOT LIMITED TO
-//// OPERATION OF NUCLEAR OR HEALTHCARE COMPUTER SYSTEMS AND/OR NETWORKS,
-//// AIRCRAFT OR TRAIN CONTROL AND/OR COMMUNICATION SYSTEMS OR ANY OTHER
-//// COMPUTER SYSTEMS AND/OR NETWORKS OR CONTROL AND/OR COMMUNICATION
-//// SYSTEMS ALL IN WHICH CASE THE FAILURE OF THE PROGRAM COULD LEAD TO
-//// DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL, MATERIAL OR ENVIRONMENTAL
-//// DAMAGE. YOUR RIGHTS UNDER THIS LICENSE WILL TERMINATE AUTOMATICALLY
-//// AND IMMEDIATELY WITHOUT NOTICE IF YOU FAIL TO COMPLY WITH THIS
-//// PARAGRAPH.
-//// 
-//// IN NO EVENT WILL ERICSSON, BE LIABLE FOR ANY DAMAGES WHATSOEVER,
-//// INCLUDING BUT NOT LIMITED TO PERSONAL INJURY, ANY GENERAL, SPECIAL,
-//// INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN
-//// CONNECTION WITH THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
-//// NOT LIMITED TO LOSS OF PROFITS, BUSINESS INTERUPTIONS, OR ANY OTHER
-//// COMMERCIAL DAMAGES OR LOSSES, LOSS OF DATA OR DATA BEING RENDERED
-//// INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-//// THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) REGARDLESS OF THE
-//// THEORY OF LIABILITY (CONTRACT, TORT OR OTHERWISE), EVEN IF SUCH HOLDER
-//// OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-//// 
-//// (C) Ericsson AB 2013. All Rights Reserved.
-//// 
-
-#include <stdio.h>
-#include <stdlib.h>
-
-// Typedefs
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef short int16;
-
-// Macros to help with bit extraction/insertion
-#define SHIFT(size,startpos) ((startpos)-(size)+1)
-#define MASK(size, startpos) (((2<<(size-1))-1) << SHIFT(size,startpos))
-#define PUTBITS( dest, data, size, startpos) dest = ((dest & ~MASK(size, startpos)) | ((data << SHIFT(size, startpos)) & MASK(size,startpos)))
-#define SHIFTHIGH(size, startpos) (((startpos)-32)-(size)+1)
-#define MASKHIGH(size, startpos) (((1<<(size))-1) << SHIFTHIGH(size,startpos))
-#define PUTBITSHIGH(dest, data, size, startpos) dest = ((dest & ~MASKHIGH(size, startpos)) | ((data << SHIFTHIGH(size, startpos)) & MASKHIGH(size,startpos)))
-#define GETBITS(source, size, startpos)  (( (source) >> ((startpos)-(size)+1) ) & ((1<<(size)) -1))
-#define GETBITSHIGH(source, size, startpos)  (( (source) >> (((startpos)-32)-(size)+1) ) & ((1<<(size)) -1))
-#ifndef PGMOUT
-#define PGMOUT 0
-#endif
-// Thumb macros and definitions
-#define	R_BITS59T 4
-#define G_BITS59T 4
-#define	B_BITS59T 4
-#define	R_BITS58H 4
-#define G_BITS58H 4
-#define	B_BITS58H 4
-#define	MAXIMUM_ERROR (255*255*16*1000)
-#define R 0
-#define G 1
-#define B 2
-#define BLOCKHEIGHT 4
-#define BLOCKWIDTH 4
-#define BINPOW(power) (1<<(power))
-#define	TABLE_BITS_59T 3
-#define	TABLE_BITS_58H 3
-
-// Helper Macros
-#define CLAMP(ll,x,ul) (((x)<(ll)) ? (ll) : (((x)>(ul)) ? (ul) : (x)))
-#define JAS_ROUND(x) (((x) < 0.0 ) ? ((int)((x)-0.5)) : ((int)((x)+0.5)))
-
-#define RED_CHANNEL(img,width,x,y,channels)   img[channels*(y*width+x)+0]
-#define GREEN_CHANNEL(img,width,x,y,channels) img[channels*(y*width+x)+1]
-#define BLUE_CHANNEL(img,width,x,y,channels)  img[channels*(y*width+x)+2]
-#define ALPHA_CHANNEL(img,width,x,y,channels)  img[channels*(y*width+x)+3]
-
-
-// Global tables
-static uint8 table59T[8] = {3,6,11,16,23,32,41,64};  // 3-bit table for the 59 bit T-mode
-static uint8 table58H[8] = {3,6,11,16,23,32,41,64};  // 3-bit table for the 58 bit H-mode
-static int compressParams[16][4] = {{-8, -2,  2, 8}, {-8, -2,  2, 8}, {-17, -5, 5, 17}, {-17, -5, 5, 17}, {-29, -9, 9, 29}, {-29, -9, 9, 29}, {-42, -13, 13, 42}, {-42, -13, 13, 42}, {-60, -18, 18, 60}, {-60, -18, 18, 60}, {-80, -24, 24, 80}, {-80, -24, 24, 80}, {-106, -33, 33, 106}, {-106, -33, 33, 106}, {-183, -47, 47, 183}, {-183, -47, 47, 183}};
-static int unscramble[4] = {2, 3, 1, 0};
-int alphaTableInitialized = 0;
-int alphaTable[256][8];
-int alphaBase[16][4] = {	
-              {-15,-9,-6,-3},
-							{-13,-10,-7,-3},
-							{-13,-8,-5,-2},
-							{-13,-6,-4,-2},
-							{-12,-8,-6,-3},
-							{-11,-9,-7,-3},
-							{-11,-8,-7,-4},
-							{-11,-8,-5,-3},
-							{ -10,-8,-6,-2},
-							{ -10,-8,-5,-2},
-							{ -10,-8,-4,-2},
-							{ -10,-7,-5,-2},
-							{ -10,-7,-4,-3},
-							{ -10,-3,-2, -1},
-							{ -9,-8,-6,-4},
-							{ -9,-7,-5,-3}
-											};
-
-// Global variables
-int formatSigned = 0;
-
-// Enums
- enum{PATTERN_H = 0, 
-      PATTERN_T = 1};
-
-
-// Code used to create the valtab
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void setupAlphaTable() 
-{
-  if(alphaTableInitialized)
-    return;
-  alphaTableInitialized = 1;
-
-	//read table used for alpha compression
-	int buf;
-	for(int i = 16; i<32; i++) 
-	{
-		for(int j=0; j<8; j++) 
-		{
-			buf=alphaBase[i-16][3-j%4];
-			if(j<4)
-				alphaTable[i][j]=buf;
-			else
-				alphaTable[i][j]=(-buf-1);
-		}
-	}
-	
-	//beyond the first 16 values, the rest of the table is implicit.. so calculate that!
-	for(int i=0; i<256; i++) 
-	{
-		//fill remaining slots in table with multiples of the first ones.
-		int mul = i/16;
-		int old = 16+i%16;
-		for(int j = 0; j<8; j++) 
-		{
-			alphaTable[i][j]=alphaTable[old][j]*mul;
-			//note: we don't do clamping here, though we could, because we'll be clamped afterwards anyway.
-		}
-	}
-}
-
-// Read a word in big endian style
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void read_big_endian_2byte_word(unsigned short *blockadr, FILE *f)
-{
-	uint8 bytes[2];
-	unsigned short block;
-	// This is to silence -Wunused-result from GCC 4.8+.
-	size_t numitems; 
-
-	numitems = fread(&bytes[0], 1, 1, f);
-	numitems = fread(&bytes[1], 1, 1, f);
-
-	block = 0;
-	block |= bytes[0];
-	block = block << 8;
-	block |= bytes[1];
-
-	blockadr[0] = block;
-}
-
-// Read a word in big endian style
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void read_big_endian_4byte_word(unsigned int *blockadr, FILE *f)
-{
-	uint8 bytes[4];
-	unsigned int block;
-	// This is to silence -Wunused-result from GCC 4.8+.
-	size_t numitems; 
-
-	numitems = fread(&bytes[0], 1, 1, f);
-	numitems = fread(&bytes[1], 1, 1, f);
-	numitems = fread(&bytes[2], 1, 1, f);
-	numitems = fread(&bytes[3], 1, 1, f);
-
-	block = 0;
-	block |= bytes[0];
-	block = block << 8;
-	block |= bytes[1];
-	block = block << 8;
-	block |= bytes[2];
-	block = block << 8;
-	block |= bytes[3];
-
-	blockadr[0] = block;
-}
-
-// The format stores the bits for the three extra modes in a roundabout way to be able to
-// fit them without increasing the bit rate. This function converts them into something
-// that is easier to work with. 
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void unstuff57bits(unsigned int planar_word1, unsigned int planar_word2, unsigned int &planar57_word1, unsigned int &planar57_word2)
-{
-	// Get bits from twotimer configuration for 57 bits
-	// 
-	// Go to this bit layout:
-	//
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 
-	//      -----------------------------------------------------------------------------------------------
-	//     |R0               |G01G02              |B01B02  ;B03     |RH1           |RH2|GH                 |
-	//      -----------------------------------------------------------------------------------------------
-	//
-	//      31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
-	//      -----------------------------------------------------------------------------------------------
-	//     |BH               |RV               |GV                  |BV                | not used          |   
-	//      -----------------------------------------------------------------------------------------------
-	//
-	//  From this:
-	// 
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 
-	//      ------------------------------------------------------------------------------------------------
-	//     |//|R0               |G01|/|G02              |B01|/ // //|B02  |//|B03     |RH1           |df|RH2|
-	//      ------------------------------------------------------------------------------------------------
-	//
-	//      31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
-	//      -----------------------------------------------------------------------------------------------
-	//     |GH                  |BH               |RV               |GV                   |BV              |
-	//      -----------------------------------------------------------------------------------------------
-	//
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34  33  32 
-	//      ---------------------------------------------------------------------------------------------------
-	//     | base col1    | dcol 2 | base col1    | dcol 2 | base col 1   | dcol 2 | table  | table  |diff|flip|
-	//     | R1' (5 bits) | dR2    | G1' (5 bits) | dG2    | B1' (5 bits) | dB2    | cw 1   | cw 2   |bit |bit |
-	//      ---------------------------------------------------------------------------------------------------
-
-	uint8 RO, GO1, GO2, BO1, BO2, BO3, RH1, RH2, GH, BH, RV, GV, BV;
-
-	RO  = GETBITSHIGH( planar_word1, 6, 62);
-	GO1 = GETBITSHIGH( planar_word1, 1, 56);
-	GO2 = GETBITSHIGH( planar_word1, 6, 54);
-	BO1 = GETBITSHIGH( planar_word1, 1, 48);
-	BO2 = GETBITSHIGH( planar_word1, 2, 44);
-	BO3 = GETBITSHIGH( planar_word1, 3, 41);
-	RH1 = GETBITSHIGH( planar_word1, 5, 38);
-	RH2 = GETBITSHIGH( planar_word1, 1, 32);
-	GH  = GETBITS(     planar_word2, 7, 31);
-	BH  = GETBITS(     planar_word2, 6, 24);
-	RV  = GETBITS(     planar_word2, 6, 18);
-	GV  = GETBITS(     planar_word2, 7, 12);
-	BV  = GETBITS(     planar_word2, 6,  5);
-
-	planar57_word1 = 0; planar57_word2 = 0;
-	PUTBITSHIGH( planar57_word1, RO,  6, 63);
-	PUTBITSHIGH( planar57_word1, GO1, 1, 57);
-	PUTBITSHIGH( planar57_word1, GO2, 6, 56);
-	PUTBITSHIGH( planar57_word1, BO1, 1, 50);
-	PUTBITSHIGH( planar57_word1, BO2, 2, 49);
-	PUTBITSHIGH( planar57_word1, BO3, 3, 47);
-	PUTBITSHIGH( planar57_word1, RH1, 5, 44);
-	PUTBITSHIGH( planar57_word1, RH2, 1, 39);
-	PUTBITSHIGH( planar57_word1, GH, 7, 38);
-	PUTBITS(     planar57_word2, BH, 6, 31);
-	PUTBITS(     planar57_word2, RV, 6, 25);
-	PUTBITS(     planar57_word2, GV, 7, 19);
-	PUTBITS(     planar57_word2, BV, 6, 12);
-}
-
-// The format stores the bits for the three extra modes in a roundabout way to be able to
-// fit them without increasing the bit rate. This function converts them into something
-// that is easier to work with. 
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void unstuff58bits(unsigned int thumbH_word1, unsigned int thumbH_word2, unsigned int &thumbH58_word1, unsigned int &thumbH58_word2)
-{
-	// Go to this layout:
-	//
-	//     |63 62 61 60 59 58|57 56 55 54 53 52 51|50 49|48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33|32   |
-	//     |-------empty-----|part0---------------|part1|part2------------------------------------------|part3|
-	//
-	//  from this:
-	// 
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 
-	//      --------------------------------------------------------------------------------------------------|
-	//     |//|part0               |// // //|part1|//|part2                                          |df|part3|
-	//      --------------------------------------------------------------------------------------------------|
-
-	unsigned int part0, part1, part2, part3;
-
-	// move parts
-	part0 = GETBITSHIGH( thumbH_word1, 7, 62);
-	part1 = GETBITSHIGH( thumbH_word1, 2, 52);
-	part2 = GETBITSHIGH( thumbH_word1,16, 49);
-	part3 = GETBITSHIGH( thumbH_word1, 1, 32);
-	thumbH58_word1 = 0;
-	PUTBITSHIGH( thumbH58_word1, part0,  7, 57);
-	PUTBITSHIGH( thumbH58_word1, part1,  2, 50);
-	PUTBITSHIGH( thumbH58_word1, part2, 16, 48);
-	PUTBITSHIGH( thumbH58_word1, part3,  1, 32);
-
-	thumbH58_word2 = thumbH_word2;
-}
-
-// The format stores the bits for the three extra modes in a roundabout way to be able to
-// fit them without increasing the bit rate. This function converts them into something
-// that is easier to work with. 
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void unstuff59bits(unsigned int thumbT_word1, unsigned int thumbT_word2, unsigned int &thumbT59_word1, unsigned int &thumbT59_word2)
-{
-	// Get bits from twotimer configuration 59 bits. 
-	// 
-	// Go to this bit layout:
-	//
-	//     |63 62 61 60 59|58 57 56 55|54 53 52 51|50 49 48 47|46 45 44 43|42 41 40 39|38 37 36 35|34 33 32|
-	//     |----empty-----|---red 0---|--green 0--|--blue 0---|---red 1---|--green 1--|--blue 1---|--dist--|
-	//
-	//     |31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00|
-	//     |----------------------------------------index bits---------------------------------------------|
-	//
-	//
-	//  From this:
-	// 
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 
-	//      -----------------------------------------------------------------------------------------------
-	//     |// // //|R0a  |//|R0b  |G0         |B0         |R1         |G1         |B1          |da  |df|db|
-	//      -----------------------------------------------------------------------------------------------
-	//
-	//     |31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00|
-	//     |----------------------------------------index bits---------------------------------------------|
-	//
-	//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 
-	//      -----------------------------------------------------------------------------------------------
-	//     | base col1    | dcol 2 | base col1    | dcol 2 | base col 1   | dcol 2 | table  | table  |df|fp|
-	//     | R1' (5 bits) | dR2    | G1' (5 bits) | dG2    | B1' (5 bits) | dB2    | cw 1   | cw 2   |bt|bt|
-	//      ------------------------------------------------------------------------------------------------
-
-	uint8 R0a;
-
-	// Fix middle part
-	thumbT59_word1 = thumbT_word1 >> 1;
-	// Fix db (lowest bit of d)
-	PUTBITSHIGH( thumbT59_word1, thumbT_word1,  1, 32);
-	// Fix R0a (top two bits of R0)
-	R0a = GETBITSHIGH( thumbT_word1, 2, 60);
-	PUTBITSHIGH( thumbT59_word1, R0a,  2, 58);
-
-	// Zero top part (not needed)
-	PUTBITSHIGH( thumbT59_word1, 0,  5, 63);
-
-	thumbT59_word2 = thumbT_word2;
-}
-
-// The color bits are expanded to the full color
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressColor(int R_B, int G_B, int B_B, uint8 (colors_RGB444)[2][3], uint8 (colors)[2][3]) 
-{
-	// The color should be retrieved as:
-	//
-	// c = round(255/(r_bits^2-1))*comp_color
-	//
-	// This is similar to bit replication
-	// 
-	// Note -- this code only work for bit replication from 4 bits and up --- 3 bits needs
-	// two copy operations.
-
- 	colors[0][R] = (colors_RGB444[0][R] << (8 - R_B)) | (colors_RGB444[0][R] >> (R_B - (8-R_B)) );
- 	colors[0][G] = (colors_RGB444[0][G] << (8 - G_B)) | (colors_RGB444[0][G] >> (G_B - (8-G_B)) );
- 	colors[0][B] = (colors_RGB444[0][B] << (8 - B_B)) | (colors_RGB444[0][B] >> (B_B - (8-B_B)) );
- 	colors[1][R] = (colors_RGB444[1][R] << (8 - R_B)) | (colors_RGB444[1][R] >> (R_B - (8-R_B)) );
- 	colors[1][G] = (colors_RGB444[1][G] << (8 - G_B)) | (colors_RGB444[1][G] >> (G_B - (8-G_B)) );
- 	colors[1][B] = (colors_RGB444[1][B] << (8 - B_B)) | (colors_RGB444[1][B] >> (B_B - (8-B_B)) );
-}
-
-void calculatePaintColors59T(uint8 d, uint8 p, uint8 (colors)[2][3], uint8 (possible_colors)[4][3]) 
-{
-	//////////////////////////////////////////////
-	//
-	//		C3      C1		C4----C1---C2
-	//		|		|			  |
-	//		|		|			  |
-	//		|-------|			  |
-	//		|		|			  |
-	//		|		|			  |
-	//		C4      C2			  C3
-	//
-	//////////////////////////////////////////////
-
-	// C4
-	possible_colors[3][R] = CLAMP(0,colors[1][R] - table59T[d],255);
-	possible_colors[3][G] = CLAMP(0,colors[1][G] - table59T[d],255);
-	possible_colors[3][B] = CLAMP(0,colors[1][B] - table59T[d],255);
-	
-	if (p == PATTERN_T) 
-	{
-		// C3
-		possible_colors[0][R] = colors[0][R];
-		possible_colors[0][G] = colors[0][G];
-		possible_colors[0][B] = colors[0][B];
-		// C2
-		possible_colors[1][R] = CLAMP(0,colors[1][R] + table59T[d],255);
-		possible_colors[1][G] = CLAMP(0,colors[1][G] + table59T[d],255);
-		possible_colors[1][B] = CLAMP(0,colors[1][B] + table59T[d],255);
-		// C1
-		possible_colors[2][R] = colors[1][R];
-		possible_colors[2][G] = colors[1][G];
-		possible_colors[2][B] = colors[1][B];
-
-	} 
-	else 
-	{
-		printf("Invalid pattern. Terminating");
-		exit(1);
-	}
-}
-// Decompress a T-mode block (simple packing)
-// Simple 59T packing:
-//|63 62 61 60 59|58 57 56 55|54 53 52 51|50 49 48 47|46 45 44 43|42 41 40 39|38 37 36 35|34 33 32|
-//|----empty-----|---red 0---|--green 0--|--blue 0---|---red 1---|--green 1--|--blue 1---|--dist--|
-//
-//|31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00|
-//|----------------------------------------index bits---------------------------------------------|
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockTHUMB59Tc(unsigned int block_part1, unsigned int block_part2, uint8 *img,int width,int height,int startx,int starty, int channels)
-{
-	uint8 colorsRGB444[2][3];
-	uint8 colors[2][3];
-	uint8 paint_colors[4][3];
-	uint8 distance;
-	uint8 block_mask[4][4];
-
-	// First decode left part of block.
-	colorsRGB444[0][R]= GETBITSHIGH(block_part1, 4, 58);
-	colorsRGB444[0][G]= GETBITSHIGH(block_part1, 4, 54);
-	colorsRGB444[0][B]= GETBITSHIGH(block_part1, 4, 50);
-
-	colorsRGB444[1][R]= GETBITSHIGH(block_part1, 4, 46);
-	colorsRGB444[1][G]= GETBITSHIGH(block_part1, 4, 42);
-	colorsRGB444[1][B]= GETBITSHIGH(block_part1, 4, 38);
-
-	distance   = GETBITSHIGH(block_part1, TABLE_BITS_59T, 34);
-
-	// Extend the two colors to RGB888	
-	decompressColor(R_BITS59T, G_BITS59T, B_BITS59T, colorsRGB444, colors);	
-	calculatePaintColors59T(distance, PATTERN_T, colors, paint_colors);
-	
-	// Choose one of the four paint colors for each texel
-	for (uint8 x = 0; x < BLOCKWIDTH; ++x) 
-	{
-		for (uint8 y = 0; y < BLOCKHEIGHT; ++y) 
-		{
-			//block_mask[x][y] = GETBITS(block_part2,2,31-(y*4+x)*2);
-			block_mask[x][y] = GETBITS(block_part2,1,(y+x*4)+16)<<1;
-			block_mask[x][y] |= GETBITS(block_part2,1,(y+x*4));
-			img[channels*((starty+y)*width+startx+x)+R] =
-				CLAMP(0,paint_colors[block_mask[x][y]][R],255); // RED
-			img[channels*((starty+y)*width+startx+x)+G] =
-				CLAMP(0,paint_colors[block_mask[x][y]][G],255); // GREEN
-			img[channels*((starty+y)*width+startx+x)+B] =
-				CLAMP(0,paint_colors[block_mask[x][y]][B],255); // BLUE
-		}
-	}
-}
-
-void decompressBlockTHUMB59T(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty)
-{
-  decompressBlockTHUMB59Tc(block_part1, block_part2, img, width, height, startx, starty, 3);
-}
-
-// Calculate the paint colors from the block colors 
-// using a distance d and one of the H- or T-patterns.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void calculatePaintColors58H(uint8 d, uint8 p, uint8 (colors)[2][3], uint8 (possible_colors)[4][3]) 
-{
-	
-	//////////////////////////////////////////////
-	//
-	//		C3      C1		C4----C1---C2
-	//		|		|			  |
-	//		|		|			  |
-	//		|-------|			  |
-	//		|		|			  |
-	//		|		|			  |
-	//		C4      C2			  C3
-	//
-	//////////////////////////////////////////////
-
-	// C4
-	possible_colors[3][R] = CLAMP(0,colors[1][R] - table58H[d],255);
-	possible_colors[3][G] = CLAMP(0,colors[1][G] - table58H[d],255);
-	possible_colors[3][B] = CLAMP(0,colors[1][B] - table58H[d],255);
-	
-	if (p == PATTERN_H) 
-	{ 
-		// C1
-		possible_colors[0][R] = CLAMP(0,colors[0][R] + table58H[d],255);
-		possible_colors[0][G] = CLAMP(0,colors[0][G] + table58H[d],255);
-		possible_colors[0][B] = CLAMP(0,colors[0][B] + table58H[d],255);
-		// C2
-		possible_colors[1][R] = CLAMP(0,colors[0][R] - table58H[d],255);
-		possible_colors[1][G] = CLAMP(0,colors[0][G] - table58H[d],255);
-		possible_colors[1][B] = CLAMP(0,colors[0][B] - table58H[d],255);
-		// C3
-		possible_colors[2][R] = CLAMP(0,colors[1][R] + table58H[d],255);
-		possible_colors[2][G] = CLAMP(0,colors[1][G] + table58H[d],255);
-		possible_colors[2][B] = CLAMP(0,colors[1][B] + table58H[d],255);
-	} 
-	else 
-	{
-		printf("Invalid pattern. Terminating");
-		exit(1);
-	}
-}
-
-// Decompress an H-mode block 
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockTHUMB58Hc(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty, int channels)
-{
-	unsigned int col0, col1;
-	uint8 colors[2][3];
-	uint8 colorsRGB444[2][3];
-	uint8 paint_colors[4][3];
-	uint8 distance;
-	uint8 block_mask[4][4];
-	
-	// First decode left part of block.
-	colorsRGB444[0][R]= GETBITSHIGH(block_part1, 4, 57);
-	colorsRGB444[0][G]= GETBITSHIGH(block_part1, 4, 53);
-	colorsRGB444[0][B]= GETBITSHIGH(block_part1, 4, 49);
-
-	colorsRGB444[1][R]= GETBITSHIGH(block_part1, 4, 45);
-	colorsRGB444[1][G]= GETBITSHIGH(block_part1, 4, 41);
-	colorsRGB444[1][B]= GETBITSHIGH(block_part1, 4, 37);
-
-	distance = 0;
-	distance = (GETBITSHIGH(block_part1, 2, 33)) << 1;
-
-	col0 = GETBITSHIGH(block_part1, 12, 57);
-	col1 = GETBITSHIGH(block_part1, 12, 45);
-
-	if(col0 >= col1)
-	{
-		distance |= 1;
-	}
-
-	// Extend the two colors to RGB888	
-	decompressColor(R_BITS58H, G_BITS58H, B_BITS58H, colorsRGB444, colors);	
-	
-	calculatePaintColors58H(distance, PATTERN_H, colors, paint_colors);
-	
-	// Choose one of the four paint colors for each texel
-	for (uint8 x = 0; x < BLOCKWIDTH; ++x) 
-	{
-		for (uint8 y = 0; y < BLOCKHEIGHT; ++y) 
-		{
-			//block_mask[x][y] = GETBITS(block_part2,2,31-(y*4+x)*2);
-			block_mask[x][y] = GETBITS(block_part2,1,(y+x*4)+16)<<1;
-			block_mask[x][y] |= GETBITS(block_part2,1,(y+x*4));
-			img[channels*((starty+y)*width+startx+x)+R] =
-				CLAMP(0,paint_colors[block_mask[x][y]][R],255); // RED
-			img[channels*((starty+y)*width+startx+x)+G] =
-				CLAMP(0,paint_colors[block_mask[x][y]][G],255); // GREEN
-			img[channels*((starty+y)*width+startx+x)+B] =
-				CLAMP(0,paint_colors[block_mask[x][y]][B],255); // BLUE
-		}
-	}
-}
-void decompressBlockTHUMB58H(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty)
-{
-  decompressBlockTHUMB58Hc(block_part1, block_part2, img, width, height, startx, starty, 3);
-}
-
-// Decompress the planar mode.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockPlanar57c(unsigned int compressed57_1, unsigned int compressed57_2, uint8 *img, int width, int height, int startx, int starty, int channels)
-{
-	uint8 colorO[3], colorH[3], colorV[3];
-
-	colorO[0] = GETBITSHIGH( compressed57_1, 6, 63);
-	colorO[1] = GETBITSHIGH( compressed57_1, 7, 57);
-	colorO[2] = GETBITSHIGH( compressed57_1, 6, 50);
-	colorH[0] = GETBITSHIGH( compressed57_1, 6, 44);
-	colorH[1] = GETBITSHIGH( compressed57_1, 7, 38);
-	colorH[2] = GETBITS(     compressed57_2, 6, 31);
-	colorV[0] = GETBITS(     compressed57_2, 6, 25);
-	colorV[1] = GETBITS(     compressed57_2, 7, 19);
-	colorV[2] = GETBITS(     compressed57_2, 6, 12);
-
-	colorO[0] = (colorO[0] << 2) | (colorO[0] >> 4);
-	colorO[1] = (colorO[1] << 1) | (colorO[1] >> 6);
-	colorO[2] = (colorO[2] << 2) | (colorO[2] >> 4);
-
-	colorH[0] = (colorH[0] << 2) | (colorH[0] >> 4);
-	colorH[1] = (colorH[1] << 1) | (colorH[1] >> 6);
-	colorH[2] = (colorH[2] << 2) | (colorH[2] >> 4);
-
-	colorV[0] = (colorV[0] << 2) | (colorV[0] >> 4);
-	colorV[1] = (colorV[1] << 1) | (colorV[1] >> 6);
-	colorV[2] = (colorV[2] << 2) | (colorV[2] >> 4);
-
-	int xx, yy;
-
-	for( xx=0; xx<4; xx++)
-	{
-		for( yy=0; yy<4; yy++)
-		{
-			img[channels*width*(starty+yy) + channels*(startx+xx) + 0] = CLAMP(0, ((xx*(colorH[0]-colorO[0]) + yy*(colorV[0]-colorO[0]) + 4*colorO[0] + 2) >> 2),255);
-			img[channels*width*(starty+yy) + channels*(startx+xx) + 1] = CLAMP(0, ((xx*(colorH[1]-colorO[1]) + yy*(colorV[1]-colorO[1]) + 4*colorO[1] + 2) >> 2),255);
-			img[channels*width*(starty+yy) + channels*(startx+xx) + 2] = CLAMP(0, ((xx*(colorH[2]-colorO[2]) + yy*(colorV[2]-colorO[2]) + 4*colorO[2] + 2) >> 2),255);
-
-			//Equivalent method
-			/*img[channels*width*(starty+yy) + channels*(startx+xx) + 0] = (int)CLAMP(0, JAS_ROUND((xx*(colorH[0]-colorO[0])/4.0 + yy*(colorV[0]-colorO[0])/4.0 + colorO[0])), 255);
-			img[channels*width*(starty+yy) + channels*(startx+xx) + 1] = (int)CLAMP(0, JAS_ROUND((xx*(colorH[1]-colorO[1])/4.0 + yy*(colorV[1]-colorO[1])/4.0 + colorO[1])), 255);
-			img[channels*width*(starty+yy) + channels*(startx+xx) + 2] = (int)CLAMP(0, JAS_ROUND((xx*(colorH[2]-colorO[2])/4.0 + yy*(colorV[2]-colorO[2])/4.0 + colorO[2])), 255);*/
-			
-		}
-	}
-}
-void decompressBlockPlanar57(unsigned int compressed57_1, unsigned int compressed57_2, uint8 *img, int width, int height, int startx, int starty)
-{
-  decompressBlockPlanar57c(compressed57_1, compressed57_2, img, width, height, startx, starty, 3);
-}
-// Decompress an ETC1 block (or ETC2 using individual or differential mode).
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockDiffFlipC(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty, int channels)
-{
-	uint8 avg_color[3], enc_color1[3], enc_color2[3];
-	signed char diff[3];
-	int table;
-	int index,shift;
-	int r,g,b;
-	int diffbit;
-	int flipbit;
-
-	diffbit = (GETBITSHIGH(block_part1, 1, 33));
-	flipbit = (GETBITSHIGH(block_part1, 1, 32));
-
-	if( !diffbit )
-	{
-		// We have diffbit = 0.
-
-		// First decode left part of block.
-		avg_color[0]= GETBITSHIGH(block_part1, 4, 63);
-		avg_color[1]= GETBITSHIGH(block_part1, 4, 55);
-		avg_color[2]= GETBITSHIGH(block_part1, 4, 47);
-
-		// Here, we should really multiply by 17 instead of 16. This can
-		// be done by just copying the four lower bits to the upper ones
-		// while keeping the lower bits.
-		avg_color[0] |= (avg_color[0] <<4);
-		avg_color[1] |= (avg_color[1] <<4);
-		avg_color[2] |= (avg_color[2] <<4);
-
-		table = GETBITSHIGH(block_part1, 3, 39) << 1;
-
-		unsigned int pixel_indices_MSB, pixel_indices_LSB;
-			
-		pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-		pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-		if( (flipbit) == 0 )
-		{
-			// We should not flip
-			shift = 0;
-			for(int x=startx; x<startx+2; x++)
-			{
-				for(int y=starty; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-			}
-		}
-		else
-		{
-			// We should flip
-			shift = 0;
-			for(int x=startx; x<startx+4; x++)
-			{
-				for(int y=starty; y<starty+2; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-				shift+=2;
-			}
-		}
-
-		// Now decode other part of block. 
-		avg_color[0]= GETBITSHIGH(block_part1, 4, 59);
-		avg_color[1]= GETBITSHIGH(block_part1, 4, 51);
-		avg_color[2]= GETBITSHIGH(block_part1, 4, 43);
-
-		// Here, we should really multiply by 17 instead of 16. This can
-		// be done by just copying the four lower bits to the upper ones
-		// while keeping the lower bits.
-		avg_color[0] |= (avg_color[0] <<4);
-		avg_color[1] |= (avg_color[1] <<4);
-		avg_color[2] |= (avg_color[2] <<4);
-
-		table = GETBITSHIGH(block_part1, 3, 36) << 1;
-		pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-		pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-		if( (flipbit) == 0 )
-		{
-			// We should not flip
-			shift=8;
-			for(int x=startx+2; x<startx+4; x++)
-			{
-				for(int y=starty; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-			}
-		}
-		else
-		{
-			// We should flip
-			shift=2;
-			for(int x=startx; x<startx+4; x++)
-			{
-				for(int y=starty+2; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-				shift += 2;
-			}
-		}
-	}
-	else
-	{
-		// We have diffbit = 1. 
-
-//      63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34  33  32 
-//      ---------------------------------------------------------------------------------------------------
-//     | base col1    | dcol 2 | base col1    | dcol 2 | base col 1   | dcol 2 | table  | table  |diff|flip|
-//     | R1' (5 bits) | dR2    | G1' (5 bits) | dG2    | B1' (5 bits) | dB2    | cw 1   | cw 2   |bit |bit |
-//      ---------------------------------------------------------------------------------------------------
-// 
-// 
-//     c) bit layout in bits 31 through 0 (in both cases)
-// 
-//      31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3   2   1  0
-//      --------------------------------------------------------------------------------------------------
-//     |       most significant pixel index bits       |         least significant pixel index bits       |  
-//     | p| o| n| m| l| k| j| i| h| g| f| e| d| c| b| a| p| o| n| m| l| k| j| i| h| g| f| e| d| c | b | a |
-//      --------------------------------------------------------------------------------------------------      
-
-		// First decode left part of block.
-		enc_color1[0]= GETBITSHIGH(block_part1, 5, 63);
-		enc_color1[1]= GETBITSHIGH(block_part1, 5, 55);
-		enc_color1[2]= GETBITSHIGH(block_part1, 5, 47);
-
-		// Expand from 5 to 8 bits
-		avg_color[0] = (enc_color1[0] <<3) | (enc_color1[0] >> 2);
-		avg_color[1] = (enc_color1[1] <<3) | (enc_color1[1] >> 2);
-		avg_color[2] = (enc_color1[2] <<3) | (enc_color1[2] >> 2);
-
-		table = GETBITSHIGH(block_part1, 3, 39) << 1;
-
-		unsigned int pixel_indices_MSB, pixel_indices_LSB;
-			
-		pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-		pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-		if( (flipbit) == 0 )
-		{
-			// We should not flip
-			shift = 0;
-			for(int x=startx; x<startx+2; x++)
-			{
-				for(int y=starty; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-			}
-		}
-		else
-		{
-			// We should flip
-			shift = 0;
-			for(int x=startx; x<startx+4; x++)
-			{
-				for(int y=starty; y<starty+2; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-				shift+=2;
-			}
-		}
-
-		// Now decode right part of block. 
-		diff[0]= GETBITSHIGH(block_part1, 3, 58);
-		diff[1]= GETBITSHIGH(block_part1, 3, 50);
-		diff[2]= GETBITSHIGH(block_part1, 3, 42);
-
-		// Extend sign bit to entire byte. 
-		diff[0] = (diff[0] << 5);
-		diff[1] = (diff[1] << 5);
-		diff[2] = (diff[2] << 5);
-		diff[0] = diff[0] >> 5;
-		diff[1] = diff[1] >> 5;
-		diff[2] = diff[2] >> 5;
-
-		//  Calculale second color
-		enc_color2[0]= enc_color1[0] + diff[0];
-		enc_color2[1]= enc_color1[1] + diff[1];
-		enc_color2[2]= enc_color1[2] + diff[2];
-
-		// Expand from 5 to 8 bits
-		avg_color[0] = (enc_color2[0] <<3) | (enc_color2[0] >> 2);
-		avg_color[1] = (enc_color2[1] <<3) | (enc_color2[1] >> 2);
-		avg_color[2] = (enc_color2[2] <<3) | (enc_color2[2] >> 2);
-
-		table = GETBITSHIGH(block_part1, 3, 36) << 1;
-		pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-		pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-		if( (flipbit) == 0 )
-		{
-			// We should not flip
-			shift=8;
-			for(int x=startx+2; x<startx+4; x++)
-			{
-				for(int y=starty; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-			}
-		}
-		else
-		{
-			// We should flip
-			shift=2;
-			for(int x=startx; x<startx+4; x++)
-			{
-				for(int y=starty+2; y<starty+4; y++)
-				{
-					index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-					index |= ((pixel_indices_LSB >> shift) & 1);
-					shift++;
-					index=unscramble[index];
-
- 					r=RED_CHANNEL(img,width,x,y,channels)  =CLAMP(0,avg_color[0]+compressParams[table][index],255);
- 					g=GREEN_CHANNEL(img,width,x,y,channels)=CLAMP(0,avg_color[1]+compressParams[table][index],255);
- 					b=BLUE_CHANNEL(img,width,x,y,channels) =CLAMP(0,avg_color[2]+compressParams[table][index],255);
-				}
-				shift += 2;
-			}
-		}
-	}
-}
-void decompressBlockDiffFlip(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty)
-{
-  decompressBlockDiffFlipC(block_part1, block_part2, img, width, height, startx, starty, 3);
-}
-
-// Decompress an ETC2 RGB block
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockETC2c(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty, int channels)
-{
-	int diffbit;
-	signed char color1[3];
-	signed char diff[3];
-	signed char red, green, blue;
-
-	diffbit = (GETBITSHIGH(block_part1, 1, 33));
-
-	if( diffbit )
-	{
-		// We have diffbit = 1;
-
-		// Base color
-		color1[0]= GETBITSHIGH(block_part1, 5, 63);
-		color1[1]= GETBITSHIGH(block_part1, 5, 55);
-		color1[2]= GETBITSHIGH(block_part1, 5, 47);
-
-		// Diff color
-		diff[0]= GETBITSHIGH(block_part1, 3, 58);
-		diff[1]= GETBITSHIGH(block_part1, 3, 50);
-		diff[2]= GETBITSHIGH(block_part1, 3, 42);
-
-		// Extend sign bit to entire byte. 
-		diff[0] = (diff[0] << 5);
-		diff[1] = (diff[1] << 5);
-		diff[2] = (diff[2] << 5);
-		diff[0] = diff[0] >> 5;
-		diff[1] = diff[1] >> 5;
-		diff[2] = diff[2] >> 5;
-
-		red   = color1[0] + diff[0];
-		green = color1[1] + diff[1];
-		blue  = color1[2] + diff[2];
-
-		if(red < 0 || red > 31)
-		{
-			unsigned int block59_part1, block59_part2;
-			unstuff59bits(block_part1, block_part2, block59_part1, block59_part2);
-			decompressBlockTHUMB59Tc(block59_part1, block59_part2, img, width, height, startx, starty, channels);
-		}
-		else if (green < 0 || green > 31)
-		{
-			unsigned int block58_part1, block58_part2;
-			unstuff58bits(block_part1, block_part2, block58_part1, block58_part2);
-			decompressBlockTHUMB58Hc(block58_part1, block58_part2, img, width, height, startx, starty, channels);
-		}
-		else if(blue < 0 || blue > 31)
-		{
-			unsigned int block57_part1, block57_part2;
-
-			unstuff57bits(block_part1, block_part2, block57_part1, block57_part2);
-			decompressBlockPlanar57c(block57_part1, block57_part2, img, width, height, startx, starty, channels);
-		}
-		else
-		{
- 			decompressBlockDiffFlipC(block_part1, block_part2, img, width, height, startx, starty, channels);
-		}
-	}
-	else
-	{
-		// We have diffbit = 0;
-		decompressBlockDiffFlipC(block_part1, block_part2, img, width, height, startx, starty, channels);
-	}
-}
-void decompressBlockETC2(unsigned int block_part1, unsigned int block_part2, uint8 *img, int width, int height, int startx, int starty)
-{
-  decompressBlockETC2c(block_part1, block_part2, img, width, height, startx, starty, 3);
-}
-// Decompress an ETC2 block with punchthrough alpha
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockDifferentialWithAlphaC(unsigned int block_part1, unsigned int block_part2, uint8* img, uint8* alpha, int width, int height, int startx, int starty, int channelsRGB)
-{
-	
-	uint8 avg_color[3], enc_color1[3], enc_color2[3];
-	signed char diff[3];
-	int table;
-	int index,shift;
-	int r,g,b;
-	int diffbit;
-	int flipbit;
-  int channelsA;
-
-  if(channelsRGB == 3)
-  {
-    // We will decode the alpha data to a separate memory area. 
-    channelsA = 1;
-  }
-  else
-  {
-    // We will decode the RGB data and the alpha data to the same memory area, 
-    // interleaved as RGBA. 
-    channelsA = 4;
-    alpha = &img[0+3];
-  }
-
-	//the diffbit now encodes whether or not the entire alpha channel is 255.
-	diffbit = (GETBITSHIGH(block_part1, 1, 33));
- 	flipbit = (GETBITSHIGH(block_part1, 1, 32));
-
-	// First decode left part of block.
-	enc_color1[0]= GETBITSHIGH(block_part1, 5, 63);
-	enc_color1[1]= GETBITSHIGH(block_part1, 5, 55);
-	enc_color1[2]= GETBITSHIGH(block_part1, 5, 47);
-
-	// Expand from 5 to 8 bits
-	avg_color[0] = (enc_color1[0] <<3) | (enc_color1[0] >> 2);
-	avg_color[1] = (enc_color1[1] <<3) | (enc_color1[1] >> 2);
-	avg_color[2] = (enc_color1[2] <<3) | (enc_color1[2] >> 2);
-
-	table = GETBITSHIGH(block_part1, 3, 39) << 1;
-
-	unsigned int pixel_indices_MSB, pixel_indices_LSB;
-		
-	pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-	pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-	if( (flipbit) == 0 )
-	{
-		// We should not flip
-		shift = 0;
-		for(int x=startx; x<startx+2; x++)
-		{
-			for(int y=starty; y<starty+4; y++)
-			{
-				index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-				index |= ((pixel_indices_LSB >> shift) & 1);
-				shift++;
-				index=unscramble[index];
-
-				int mod = compressParams[table][index];
-				if(diffbit==0&&(index==1||index==2)) 
-				{
-					mod=0;
-				}
-				
-				r=RED_CHANNEL(img,width,x,y,channelsRGB)  =CLAMP(0,avg_color[0]+mod,255);
-				g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=CLAMP(0,avg_color[1]+mod,255);
-				b=BLUE_CHANNEL(img,width,x,y,channelsRGB) =CLAMP(0,avg_color[2]+mod,255);
-				if(diffbit==0&&index==1) 
-				{
-					alpha[(y*width+x)*channelsA]=0;
-					r=RED_CHANNEL(img,width,x,y,channelsRGB)=0;
-					g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=0;
-					b=BLUE_CHANNEL(img,width,x,y,channelsRGB)=0;
-				}
-				else 
-				{
-					alpha[(y*width+x)*channelsA]=255;
-				}
-
-			}
-		}
-	}
-	else
-	{
-		// We should flip
-		shift = 0;
-		for(int x=startx; x<startx+4; x++)
-		{
-			for(int y=starty; y<starty+2; y++)
-			{
-				index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-				index |= ((pixel_indices_LSB >> shift) & 1);
-				shift++;
-				index=unscramble[index];
-				int mod = compressParams[table][index];
-				if(diffbit==0&&(index==1||index==2)) 
-				{
-					mod=0;
-				}
-				r=RED_CHANNEL(img,width,x,y,channelsRGB)  =CLAMP(0,avg_color[0]+mod,255);
-				g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=CLAMP(0,avg_color[1]+mod,255);
-				b=BLUE_CHANNEL(img,width,x,y,channelsRGB) =CLAMP(0,avg_color[2]+mod,255);
-				if(diffbit==0&&index==1) 
-				{
-					alpha[(y*width+x)*channelsA]=0;
-					r=RED_CHANNEL(img,width,x,y,channelsRGB)=0;
-					g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=0;
-					b=BLUE_CHANNEL(img,width,x,y,channelsRGB)=0;
-				}
-				else 
-				{
-					alpha[(y*width+x)*channelsA]=255;
-				}
-			}
-			shift+=2;
-		}
-	}
-	// Now decode right part of block. 
-	diff[0]= GETBITSHIGH(block_part1, 3, 58);
-	diff[1]= GETBITSHIGH(block_part1, 3, 50);
-	diff[2]= GETBITSHIGH(block_part1, 3, 42);
-
-	// Extend sign bit to entire byte. 
-	diff[0] = (diff[0] << 5);
-	diff[1] = (diff[1] << 5);
-	diff[2] = (diff[2] << 5);
-	diff[0] = diff[0] >> 5;
-	diff[1] = diff[1] >> 5;
-	diff[2] = diff[2] >> 5;
-
-	//  Calculate second color
-	enc_color2[0]= enc_color1[0] + diff[0];
-	enc_color2[1]= enc_color1[1] + diff[1];
-	enc_color2[2]= enc_color1[2] + diff[2];
-
-	// Expand from 5 to 8 bits
-	avg_color[0] = (enc_color2[0] <<3) | (enc_color2[0] >> 2);
-	avg_color[1] = (enc_color2[1] <<3) | (enc_color2[1] >> 2);
-	avg_color[2] = (enc_color2[2] <<3) | (enc_color2[2] >> 2);
-
-	table = GETBITSHIGH(block_part1, 3, 36) << 1;
-	pixel_indices_MSB = GETBITS(block_part2, 16, 31);
-	pixel_indices_LSB = GETBITS(block_part2, 16, 15);
-
-	if( (flipbit) == 0 )
-	{
-		// We should not flip
-		shift=8;
-		for(int x=startx+2; x<startx+4; x++)
-		{
-			for(int y=starty; y<starty+4; y++)
-			{
-				index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-				index |= ((pixel_indices_LSB >> shift) & 1);
-				shift++;
-				index=unscramble[index];
-				int mod = compressParams[table][index];
-				if(diffbit==0&&(index==1||index==2)) 
-				{
-					mod=0;
-				}
-				
-				r=RED_CHANNEL(img,width,x,y,channelsRGB)  =CLAMP(0,avg_color[0]+mod,255);
-				g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=CLAMP(0,avg_color[1]+mod,255);
-				b=BLUE_CHANNEL(img,width,x,y,channelsRGB) =CLAMP(0,avg_color[2]+mod,255);
-				if(diffbit==0&&index==1) 
-				{
-					alpha[(y*width+x)*channelsA]=0;
-					r=RED_CHANNEL(img,width,x,y,channelsRGB)=0;
-					g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=0;
-					b=BLUE_CHANNEL(img,width,x,y,channelsRGB)=0;
-				}
-				else 
-				{
-					alpha[(y*width+x)*channelsA]=255;
-				}
-			}
-		}
-	}
-	else
-	{
-		// We should flip
-		shift=2;
-		for(int x=startx; x<startx+4; x++)
-		{
-			for(int y=starty+2; y<starty+4; y++)
-			{
-				index  = ((pixel_indices_MSB >> shift) & 1) << 1;
-				index |= ((pixel_indices_LSB >> shift) & 1);
-				shift++;
-				index=unscramble[index];
-				int mod = compressParams[table][index];
-				if(diffbit==0&&(index==1||index==2)) 
-				{
-					mod=0;
-				}
-				
-				r=RED_CHANNEL(img,width,x,y,channelsRGB)  =CLAMP(0,avg_color[0]+mod,255);
-				g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=CLAMP(0,avg_color[1]+mod,255);
-				b=BLUE_CHANNEL(img,width,x,y,channelsRGB) =CLAMP(0,avg_color[2]+mod,255);
-				if(diffbit==0&&index==1) 
-				{
-					alpha[(y*width+x)*channelsA]=0;
-					r=RED_CHANNEL(img,width,x,y,channelsRGB)=0;
-					g=GREEN_CHANNEL(img,width,x,y,channelsRGB)=0;
-					b=BLUE_CHANNEL(img,width,x,y,channelsRGB)=0;
-				}
-				else 
-				{
-					alpha[(y*width+x)*channelsA]=255;
-				}
-			}
-			shift += 2;
-		}
-	}
-}
-void decompressBlockDifferentialWithAlpha(unsigned int block_part1, unsigned int block_part2, uint8* img, uint8* alpha, int width, int height, int startx, int starty)
-{
-  decompressBlockDifferentialWithAlphaC(block_part1, block_part2, img, alpha, width, height, startx, starty, 3);
-}
-
-
-// similar to regular decompression, but alpha channel is set to 0 if pixel index is 2, otherwise 255.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockTHUMB59TAlphaC(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alpha, int width, int height, int startx, int starty, int channelsRGB)
-{
-
-	uint8 colorsRGB444[2][3];
-	uint8 colors[2][3];
-	uint8 paint_colors[4][3];
-	uint8 distance;
-	uint8 block_mask[4][4];
-  int channelsA;
-
-  if(channelsRGB == 3)
-  {
-    // We will decode the alpha data to a separate memory area. 
-    channelsA = 1;
-  }
-  else
-  {
-    // We will decode the RGB data and the alpha data to the same memory area, 
-    // interleaved as RGBA. 
-    channelsA = 4;
-    alpha = &img[0+3];
-  }
-
-	// First decode left part of block.
-	colorsRGB444[0][R]= GETBITSHIGH(block_part1, 4, 58);
-	colorsRGB444[0][G]= GETBITSHIGH(block_part1, 4, 54);
-	colorsRGB444[0][B]= GETBITSHIGH(block_part1, 4, 50);
-
-	colorsRGB444[1][R]= GETBITSHIGH(block_part1, 4, 46);
-	colorsRGB444[1][G]= GETBITSHIGH(block_part1, 4, 42);
-	colorsRGB444[1][B]= GETBITSHIGH(block_part1, 4, 38);
-
-	distance   = GETBITSHIGH(block_part1, TABLE_BITS_59T, 34);
-
-	// Extend the two colors to RGB888	
-	decompressColor(R_BITS59T, G_BITS59T, B_BITS59T, colorsRGB444, colors);	
-	calculatePaintColors59T(distance, PATTERN_T, colors, paint_colors);
-	
-	// Choose one of the four paint colors for each texel
-	for (uint8 x = 0; x < BLOCKWIDTH; ++x) 
-	{
-		for (uint8 y = 0; y < BLOCKHEIGHT; ++y) 
-		{
-			//block_mask[x][y] = GETBITS(block_part2,2,31-(y*4+x)*2);
-			block_mask[x][y] = GETBITS(block_part2,1,(y+x*4)+16)<<1;
-			block_mask[x][y] |= GETBITS(block_part2,1,(y+x*4));
-			img[channelsRGB*((starty+y)*width+startx+x)+R] = 
-				CLAMP(0,paint_colors[block_mask[x][y]][R],255); // RED
-			img[channelsRGB*((starty+y)*width+startx+x)+G] =
-				CLAMP(0,paint_colors[block_mask[x][y]][G],255); // GREEN
-			img[channelsRGB*((starty+y)*width+startx+x)+B] =
-				CLAMP(0,paint_colors[block_mask[x][y]][B],255); // BLUE
-			if(block_mask[x][y]==2)  
-			{
-				alpha[channelsA*(x+startx+(y+starty)*width)]=0;
-				img[channelsRGB*((starty+y)*width+startx+x)+R] =0;
-				img[channelsRGB*((starty+y)*width+startx+x)+G] =0;
-				img[channelsRGB*((starty+y)*width+startx+x)+B] =0;
-			}
-			else
-				alpha[channelsA*(x+startx+(y+starty)*width)]=255;
-		}
-	}
-}
-void decompressBlockTHUMB59TAlpha(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alpha, int width, int height, int startx, int starty)
-{
-  decompressBlockTHUMB59TAlphaC(block_part1, block_part2, img, alpha, width, height, startx, starty, 3);
-}
-
-
-// Decompress an H-mode block with alpha
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockTHUMB58HAlphaC(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alpha, int width, int height, int startx, int starty, int channelsRGB)
-{
-	unsigned int col0, col1;
-	uint8 colors[2][3];
-	uint8 colorsRGB444[2][3];
-	uint8 paint_colors[4][3];
-	uint8 distance;
-	uint8 block_mask[4][4];
-  int channelsA;	
-
-  if(channelsRGB == 3)
-  {
-    // We will decode the alpha data to a separate memory area. 
-    channelsA = 1;
-  }
-  else
-  {
-    // We will decode the RGB data and the alpha data to the same memory area, 
-    // interleaved as RGBA. 
-    channelsA = 4;
-    alpha = &img[0+3];
-  }
-
-	// First decode left part of block.
-	colorsRGB444[0][R]= GETBITSHIGH(block_part1, 4, 57);
-	colorsRGB444[0][G]= GETBITSHIGH(block_part1, 4, 53);
-	colorsRGB444[0][B]= GETBITSHIGH(block_part1, 4, 49);
-
-	colorsRGB444[1][R]= GETBITSHIGH(block_part1, 4, 45);
-	colorsRGB444[1][G]= GETBITSHIGH(block_part1, 4, 41);
-	colorsRGB444[1][B]= GETBITSHIGH(block_part1, 4, 37);
-
-  distance = 0;
-	distance = (GETBITSHIGH(block_part1, 2, 33)) << 1;
-
-	col0 = GETBITSHIGH(block_part1, 12, 57);
-	col1 = GETBITSHIGH(block_part1, 12, 45);
-
-	if(col0 >= col1)
-	{
-		distance |= 1;
-	}
-
-	// Extend the two colors to RGB888	
-	decompressColor(R_BITS58H, G_BITS58H, B_BITS58H, colorsRGB444, colors);	
-	
-	calculatePaintColors58H(distance, PATTERN_H, colors, paint_colors);
-	
-	// Choose one of the four paint colors for each texel
-	for (uint8 x = 0; x < BLOCKWIDTH; ++x) 
-	{
-		for (uint8 y = 0; y < BLOCKHEIGHT; ++y) 
-		{
-			//block_mask[x][y] = GETBITS(block_part2,2,31-(y*4+x)*2);
-			block_mask[x][y] = GETBITS(block_part2,1,(y+x*4)+16)<<1;
-			block_mask[x][y] |= GETBITS(block_part2,1,(y+x*4));
-			img[channelsRGB*((starty+y)*width+startx+x)+R] =
-				CLAMP(0,paint_colors[block_mask[x][y]][R],255); // RED
-			img[channelsRGB*((starty+y)*width+startx+x)+G] =
-				CLAMP(0,paint_colors[block_mask[x][y]][G],255); // GREEN
-			img[channelsRGB*((starty+y)*width+startx+x)+B] =
-				CLAMP(0,paint_colors[block_mask[x][y]][B],255); // BLUE
-			
-			if(block_mask[x][y]==2)  
-			{
-				alpha[channelsA*(x+startx+(y+starty)*width)]=0;
-				img[channelsRGB*((starty+y)*width+startx+x)+R] =0;
-				img[channelsRGB*((starty+y)*width+startx+x)+G] =0;
-				img[channelsRGB*((starty+y)*width+startx+x)+B] =0;
-			}
-			else
-				alpha[channelsA*(x+startx+(y+starty)*width)]=255;
-		}
-	}
-}
-void decompressBlockTHUMB58HAlpha(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alpha, int width, int height, int startx, int starty)
-{
-  decompressBlockTHUMB58HAlphaC(block_part1, block_part2, img, alpha, width, height, startx, starty, 3);
-}
-// Decompression function for ETC2_RGBA1 format.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockETC21BitAlphaC(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alphaimg, int width, int height, int startx, int starty, int channelsRGB)
-{
-	int diffbit;
-	signed char color1[3];
-	signed char diff[3];
-	signed char red, green, blue;
-  int channelsA;	
-
-  if(channelsRGB == 3)
-  {
-    // We will decode the alpha data to a separate memory area. 
-    channelsA = 1;
-  }
-  else
-  {
-    // We will decode the RGB data and the alpha data to the same memory area, 
-    // interleaved as RGBA. 
-    channelsA = 4;
-    alphaimg = &img[0+3];
-  }
-
-	diffbit = (GETBITSHIGH(block_part1, 1, 33));
-
-	if( diffbit )
-	{
-		// We have diffbit = 1, meaning no transparent pixels. regular decompression.
-
-		// Base color
-		color1[0]= GETBITSHIGH(block_part1, 5, 63);
-		color1[1]= GETBITSHIGH(block_part1, 5, 55);
-		color1[2]= GETBITSHIGH(block_part1, 5, 47);
-
-		// Diff color
-		diff[0]= GETBITSHIGH(block_part1, 3, 58);
-		diff[1]= GETBITSHIGH(block_part1, 3, 50);
-		diff[2]= GETBITSHIGH(block_part1, 3, 42);
-
-		// Extend sign bit to entire byte. 
-		diff[0] = (diff[0] << 5);
-		diff[1] = (diff[1] << 5);
-		diff[2] = (diff[2] << 5);
-		diff[0] = diff[0] >> 5;
-		diff[1] = diff[1] >> 5;
-		diff[2] = diff[2] >> 5;
-
-		red   = color1[0] + diff[0];
-		green = color1[1] + diff[1];
-		blue  = color1[2] + diff[2];
-
-		if(red < 0 || red > 31)
-		{
-			unsigned int block59_part1, block59_part2;
-			unstuff59bits(block_part1, block_part2, block59_part1, block59_part2);
-			decompressBlockTHUMB59Tc(block59_part1, block59_part2, img, width, height, startx, starty, channelsRGB);
-		}
-		else if (green < 0 || green > 31)
-		{
-			unsigned int block58_part1, block58_part2;
-			unstuff58bits(block_part1, block_part2, block58_part1, block58_part2);
-			decompressBlockTHUMB58Hc(block58_part1, block58_part2, img, width, height, startx, starty, channelsRGB);
-		}
-		else if(blue < 0 || blue > 31)
-		{
-			unsigned int block57_part1, block57_part2;
-
-			unstuff57bits(block_part1, block_part2, block57_part1, block57_part2);
-			decompressBlockPlanar57c(block57_part1, block57_part2, img, width, height, startx, starty, channelsRGB);
-		}
-		else
-		{
- 			decompressBlockDifferentialWithAlphaC(block_part1, block_part2, img, alphaimg, width, height, startx, starty, channelsRGB);
-		}
-		for(int x=startx; x<startx+4; x++) 
-		{
-			for(int y=starty; y<starty+4; y++) 
-			{
-				alphaimg[channelsA*(x+y*width)]=255;
-			}
-		}
-	}
-	else
-	{
-		// We have diffbit = 0, transparent pixels. Only T-, H- or regular diff-mode possible.
-		
-		// Base color
-		color1[0]= GETBITSHIGH(block_part1, 5, 63);
-		color1[1]= GETBITSHIGH(block_part1, 5, 55);
-		color1[2]= GETBITSHIGH(block_part1, 5, 47);
-
-		// Diff color
-		diff[0]= GETBITSHIGH(block_part1, 3, 58);
-		diff[1]= GETBITSHIGH(block_part1, 3, 50);
-		diff[2]= GETBITSHIGH(block_part1, 3, 42);
-
-		// Extend sign bit to entire byte. 
-		diff[0] = (diff[0] << 5);
-		diff[1] = (diff[1] << 5);
-		diff[2] = (diff[2] << 5);
-		diff[0] = diff[0] >> 5;
-		diff[1] = diff[1] >> 5;
-		diff[2] = diff[2] >> 5;
-
-		red   = color1[0] + diff[0];
-		green = color1[1] + diff[1];
-		blue  = color1[2] + diff[2];
-		if(red < 0 || red > 31)
-		{
-			unsigned int block59_part1, block59_part2;
-			unstuff59bits(block_part1, block_part2, block59_part1, block59_part2);
-			decompressBlockTHUMB59TAlphaC(block59_part1, block59_part2, img, alphaimg, width, height, startx, starty, channelsRGB);
-		}
-		else if(green < 0 || green > 31) 
-		{
-			unsigned int block58_part1, block58_part2;
-			unstuff58bits(block_part1, block_part2, block58_part1, block58_part2);
-			decompressBlockTHUMB58HAlphaC(block58_part1, block58_part2, img, alphaimg, width, height, startx, starty, channelsRGB);
-		}
-		else if(blue < 0 || blue > 31)
-		{
-			unsigned int block57_part1, block57_part2;
-
-			unstuff57bits(block_part1, block_part2, block57_part1, block57_part2);
-			decompressBlockPlanar57c(block57_part1, block57_part2, img, width, height, startx, starty, channelsRGB);
-			for(int x=startx; x<startx+4; x++) 
-			{
-				for(int y=starty; y<starty+4; y++) 
-				{
-					alphaimg[channelsA*(x+y*width)]=255;
-				}
-			}
-		}
-		else
-			decompressBlockDifferentialWithAlphaC(block_part1, block_part2, img,alphaimg, width, height, startx, starty, channelsRGB);
-	}
-}
-void decompressBlockETC21BitAlpha(unsigned int block_part1, unsigned int block_part2, uint8 *img, uint8* alphaimg, int width, int height, int startx, int starty)
-{
-  decompressBlockETC21BitAlphaC(block_part1, block_part2, img, alphaimg, width, height, startx, starty, 3);
-}
-//
-//	Utility functions used for alpha compression
-//
-
-// bit number frompos is extracted from input, and moved to bit number topos in the return value.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-uint8 getbit(uint8 input, int frompos, int topos) 
-{
-	if(frompos>topos)
-		return ((1<<frompos)&input)>>(frompos-topos);
-	return ((1<<frompos)&input)<<(topos-frompos);
-}
-
-// takes as input a value, returns the value clamped to the interval [0,255].
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-int clamp(int val) 
-{
-	if(val<0)
-		val=0;
-	if(val>255)
-		val=255;
-	return val;
-}
-
-// Decodes tha alpha component in a block coded with GL_COMPRESSED_RGBA8_ETC2_EAC.
-// Note that this decoding is slightly different from that of GL_COMPRESSED_R11_EAC.
-// However, a hardware decoder can share gates between the two formats as explained
-// in the specification under GL_COMPRESSED_R11_EAC.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockAlphaC(uint8* data, uint8* img, int width, int height, int ix, int iy, int channels) 
-{
-	int alpha = data[0];
-	int table = data[1];
-	
-	int bit=0;
-	int byte=2;
-	//extract an alpha value for each pixel.
-	for(int x=0; x<4; x++) 
-	{
-		for(int y=0; y<4; y++) 
-		{
-			//Extract table index
-			int index=0;
-			for(int bitpos=0; bitpos<3; bitpos++) 
-			{
-				index|=getbit(data[byte],7-bit,2-bitpos);
-				bit++;
-				if(bit>7) 
-				{
-					bit=0;
-					byte++;
-				}
-			}
-			img[(ix+x+(iy+y)*width)*channels]=clamp(alpha +alphaTable[table][index]);
-		}
-	}
-}
-void decompressBlockAlpha(uint8* data, uint8* img, int width, int height, int ix, int iy) 
-{
-  decompressBlockAlphaC(data, img, width, height, ix, iy, 1);
-}
-
-// Does decompression and then immediately converts from 11 bit signed to a 16-bit format.
-// 
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-int16 get16bits11signed(int base, int table, int mul, int index) 
-{
-	int elevenbase = base-128;
-	if(elevenbase==-128)
-		elevenbase=-127;
-	elevenbase*=8;
-	//i want the positive value here
-	int tabVal = -alphaBase[table][3-index%4]-1;
-	//and the sign, please
-	int sign = 1-(index/4);
-	
-	if(sign)
-		tabVal=tabVal+1;
-	int elevenTabVal = tabVal*8;
-
-	if(mul!=0)
-		elevenTabVal*=mul;
-	else
-		elevenTabVal/=8;
-
-	if(sign)
-		elevenTabVal=-elevenTabVal;
-
-	//calculate sum
-	int elevenbits = elevenbase+elevenTabVal;
-
-	//clamp..
-	if(elevenbits>=1024)
-		elevenbits=1023;
-	else if(elevenbits<-1023)
-		elevenbits=-1023;
-	//this is the value we would actually output.. 
-	//but there aren't any good 11-bit file or uncompressed GL formats
-	//so we extend to 15 bits signed.
-	sign = elevenbits<0;
-	elevenbits=abs(elevenbits);
-	int16 fifteenbits = (elevenbits<<5)+(elevenbits>>5);
-	int16 sixteenbits=fifteenbits;
-
-	if(sign)
-		sixteenbits=-sixteenbits;
-	
-	return sixteenbits;
-}
-
-// Does decompression and then immediately converts from 11 bit signed to a 16-bit format 
-// Calculates the 11 bit value represented by base, table, mul and index, and extends it to 16 bits.
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-uint16 get16bits11bits(int base, int table, int mul, int index) 
-{
-	int elevenbase = base*8+4;
-
-	//i want the positive value here
-	int tabVal = -alphaBase[table][3-index%4]-1;
-	//and the sign, please
-	int sign = 1-(index/4);
-	
-	if(sign)
-		tabVal=tabVal+1;
-	int elevenTabVal = tabVal*8;
-
-	if(mul!=0)
-		elevenTabVal*=mul;
-	else
-		elevenTabVal/=8;
-
-	if(sign)
-		elevenTabVal=-elevenTabVal;
-
-	//calculate sum
-	int elevenbits = elevenbase+elevenTabVal;
-
-	//clamp..
-	if(elevenbits>=256*8)
-		elevenbits=256*8-1;
-	else if(elevenbits<0)
-		elevenbits=0;
-	//elevenbits now contains the 11 bit alpha value as defined in the spec.
-
-	//extend to 16 bits before returning, since we don't have any good 11-bit file formats.
-	uint16 sixteenbits = (elevenbits<<5)+(elevenbits>>6);
-
-	return sixteenbits;
-}
-
-// Decompresses a block using one of the GL_COMPRESSED_R11_EAC or GL_COMPRESSED_SIGNED_R11_EAC-formats
-// NO WARRANTY --- SEE STATEMENT IN TOP OF FILE (C) Ericsson AB 2013. All Rights Reserved.
-void decompressBlockAlpha16bitC(uint8* data, uint8* img, int width, int height, int ix, int iy, int channels) 
-{
-	int alpha = data[0];
-	int table = data[1];
-
-	if(formatSigned) 
-	{
-		//if we have a signed format, the base value is given as a signed byte. We convert it to (0-255) here,
-		//so more code can be shared with the unsigned mode.
-		alpha = *((signed char*)(&data[0]));
-		alpha = alpha+128;
-	}
-
-	int bit=0;
-	int byte=2;
-	//extract an alpha value for each pixel.
-	for(int x=0; x<4; x++) 
-	{
-		for(int y=0; y<4; y++) 
-		{
-			//Extract table index
-			int index=0;
-			for(int bitpos=0; bitpos<3; bitpos++) 
-			{
-				index|=getbit(data[byte],7-bit,2-bitpos);
-				bit++;
-				if(bit>7) 
-				{
-					bit=0;
-					byte++;
-				}
-			}
-			int windex = channels*(2*(ix+x+(iy+y)*width));
-#if !PGMOUT
-			if(formatSigned)
-			{
-				*(int16 *)&img[windex] = get16bits11signed(alpha,(table%16),(table/16),index);
-			}
-			else
-			{
-				*(uint16 *)&img[windex] = get16bits11bits(alpha,(table%16),(table/16),index);
-			}
-#else
-			//make data compatible with the .pgm format. See the comment in compressBlockAlpha16() for details.
-			uint16 uSixteen;
-			if (formatSigned)
-			{
-				//the pgm-format only allows unsigned images,
-				//so we add 2^15 to get a 16-bit value.
-				uSixteen = get16bits11signed(alpha,(table%16),(table/16),index) + 256*128;
-			}
-			else
-			{
-				uSixteen = get16bits11bits(alpha,(table%16),(table/16),index);
-			}
-			//byte swap for pgm
-			img[windex] = uSixteen/256;
-			img[windex+1] = uSixteen%256;
-#endif
-
-		}
-	}			
-}
-
-void decompressBlockAlpha16bit(uint8* data, uint8* img, int width, int height, int ix, int iy)
-{
-  decompressBlockAlpha16bitC(data, img, width, height, ix, iy, 1);
-}
diff --git a/external/KTX-Software-master/lib/etcunpack.cxx b/external/KTX-Software-master/lib/etcunpack.cxx
deleted file mode 100644
index 85d0c51..0000000
--- a/external/KTX-Software-master/lib/etcunpack.cxx
+++ /dev/null
@@ -1,288 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4: */
-
-/* $Id: 764e83ee5c8febe3233114f9ebe9a9ef21d120f1 $ */
-
-/*
- * ©2010 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* @internal
- * @~English
- * @file
- *
- * Unpack a texture compressed with ETC1
- *
- * @author Mark Callow, HI Corporation.
- */
-
-#include <assert.h>
-#include <stdlib.h>
-
-#include "GL/glcorearb.h"
-// Not defined in glcorearb.h.
-#define GL_ETC1_RGB8_OES                0x8D64
-#include "ktx.h"
-#include "ktxint.h"
-
-#if SUPPORT_SOFTWARE_ETC_UNPACK
-typedef unsigned int uint;
-typedef unsigned char uint8;
-
-extern void decompressBlockETC2c(uint block_part1, uint block_part2, uint8* img,
-								 int width, int height, int startx, int starty, int channels);
-extern void decompressBlockETC21BitAlphaC(uint block_part1, uint block_part2, uint8* img, uint8* alphaimg,
-										  int width, int height, int startx, int starty, int channels);
-extern void decompressBlockAlphaC(uint8* data, uint8* img,
-								  int width, int height, int startx, int starty, int channels);
-extern void decompressBlockAlpha16bitC(uint8* data, uint8* img,
-									   int width, int height, int startx, int starty, int channels);
-
-extern void setupAlphaTable();
-
-// This global variable affects the behaviour of decompressBlockAlpha16bitC.
-extern int formatSigned;
-
-static void
-readBigEndian4byteWord(ktx_uint32_t* pBlock, const GLubyte *s)
-{
-	*pBlock = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3];
-}
-
-
-/* Unpack an ETC1_RGB8_OES format compressed texture */
-extern "C" KTX_error_code
-_ktxUnpackETC(const GLubyte* srcETC, const GLenum srcFormat,
-			  ktx_uint32_t activeWidth, ktx_uint32_t activeHeight,
-			  GLubyte** dstImage,
-			  GLenum* format, GLenum* internalFormat, GLenum* type,
-			  GLint R16Formats, GLboolean supportsSRGB)
-{
-	unsigned int width, height;
-	unsigned int block_part1, block_part2;
-	unsigned int x, y;
-	/*const*/ GLubyte* src = (GLubyte*)srcETC;
-	// AF_11BIT is used to compress R11 & RG11 though its not alpha data.
-	enum {AF_NONE, AF_1BIT, AF_8BIT, AF_11BIT} alphaFormat = AF_NONE;
-	int dstChannels, dstChannelBytes;
-
-	switch (srcFormat) {
-	  case GL_COMPRESSED_SIGNED_R11_EAC:
-		if (R16Formats & _KTX_R16_FORMATS_SNORM) {
-			dstChannelBytes = sizeof(GLshort);
-			dstChannels = 1;
-			formatSigned = GL_TRUE;
-			*internalFormat = GL_R16_SNORM;
-			*format = GL_RED;
-			*type = GL_SHORT;
-			alphaFormat = AF_11BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-		break;
-
-	  case GL_COMPRESSED_R11_EAC:
-		if (R16Formats & _KTX_R16_FORMATS_NORM) {
-			dstChannelBytes = sizeof(GLshort);
-			dstChannels = 1;
-			formatSigned = GL_FALSE;
-			*internalFormat = GL_R16;
-			*format = GL_RED;
-			*type = GL_UNSIGNED_SHORT;
-			alphaFormat = AF_11BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-        break;
-
-	  case GL_COMPRESSED_SIGNED_RG11_EAC:
-		if (R16Formats & _KTX_R16_FORMATS_SNORM) {
-			dstChannelBytes = sizeof(GLshort);
-			dstChannels = 2;
-			formatSigned = GL_TRUE;
-			*internalFormat = GL_RG16_SNORM;
-			*format = GL_RG;
-			*type = GL_SHORT;
-			alphaFormat = AF_11BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-        break;
-
-	  case GL_COMPRESSED_RG11_EAC:
-		if (R16Formats & _KTX_R16_FORMATS_NORM) {
-			dstChannelBytes = sizeof(GLshort);
-			dstChannels = 2;
-			formatSigned = GL_FALSE;
-			*internalFormat = GL_RG16;
-			*format = GL_RG;
-			*type = GL_UNSIGNED_SHORT;
-			alphaFormat = AF_11BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-        break;
-
-	  case GL_ETC1_RGB8_OES:
-	  case GL_COMPRESSED_RGB8_ETC2:
-	    dstChannelBytes = sizeof(GLubyte);
-		dstChannels = 3;
-		*internalFormat = GL_RGB8;
-		*format = GL_RGB;
-		*type = GL_UNSIGNED_BYTE;
-        break;
-
-	  case GL_COMPRESSED_RGBA8_ETC2_EAC:
-	    dstChannelBytes = sizeof(GLubyte);
-		dstChannels = 4;
-		*internalFormat = GL_RGBA8;
-		*format = GL_RGBA;
-		*type = GL_UNSIGNED_BYTE;
-	    alphaFormat = AF_8BIT;
-		break;
-
-	  case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-	    dstChannelBytes = sizeof(GLubyte);
-		dstChannels = 4;
-		*internalFormat = GL_RGBA8;
-		*format = GL_RGBA;
-		*type = GL_UNSIGNED_BYTE;
-		alphaFormat = AF_1BIT;
-        break;
-
-	  case GL_COMPRESSED_SRGB8_ETC2:
-		if (supportsSRGB) {
-			dstChannelBytes = sizeof(GLubyte);
-			dstChannels = 3;
-			*internalFormat = GL_SRGB8;
-			*format = GL_RGB;
-			*type = GL_UNSIGNED_BYTE;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-        break;
-
-	  case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
-		if (supportsSRGB) {
-			dstChannelBytes = sizeof(GLubyte);
-			dstChannels = 4;
-			*internalFormat = GL_SRGB8_ALPHA8;
- 			*format = GL_RGBA;
-			*type = GL_UNSIGNED_BYTE;
-			alphaFormat = AF_8BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-		break;
-
-	  case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-		if (supportsSRGB) {
-			dstChannelBytes = sizeof(GLubyte);
-			dstChannels = 4;
-			*internalFormat = GL_SRGB8_ALPHA8;
- 			*format = GL_RGBA;
-			*type = GL_UNSIGNED_BYTE;
-			alphaFormat = AF_1BIT;
-		} else
-			return KTX_UNSUPPORTED_TEXTURE_TYPE; 
-        break;
-
-	  default:
-	    assert(0); // Upper levels should pass only one of the above srcFormats.
-        return KTX_UNSUPPORTED_TEXTURE_TYPE; // For Release configurations.
-	}
-
-    /* active_{width,height} show how many pixels contain active data,
-	 * (the rest are just for making sure we have a 2*a x 4*b size).
-	 */
-
-	/* Compute the full width & height. */
-	width = ((activeWidth+3)/4)*4;
-	height = ((activeHeight+3)/4)*4;
-
-	/* printf("Width = %d, Height = %d\n", width, height); */
-	/* printf("active pixel area: top left %d x %d area.\n", activeWidth, activeHeight); */
-
-	*dstImage = (GLubyte*)malloc(dstChannels*dstChannelBytes*width*height);
-	if (!*dstImage) {
-		return KTX_OUT_OF_MEMORY;
-	}
-	
-	if (alphaFormat != AF_NONE)
-		setupAlphaTable();
-
-	// NOTE: none of the decompress functions actually use the <height> parameter
-	if (alphaFormat == AF_11BIT) {
-		// One or two 11-bit alpha channels for R or RG.
-		for (y=0; y < height/4; y++) {
-			for (x=0; x < width/4; x++) {
-				decompressBlockAlpha16bitC(src, *dstImage, width, height, 4*x, 4*y, dstChannels);
-				src += 8;
-				if (srcFormat == GL_COMPRESSED_RG11_EAC || srcFormat == GL_COMPRESSED_SIGNED_RG11_EAC) {
-					decompressBlockAlpha16bitC(src, *dstImage + dstChannelBytes, width, height, 4*x, 4*y, dstChannels);
-					src += 8;
-				}
-			}
-		}
-	} else {
-		for (y=0; y < height/4; y++) {
-			for (x=0; x < width/4; x++) {
-				// Decode alpha channel for RGBA
-				if (alphaFormat == AF_8BIT) {
-					decompressBlockAlphaC(src, *dstImage + 3, width, height, 4*x, 4*y, dstChannels);
-					src += 8;
-				}
-				// Decode color dstChannels
-				readBigEndian4byteWord(&block_part1, src);
-				src += 4;
-				readBigEndian4byteWord(&block_part2, src);
-				src += 4;
-				if (alphaFormat == AF_1BIT)
-				    decompressBlockETC21BitAlphaC(block_part1, block_part2, *dstImage, 0, width, height, 4*x, 4*y, dstChannels);
-				else
-				    decompressBlockETC2c(block_part1, block_part2, *dstImage, width, height, 4*x, 4*y, dstChannels);
-			}
-		}
-	}
-
-	/* Ok, now write out the active pixels to the destination image.
-	 * (But only if the active pixels differ from the total pixels)
-	 */
-
-	if( !(height == activeHeight && width == activeWidth) ) {
-		int dstPixelBytes = dstChannels * dstChannelBytes;
-		int dstRowBytes = dstPixelBytes * width;
-		int activeRowBytes = activeWidth * dstPixelBytes;
-		GLubyte *newimg = (GLubyte*)malloc(dstPixelBytes * activeWidth * activeHeight);
-		unsigned int xx, yy;
-		int zz;
-
-		if (!newimg) {
-			free(*dstImage);
-			return KTX_OUT_OF_MEMORY;
-		}
-		
-		/* Convert from total area to active area: */
-
-		for (yy = 0; yy < activeHeight; yy++) {
-			for (xx = 0; xx < activeWidth; xx++) {
-				for (zz = 0; zz < dstPixelBytes; zz++) {
-					newimg[ yy*activeRowBytes + xx*dstPixelBytes + zz ] = (*dstImage)[ yy*dstRowBytes + xx*dstPixelBytes + zz];
-				}
-			}
-		}
-
-		free(*dstImage);
-		*dstImage = newimg;
-	}
-
-	return KTX_SUCCESS;
-}
-
-#endif /* SUPPORT_SOFTWARE_ETC_UNPACK */
diff --git a/external/KTX-Software-master/lib/filestream.c b/external/KTX-Software-master/lib/filestream.c
deleted file mode 100644
index dd6d09b..0000000
--- a/external/KTX-Software-master/lib/filestream.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * ©2010-2018 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file
- * @~English
- *
- * @brief Implementation of ktxStream for FILE.
- *
- * @author Maksim Kolesin, Under Development
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation
- */
-
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-/* I need these on Linux. Why? */
-#define __USE_LARGEFILE 1  // For declaration of ftello, etc.
-#define __USE_POSIX 1      // For declaration of fileno.
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "ktx.h"
-#include "ktxint.h"
-#include "filestream.h"
-
-#if defined(_MSC_VER)
-  #if defined(_WIN64)
-    #define ftello _ftelli64
-    #define fseeko _fseeki64
-  #else
-    #define ftello ftell
-    #define fseeko fseek
-  #endif
-  #define fileno _fileno
-#endif
-
-#define KTX_FILE_STREAM_MAX (1 << (sizeof(ktx_off_t) - 1) - 1)
-
-/**
- * @internal
- * @~English
- * @brief Read bytes from a ktxFileStream.
- *
- * @param [in]  str     pointer to the ktxStream from which to read.
- * @param [out] dst     pointer to a block of memory with a size
- *                      of at least @p size bytes, converted to a void*.
- * @param [in,out] count   pointer to total count of bytes to be read.
- *                         On completion set to number of bytes read.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p dst is @c NULL or @p src is @c NULL.
- * @exception KTX_FILE_UNEXPECTED_EOF not enough data to satisfy the request.
- */
-static
-KTX_error_code ktxFileStream_read(ktxStream* str, void* dst, const ktx_size_t count)
-{
-    ktx_size_t nread;
-
-    if (!str || !dst)
-        return KTX_INVALID_VALUE;
-
-    assert(str->type == eStreamTypeFile);
-    
-    if ((nread = fread(dst, 1, count, str->data.file)) != count) {
-        if (feof(str->data.file)) {
-            return KTX_FILE_UNEXPECTED_EOF;
-        } else
-            return KTX_FILE_READ_ERROR;
-    }
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Skip bytes in a ktxFileStream.
- *
- * @param [in] str           pointer to a ktxStream object.
- * @param [in] count         number of bytes to be skipped.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str is @c NULL or @p count is less than zero.
- * @exception KTX_INVALID_OPERATION skipping @p count bytes would go beyond EOF.
- * @exception KTX_FILE_UNEXPECTED_EOF not enough data to satisfy the request.
- *                                    @p count is set to the number of bytes
- *                                    skipped.
- */
-static
-KTX_error_code ktxFileStream_skip(ktxStream* str, const ktx_size_t count)
-{
-    ktx_size_t fileSize;
-    ktx_off_t pos, newpos;
-
-    if (!str)
-        return KTX_INVALID_VALUE;
-
-    assert(str->type == eStreamTypeFile);
-    
-    str->getsize(str, &fileSize);
-    str->getpos(str, &pos);
-
-    newpos = pos + count;
-    /* First clause checks for overflow. */
-    if (newpos < pos || pos + count > fileSize)
-        return KTX_FILE_UNEXPECTED_EOF;
-
-    if (fseeko(str->data.file, count, SEEK_CUR) != 0)
-        return KTX_FILE_SEEK_ERROR;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Write bytes to a ktxFileStream.
- *
- * @param [in] str      pointer to the ktxStream that is the destination of the
- *                      write.
- * @param [in] src      pointer to the array of elements to be written,
- *                      converted to a const void*.
- * @param [in] size     size in bytes of each element to be written.
- * @param [in] count    number of elements, each one with a @p size of size
- *                      bytes.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str is @c NULL or @p src is @c NULL.
- * @exception KTX_FILE_OVERFLOW the requested write would caused the file to
- *                              exceed the maximum supported file size.
- * @exception KTX_FILE_WRITE_ERROR a system error occurred while writing the
- *                                 file.
- */
-static
-KTX_error_code ktxFileStream_write(ktxStream* str, const void *src,
-                                   const ktx_size_t size,
-                                   const ktx_size_t count)
-{
-    if (!str || !src)
-        return KTX_INVALID_VALUE;
-
-    assert(str->type == eStreamTypeFile);
-    
-    if (fwrite(src, size, count, str->data.file) != count) {
-        if (errno == EFBIG || errno == EOVERFLOW)
-            return KTX_FILE_OVERFLOW;
-        else
-            return KTX_FILE_WRITE_ERROR;
-    }
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the current read/write position in a ktxFileStream.
- *
- * @param [in] str      pointer to the ktxStream to query.
- * @param [in,out] off  pointer to variable to receive the offset value.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str or @p pos is @c NULL.
- */
-static
-KTX_error_code ktxFileStream_getpos(ktxStream* str, ktx_off_t* pos)
-{
-    if (!str || !pos)
-        return KTX_INVALID_VALUE;
-    
-    assert(str->type == eStreamTypeFile);
-
-    /* The cast quiets an Xcode warning when building for "Generic iOS Device".
-     * For some reason, even when ARCHS is arm64, size_t is only a long. */
-    *pos = (ktx_off_t)ftello(str->data.file);
-    
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Set the current read/write position in a ktxFileStream.
- *
- * Offset of 0 is the start of the file. This function operates
- * like Linux > 3.1's @c lseek() when it is passed a @c whence
- * of @c SEEK_DATA is it returns and error if the seek would
- * go beyond the end of the file.
- *
- * @param [in] str    pointer to the ktxStream whose r/w position is to be set.
- * @param [in] off    pointer to the offset value to set.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str is @c NULL.
- * @exception KTX_INVALID_OPERATION @p pos is > the size of the file or an
- *                                  fseek error occurred.
- */
-static
-KTX_error_code ktxFileStream_setpos(ktxStream* str, ktx_off_t pos)
-{
-    ktx_size_t fileSize;
-    
-    if (!str)
-        return KTX_INVALID_VALUE;
-
-    assert(str->type == eStreamTypeFile);
-    
-    str->getsize(str, &fileSize);
-    if (pos > fileSize)
-        return KTX_INVALID_OPERATION;
-
-    if (fseeko(str->data.file, pos, SEEK_SET) < 0)
-        return KTX_FILE_SEEK_ERROR;
-    
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the size of a ktxFileStream in bytes.
- *
- * @param [in] str       pointer to the ktxStream whose size is to be queried.
- * @param [in,out] size  pointer to a variable in which size will be written.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str or @p size is @c NULL.
- * @exception KTX_FILE_WRITE_ERROR a system error occurred while getting the
- *                                 size.
- */
-static
-KTX_error_code ktxFileStream_getsize(ktxStream* str, ktx_size_t* size)
-{
-    struct stat statbuf;
-
-    if (!str || !size)
-        return KTX_INVALID_VALUE;
-    
-    assert(str->type == eStreamTypeFile);
- 
-    if (fstat(fileno(str->data.file), &statbuf) < 0)
-        return KTX_FILE_READ_ERROR;
-    *size = (ktx_size_t)statbuf.st_size; /* See _getpos for why this cast. */
-    
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Initialize a ktxFileStream.
- *
- * @param [in] str      pointer to the ktxStream to initialize.
- * @param [in] file     pointer to the underlying FILE object.
- *
- * @return      KTX_SUCCESS on success, KTX_INVALID_VALUE on error.
- *
- * @exception KTX_INVALID_VALUE @p stream is @c NULL or @p file is @c NULL.
- */
-KTX_error_code ktxFileStream_construct(ktxStream* str, FILE* file,
-                                       ktx_bool_t closeFileOnDestruct)
-{
-    if (!str || !file)
-        return KTX_INVALID_VALUE;
-
-    str->data.file = file;
-    str->type = eStreamTypeFile;
-    str->read = ktxFileStream_read;
-    str->skip = ktxFileStream_skip;
-    str->write = ktxFileStream_write;
-    str->getpos = ktxFileStream_getpos;
-    str->setpos = ktxFileStream_setpos;
-    str->getsize = ktxFileStream_getsize;
-    str->destruct = ktxFileStream_destruct;
-    str->closeOnDestruct = closeFileOnDestruct;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Destruct the stream, potentially closing the underlying FILE.
- *
- * This only closes the underyling FILE if the @c closeOnDestruct parameter to
- * ktxFileStream_construct() was not @c KTX_FALSE.
- *
- * @param [in] str pointer to the ktxStream whose FILE is to potentially
- *             be closed.
- */
-void
-ktxFileStream_destruct(ktxStream* str)
-{
-    assert(str && str->type == eStreamTypeFile);
-    
-    if (str->closeOnDestruct)
-        fclose(str->data.file);
-    str->data.file = 0;
-}
diff --git a/external/KTX-Software-master/lib/filestream.h b/external/KTX-Software-master/lib/filestream.h
deleted file mode 100644
index 3359cb2..0000000
--- a/external/KTX-Software-master/lib/filestream.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * ©2010-2018 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Author: Maksim Kolesin from original code
- * by Mark Callow and Georg Kolling
- */
-
-#ifndef FILESTREAM_H
-#define FILESTREAM_H
-
-#include "ktx.h"
-#include "stream.h"
-
-/*
- * ktxFileInit: Initialize a ktxStream to a ktxFileStream with a FILE object
- */
-KTX_error_code ktxFileStream_construct(ktxStream* str, FILE* file,
-                                       ktx_bool_t closeFileOnDestruct);
-
-void ktxFileStream_destruct(ktxStream* str);
-
-#endif /* FILESTREAM_H */
diff --git a/external/KTX-Software-master/lib/gl_format.h b/external/KTX-Software-master/lib/gl_format.h
deleted file mode 100644
index 2a78124..0000000
--- a/external/KTX-Software-master/lib/gl_format.h
+++ /dev/null
@@ -1,2456 +0,0 @@
-/*
-================================================================================================
-
-Description	:	OpenGL formats/types and properties.
-Author		:	J.M.P. van Waveren
-Date		:	07/17/2016
-Language	:	C99
-Format		:	Real tabs with the tab size equal to 4 spaces.
-Copyright	:	Copyright (c) 2016 Oculus VR, LLC. All Rights reserved.
-
-
-LICENSE
-=======
-
-Copyright (c) 2016 Oculus VR, LLC.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-DESCRIPTION
-===========
-
-This header stores the OpenGL formats/types and two simple routines
-to derive the format/type from an internal format. These routines
-are useful to verify the data in a KTX container files. The OpenGL
-constants are generally useful to convert files like KTX and glTF
-to different graphics APIs.
-
-This header stores the OpenGL formats/types that are used as parameters
-to the following OpenGL functions:
-
-void glTexImage2D( GLenum target, GLint level, GLint internalFormat,
-	GLsizei width, GLsizei height, GLint border,
-	GLenum format, GLenum type, const GLvoid * data );
-void glTexImage3D( GLenum target, GLint level, GLint internalFormat,
-	GLsizei width, GLsizei height, GLsizei depth, GLint border,
-	GLenum format, GLenum type, const GLvoid * data );
-void glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat,
-	GLsizei width, GLsizei height, GLint border,
-	GLsizei imageSize, const GLvoid * data );
-void glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat,
-	GLsizei width, GLsizei height, GLsizei depth, GLint border,
-	GLsizei imageSize, const GLvoid * data );
-void glTexStorage2D( GLenum target, GLsizei levels, GLenum internalformat,
-	GLsizei width, GLsizei height );
-void glTexStorage3D( GLenum target, GLsizei levels, GLenum internalformat,
-	GLsizei width, GLsizei height, GLsizei depth );
-void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized,
-	GLsizei stride, const GLvoid * pointer);
-
-
-IMPLEMENTATION
-==============
-
-This file does not include OpenGL / OpenGL ES headers because:
-
-  1. Including OpenGL / OpenGL ES headers is platform dependent and
-     may require a separate installation of an OpenGL SDK.
-  2. The OpenGL format/type constants are the same between extensions and core.
-  3. The OpenGL format/type constants are the same between OpenGL and OpenGL ES.
-  4. The OpenGL constants in this header are also used to derive Vulkan formats
-     from the OpenGL formats/types stored in files like KTX and glTF. These file
-     formats may use OpenGL formats/types that are not supported by the OpenGL
-     implementation on the platform but are supported by the Vulkan implementation.
-
-
-ENTRY POINTS
-============
-
-static inline GLenum glGetFormatFromInternalFormat( const GLenum internalFormat );
-static inline GLenum glGetTypeFromInternalFormat( const GLenum internalFormat );
-static inline void glGetFormatSize( const GLenum internalFormat, GlFormatSize * pFormatSize );
-static inline unsigned int glGetTypeSizeFromType( const GLenum type );
- 
-MODIFICATIONS for use in libktx
-===============================
- 
-2018.3.23 Added glGetTypeSizeFromType. Mark Callow, Edgewise Consulting.
-2019.3.09 #if 0 around GL type declarations. Mark Callow,     〃
-
-================================================================================================
-*/
-
-#if !defined( GL_FORMAT_H )
-#define GL_FORMAT_H
-
-#include <assert.h>
-
-#if defined(_WIN32)
-#define NOMINMAX
-#ifndef __cplusplus
-#undef inline
-#define inline __inline
-#endif // __cplusplus
-#endif
-
-/*
-===========================================================================
-Avoid warnings or even errors when using strict C99. "Redefinition of
-(type) is a C11 feature." All includers in libktx also include ktx.h where
-they are also defined.
-===========================================================================
-*/
-#if 0
-typedef unsigned int GLenum;
-typedef unsigned char GLboolean;
-typedef unsigned int GLuint;
-#endif
-
-#if !defined( GL_INVALID_VALUE )
-#define GL_INVALID_VALUE								0x0501
-#endif
-
-/*
-================================================================================================================================
-
-Format to glTexImage2D and glTexImage3D.
-
-================================================================================================================================
-*/
-
-#if !defined( GL_RED )
-#define GL_RED											0x1903	// same as GL_RED_EXT
-#endif
-#if !defined( GL_GREEN )
-#define GL_GREEN										0x1904	// deprecated
-#endif
-#if !defined( GL_BLUE )
-#define GL_BLUE											0x1905	// deprecated
-#endif
-#if !defined( GL_ALPHA )
-#define GL_ALPHA										0x1906	// deprecated
-#endif
-#if !defined( GL_LUMINANCE )
-#define GL_LUMINANCE									0x1909	// deprecated
-#endif
-#if !defined( GL_SLUMINANCE )
-#define GL_SLUMINANCE									0x8C46	// deprecated, same as GL_SLUMINANCE_EXT
-#endif
-#if !defined( GL_LUMINANCE_ALPHA )
-#define GL_LUMINANCE_ALPHA								0x190A	// deprecated
-#endif
-#if !defined( GL_SLUMINANCE_ALPHA )
-#define GL_SLUMINANCE_ALPHA								0x8C44	// deprecated, same as GL_SLUMINANCE_ALPHA_EXT
-#endif
-#if !defined( GL_INTENSITY )
-#define GL_INTENSITY									0x8049	// deprecated, same as GL_INTENSITY_EXT
-#endif
-#if !defined( GL_RG )
-#define GL_RG											0x8227	// same as GL_RG_EXT
-#endif
-#if !defined( GL_RGB )
-#define GL_RGB											0x1907
-#endif
-#if !defined( GL_BGR )
-#define GL_BGR											0x80E0	// same as GL_BGR_EXT
-#endif
-#if !defined( GL_RGBA )
-#define GL_RGBA											0x1908
-#endif
-#if !defined( GL_BGRA )
-#define GL_BGRA											0x80E1	// same as GL_BGRA_EXT
-#endif
-#if !defined( GL_RED_INTEGER )
-#define GL_RED_INTEGER									0x8D94	// same as GL_RED_INTEGER_EXT
-#endif
-#if !defined( GL_GREEN_INTEGER )
-#define GL_GREEN_INTEGER								0x8D95	// deprecated, same as GL_GREEN_INTEGER_EXT
-#endif
-#if !defined( GL_BLUE_INTEGER )
-#define GL_BLUE_INTEGER									0x8D96	// deprecated, same as GL_BLUE_INTEGER_EXT
-#endif
-#if !defined( GL_ALPHA_INTEGER )
-#define GL_ALPHA_INTEGER								0x8D97	// deprecated, same as GL_ALPHA_INTEGER_EXT
-#endif
-#if !defined( GL_LUMINANCE_INTEGER )
-#define GL_LUMINANCE_INTEGER							0x8D9C	// deprecated, same as GL_LUMINANCE_INTEGER_EXT
-#endif
-#if !defined( GL_LUMINANCE_ALPHA_INTEGER )
-#define GL_LUMINANCE_ALPHA_INTEGER						0x8D9D	// deprecated, same as GL_LUMINANCE_ALPHA_INTEGER_EXT
-#endif
-#if !defined( GL_RG_INTEGER )
-#define GL_RG_INTEGER									0x8228	// same as GL_RG_INTEGER_EXT
-#endif
-#if !defined( GL_RGB_INTEGER )
-#define GL_RGB_INTEGER									0x8D98	// same as GL_RGB_INTEGER_EXT
-#endif
-#if !defined( GL_BGR_INTEGER )
-#define GL_BGR_INTEGER									0x8D9A	// same as GL_BGR_INTEGER_EXT
-#endif
-#if !defined( GL_RGBA_INTEGER )
-#define GL_RGBA_INTEGER									0x8D99	// same as GL_RGBA_INTEGER_EXT
-#endif
-#if !defined( GL_BGRA_INTEGER )
-#define GL_BGRA_INTEGER									0x8D9B	// same as GL_BGRA_INTEGER_EXT
-#endif
-#if !defined( GL_COLOR_INDEX )
-#define GL_COLOR_INDEX									0x1900	// deprecated
-#endif
-#if !defined( GL_STENCIL_INDEX )
-#define GL_STENCIL_INDEX								0x1901
-#endif
-#if !defined( GL_DEPTH_COMPONENT )
-#define GL_DEPTH_COMPONENT								0x1902
-#endif
-#if !defined( GL_DEPTH_STENCIL )
-#define GL_DEPTH_STENCIL								0x84F9	// same as GL_DEPTH_STENCIL_NV and GL_DEPTH_STENCIL_EXT and GL_DEPTH_STENCIL_OES
-#endif
-
-/*
-================================================================================================================================
-
-Type to glTexImage2D, glTexImage3D and glVertexAttribPointer.
-
-================================================================================================================================
-*/
-
-#if !defined( GL_BYTE )
-#define GL_BYTE											0x1400
-#endif
-#if !defined( GL_UNSIGNED_BYTE )
-#define GL_UNSIGNED_BYTE								0x1401
-#endif
-#if !defined( GL_SHORT )
-#define GL_SHORT										0x1402
-#endif
-#if !defined( GL_UNSIGNED_SHORT )
-#define GL_UNSIGNED_SHORT								0x1403
-#endif
-#if !defined( GL_INT )
-#define GL_INT											0x1404
-#endif
-#if !defined( GL_UNSIGNED_INT )
-#define GL_UNSIGNED_INT									0x1405
-#endif
-#if !defined( GL_INT64 )
-#define GL_INT64										0x140E	// same as GL_INT64_NV and GL_INT64_ARB
-#endif
-#if !defined( GL_UNSIGNED_INT64 )
-#define GL_UNSIGNED_INT64								0x140F	// same as GL_UNSIGNED_INT64_NV and GL_UNSIGNED_INT64_ARB
-#endif
-#if !defined( GL_HALF_FLOAT )
-#define GL_HALF_FLOAT									0x140B	// same as GL_HALF_FLOAT_NV and GL_HALF_FLOAT_ARB
-#endif
-#if !defined( GL_HALF_FLOAT_OES )
-#define GL_HALF_FLOAT_OES								0x8D61	// Note that this different from GL_HALF_FLOAT.
-#endif
-#if !defined( GL_FLOAT )
-#define GL_FLOAT										0x1406
-#endif
-#if !defined( GL_DOUBLE )
-#define GL_DOUBLE										0x140A	// same as GL_DOUBLE_EXT
-#endif
-#if !defined( GL_UNSIGNED_BYTE_3_3_2 )
-#define GL_UNSIGNED_BYTE_3_3_2							0x8032	// same as GL_UNSIGNED_BYTE_3_3_2_EXT
-#endif
-#if !defined( GL_UNSIGNED_BYTE_2_3_3_REV )
-#define GL_UNSIGNED_BYTE_2_3_3_REV						0x8362	// same as GL_UNSIGNED_BYTE_2_3_3_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_5_6_5 )
-#define GL_UNSIGNED_SHORT_5_6_5							0x8363	// same as GL_UNSIGNED_SHORT_5_6_5_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_5_6_5_REV )
-#define GL_UNSIGNED_SHORT_5_6_5_REV						0x8364	// same as GL_UNSIGNED_SHORT_5_6_5_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_4_4_4_4 )
-#define GL_UNSIGNED_SHORT_4_4_4_4						0x8033	// same as GL_UNSIGNED_SHORT_4_4_4_4_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_4_4_4_4_REV )
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV					0x8365	// same as GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG and GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_5_5_5_1 )
-#define GL_UNSIGNED_SHORT_5_5_5_1						0x8034	// same as GL_UNSIGNED_SHORT_5_5_5_1_EXT
-#endif
-#if !defined( GL_UNSIGNED_SHORT_1_5_5_5_REV )
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV					0x8366	// same as GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_8_8_8_8 )
-#define GL_UNSIGNED_INT_8_8_8_8							0x8035	// same as GL_UNSIGNED_INT_8_8_8_8_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_8_8_8_8_REV )
-#define GL_UNSIGNED_INT_8_8_8_8_REV						0x8367	// same as GL_UNSIGNED_INT_8_8_8_8_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_10_10_10_2 )
-#define GL_UNSIGNED_INT_10_10_10_2						0x8036	// same as GL_UNSIGNED_INT_10_10_10_2_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_2_10_10_10_REV )
-#define GL_UNSIGNED_INT_2_10_10_10_REV					0x8368	// same as GL_UNSIGNED_INT_2_10_10_10_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_10F_11F_11F_REV )
-#define GL_UNSIGNED_INT_10F_11F_11F_REV					0x8C3B	// same as GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_5_9_9_9_REV )
-#define GL_UNSIGNED_INT_5_9_9_9_REV						0x8C3E	// same as GL_UNSIGNED_INT_5_9_9_9_REV_EXT
-#endif
-#if !defined( GL_UNSIGNED_INT_24_8 )
-#define GL_UNSIGNED_INT_24_8							0x84FA	// same as GL_UNSIGNED_INT_24_8_NV and GL_UNSIGNED_INT_24_8_EXT and GL_UNSIGNED_INT_24_8_OES
-#endif
-#if !defined( GL_FLOAT_32_UNSIGNED_INT_24_8_REV )
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV				0x8DAD	// same as GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV and GL_FLOAT_32_UNSIGNED_INT_24_8_REV_ARB
-#endif
-
-/*
-================================================================================================================================
-
-Internal format to glTexImage2D, glTexImage3D, glCompressedTexImage2D, glCompressedTexImage3D, glTexStorage2D, glTexStorage3D
-
-================================================================================================================================
-*/
-
-//
-// 8 bits per component
-//
-
-#if !defined( GL_R8 )
-#define GL_R8											0x8229	// same as GL_R8_EXT
-#endif
-#if !defined( GL_RG8 )
-#define GL_RG8											0x822B	// same as GL_RG8_EXT
-#endif
-#if !defined( GL_RGB8 )
-#define GL_RGB8											0x8051	// same as GL_RGB8_EXT and GL_RGB8_OES
-#endif
-#if !defined( GL_RGBA8 )
-#define GL_RGBA8										0x8058	// same as GL_RGBA8_EXT and GL_RGBA8_OES
-#endif
-
-#if !defined( GL_R8_SNORM )
-#define GL_R8_SNORM										0x8F94
-#endif
-#if !defined( GL_RG8_SNORM )
-#define GL_RG8_SNORM									0x8F95
-#endif
-#if !defined( GL_RGB8_SNORM )
-#define GL_RGB8_SNORM									0x8F96
-#endif
-#if !defined( GL_RGBA8_SNORM )
-#define GL_RGBA8_SNORM									0x8F97
-#endif
-
-#if !defined( GL_R8UI )
-#define GL_R8UI											0x8232
-#endif
-#if !defined( GL_RG8UI )
-#define GL_RG8UI										0x8238
-#endif
-#if !defined( GL_RGB8UI )
-#define GL_RGB8UI										0x8D7D	// same as GL_RGB8UI_EXT
-#endif
-#if !defined( GL_RGBA8UI )
-#define GL_RGBA8UI										0x8D7C	// same as GL_RGBA8UI_EXT
-#endif
-
-#if !defined( GL_R8I )
-#define GL_R8I											0x8231
-#endif
-#if !defined( GL_RG8I )
-#define GL_RG8I											0x8237
-#endif
-#if !defined( GL_RGB8I )
-#define GL_RGB8I										0x8D8F	// same as GL_RGB8I_EXT
-#endif
-#if !defined( GL_RGBA8I )
-#define GL_RGBA8I										0x8D8E	// same as GL_RGBA8I_EXT
-#endif
-
-#if !defined( GL_SR8 )
-#define GL_SR8											0x8FBD	// same as GL_SR8_EXT
-#endif
-#if !defined( GL_SRG8 )
-#define GL_SRG8											0x8FBE	// same as GL_SRG8_EXT
-#endif
-#if !defined( GL_SRGB8 )
-#define GL_SRGB8										0x8C41	// same as GL_SRGB8_EXT
-#endif
-#if !defined( GL_SRGB8_ALPHA8 )
-#define GL_SRGB8_ALPHA8									0x8C43	// same as GL_SRGB8_ALPHA8_EXT
-#endif
-
-//
-// 16 bits per component
-//
-
-#if !defined( GL_R16 )
-#define GL_R16											0x822A	// same as GL_R16_EXT
-#endif
-#if !defined( GL_RG16 )
-#define GL_RG16											0x822C	// same as GL_RG16_EXT
-#endif
-#if !defined( GL_RGB16 )
-#define GL_RGB16										0x8054	// same as GL_RGB16_EXT
-#endif
-#if !defined( GL_RGBA16 )
-#define GL_RGBA16										0x805B	// same as GL_RGBA16_EXT
-#endif
-
-#if !defined( GL_R16_SNORM )
-#define GL_R16_SNORM									0x8F98	// same as GL_R16_SNORM_EXT
-#endif
-#if !defined( GL_RG16_SNORM )
-#define GL_RG16_SNORM									0x8F99	// same as GL_RG16_SNORM_EXT
-#endif
-#if !defined( GL_RGB16_SNORM )
-#define GL_RGB16_SNORM									0x8F9A	// same as GL_RGB16_SNORM_EXT
-#endif
-#if !defined( GL_RGBA16_SNORM )
-#define GL_RGBA16_SNORM									0x8F9B	// same as GL_RGBA16_SNORM_EXT
-#endif
-
-#if !defined( GL_R16UI )
-#define GL_R16UI										0x8234
-#endif
-#if !defined( GL_RG16UI )
-#define GL_RG16UI										0x823A
-#endif
-#if !defined( GL_RGB16UI )
-#define GL_RGB16UI										0x8D77	// same as GL_RGB16UI_EXT
-#endif
-#if !defined( GL_RGBA16UI )
-#define GL_RGBA16UI										0x8D76	// same as GL_RGBA16UI_EXT
-#endif
-
-#if !defined( GL_R16I )
-#define GL_R16I											0x8233
-#endif
-#if !defined( GL_RG16I )
-#define GL_RG16I										0x8239
-#endif
-#if !defined( GL_RGB16I )
-#define GL_RGB16I										0x8D89	// same as GL_RGB16I_EXT
-#endif
-#if !defined( GL_RGBA16I )
-#define GL_RGBA16I										0x8D88	// same as GL_RGBA16I_EXT
-#endif
-
-#if !defined( GL_R16F )
-#define GL_R16F											0x822D	// same as GL_R16F_EXT
-#endif
-#if !defined( GL_RG16F )
-#define GL_RG16F										0x822F	// same as GL_RG16F_EXT
-#endif
-#if !defined( GL_RGB16F )
-#define GL_RGB16F										0x881B	// same as GL_RGB16F_EXT and GL_RGB16F_ARB
-#endif
-#if !defined( GL_RGBA16F )
-#define GL_RGBA16F										0x881A	// sama as GL_RGBA16F_EXT and GL_RGBA16F_ARB
-#endif
-
-//
-// 32 bits per component
-//
-
-#if !defined( GL_R32UI )
-#define GL_R32UI										0x8236
-#endif
-#if !defined( GL_RG32UI )
-#define GL_RG32UI										0x823C
-#endif
-#if !defined( GL_RGB32UI )
-#define GL_RGB32UI										0x8D71	// same as GL_RGB32UI_EXT
-#endif
-#if !defined( GL_RGBA32UI )
-#define GL_RGBA32UI										0x8D70	// same as GL_RGBA32UI_EXT
-#endif
-
-#if !defined( GL_R32I )
-#define GL_R32I											0x8235
-#endif
-#if !defined( GL_RG32I )
-#define GL_RG32I										0x823B
-#endif
-#if !defined( GL_RGB32I )
-#define GL_RGB32I										0x8D83	// same as GL_RGB32I_EXT 
-#endif
-#if !defined( GL_RGBA32I )
-#define GL_RGBA32I										0x8D82	// same as GL_RGBA32I_EXT
-#endif
-
-#if !defined( GL_R32F )
-#define GL_R32F											0x822E	// same as GL_R32F_EXT
-#endif
-#if !defined( GL_RG32F )
-#define GL_RG32F										0x8230	// same as GL_RG32F_EXT
-#endif
-#if !defined( GL_RGB32F )
-#define GL_RGB32F										0x8815	// same as GL_RGB32F_EXT and GL_RGB32F_ARB
-#endif
-#if !defined( GL_RGBA32F )
-#define GL_RGBA32F										0x8814	// same as GL_RGBA32F_EXT and GL_RGBA32F_ARB
-#endif
-
-//
-// Packed
-//
-
-#if !defined( GL_R3_G3_B2 )
-#define GL_R3_G3_B2										0x2A10
-#endif
-#if !defined( GL_RGB4 )
-#define GL_RGB4											0x804F	// same as GL_RGB4_EXT
-#endif
-#if !defined( GL_RGB5 )
-#define GL_RGB5											0x8050	// same as GL_RGB5_EXT
-#endif
-#if !defined( GL_RGB565 )
-#define GL_RGB565										0x8D62	// same as GL_RGB565_EXT and GL_RGB565_OES
-#endif
-#if !defined( GL_RGB10 )
-#define GL_RGB10										0x8052	// same as GL_RGB10_EXT
-#endif
-#if !defined( GL_RGB12 )
-#define GL_RGB12										0x8053	// same as GL_RGB12_EXT
-#endif
-#if !defined( GL_RGBA2 )
-#define GL_RGBA2										0x8055	// same as GL_RGBA2_EXT
-#endif
-#if !defined( GL_RGBA4 )
-#define GL_RGBA4										0x8056	// same as GL_RGBA4_EXT and GL_RGBA4_OES
-#endif
-#if !defined( GL_RGBA12 )
-#define GL_RGBA12										0x805A	// same as GL_RGBA12_EXT
-#endif
-#if !defined( GL_RGB5_A1 )
-#define GL_RGB5_A1										0x8057	// same as GL_RGB5_A1_EXT and GL_RGB5_A1_OES
-#endif
-#if !defined( GL_RGB10_A2 )
-#define GL_RGB10_A2										0x8059	// same as GL_RGB10_A2_EXT
-#endif
-#if !defined( GL_RGB10_A2UI )
-#define GL_RGB10_A2UI									0x906F
-#endif
-#if !defined( GL_R11F_G11F_B10F )
-#define GL_R11F_G11F_B10F								0x8C3A	// same as GL_R11F_G11F_B10F_APPLE and GL_R11F_G11F_B10F_EXT
-#endif
-#if !defined( GL_RGB9_E5 )
-#define GL_RGB9_E5										0x8C3D	// same as GL_RGB9_E5_APPLE and GL_RGB9_E5_EXT
-#endif
-
-//
-// Alpha
-//
-
-#if !defined( GL_ALPHA4 )
-#define GL_ALPHA4										0x803B	// deprecated, same as GL_ALPHA4_EXT
-#endif
-#if !defined( GL_ALPHA8 )
-#define GL_ALPHA8										0x803C	// deprecated, same as GL_ALPHA8_EXT
-#endif
-#if !defined( GL_ALPHA8_SNORM )
-#define GL_ALPHA8_SNORM									0x9014	// deprecated
-#endif
-#if !defined( GL_ALPHA8UI_EXT )
-#define GL_ALPHA8UI_EXT									0x8D7E	// deprecated
-#endif
-#if !defined( GL_ALPHA8I_EXT )
-#define GL_ALPHA8I_EXT									0x8D90	// deprecated
-#endif
-#if !defined( GL_ALPHA12 )
-#define GL_ALPHA12										0x803D	// deprecated, same as GL_ALPHA12_EXT
-#endif
-#if !defined( GL_ALPHA16 )
-#define GL_ALPHA16										0x803E	// deprecated, same as GL_ALPHA16_EXT
-#endif
-#if !defined( GL_ALPHA16_SNORM )
-#define GL_ALPHA16_SNORM								0x9018	// deprecated
-#endif
-#if !defined( GL_ALPHA16UI_EXT )
-#define GL_ALPHA16UI_EXT								0x8D78	// deprecated
-#endif
-#if !defined( GL_ALPHA16I_EXT )
-#define GL_ALPHA16I_EXT									0x8D8A	// deprecated
-#endif
-#if !defined( GL_ALPHA16F_ARB )
-#define GL_ALPHA16F_ARB									0x881C	// deprecated, same as GL_ALPHA_FLOAT16_APPLE and GL_ALPHA_FLOAT16_ATI
-#endif
-#if !defined( GL_ALPHA32UI_EXT )
-#define GL_ALPHA32UI_EXT								0x8D72	// deprecated
-#endif
-#if !defined( GL_ALPHA32I_EXT )
-#define GL_ALPHA32I_EXT									0x8D84	// deprecated
-#endif
-#if !defined( GL_ALPHA32F_ARB )
-#define GL_ALPHA32F_ARB									0x8816	// deprecated, same as GL_ALPHA_FLOAT32_APPLE and GL_ALPHA_FLOAT32_ATI
-#endif
-
-//
-// Luminance
-//
-
-#if !defined( GL_LUMINANCE4 )
-#define GL_LUMINANCE4									0x803F	// deprecated, same as GL_LUMINANCE4_EXT
-#endif
-#if !defined( GL_LUMINANCE8 )
-#define GL_LUMINANCE8									0x8040	// deprecated, same as GL_LUMINANCE8_EXT
-#endif
-#if !defined( GL_LUMINANCE8_SNORM )
-#define GL_LUMINANCE8_SNORM								0x9015	// deprecated
-#endif
-#if !defined( GL_SLUMINANCE8 )
-#define GL_SLUMINANCE8									0x8C47	// deprecated, same as GL_SLUMINANCE8_EXT
-#endif
-#if !defined( GL_LUMINANCE8UI_EXT )
-#define GL_LUMINANCE8UI_EXT								0x8D80	// deprecated
-#endif
-#if !defined( GL_LUMINANCE8I_EXT )
-#define GL_LUMINANCE8I_EXT								0x8D92	// deprecated
-#endif
-#if !defined( GL_LUMINANCE12 )
-#define GL_LUMINANCE12									0x8041	// deprecated, same as GL_LUMINANCE12_EXT
-#endif
-#if !defined( GL_LUMINANCE16 )
-#define GL_LUMINANCE16									0x8042	// deprecated, same as GL_LUMINANCE16_EXT
-#endif
-#if !defined( GL_LUMINANCE16_SNORM )
-#define GL_LUMINANCE16_SNORM							0x9019	// deprecated
-#endif
-#if !defined( GL_LUMINANCE16UI_EXT )
-#define GL_LUMINANCE16UI_EXT							0x8D7A	// deprecated
-#endif
-#if !defined( GL_LUMINANCE16I_EXT )
-#define GL_LUMINANCE16I_EXT								0x8D8C	// deprecated
-#endif
-#if !defined( GL_LUMINANCE16F_ARB )
-#define GL_LUMINANCE16F_ARB								0x881E	// deprecated, same as GL_LUMINANCE_FLOAT16_APPLE and GL_LUMINANCE_FLOAT16_ATI
-#endif
-#if !defined( GL_LUMINANCE32UI_EXT )
-#define GL_LUMINANCE32UI_EXT							0x8D74	// deprecated
-#endif
-#if !defined( GL_LUMINANCE32I_EXT )
-#define GL_LUMINANCE32I_EXT								0x8D86	// deprecated
-#endif
-#if !defined( GL_LUMINANCE32F_ARB )
-#define GL_LUMINANCE32F_ARB								0x8818	// deprecated, same as GL_LUMINANCE_FLOAT32_APPLE and GL_LUMINANCE_FLOAT32_ATI
-#endif
-
-//
-// Luminance/Alpha
-//
-
-#if !defined( GL_LUMINANCE4_ALPHA4 )
-#define GL_LUMINANCE4_ALPHA4							0x8043	// deprecated, same as GL_LUMINANCE4_ALPHA4_EXT
-#endif
-#if !defined( GL_LUMINANCE6_ALPHA2 )
-#define GL_LUMINANCE6_ALPHA2							0x8044	// deprecated, same as GL_LUMINANCE6_ALPHA2_EXT
-#endif
-#if !defined( GL_LUMINANCE8_ALPHA8 )
-#define GL_LUMINANCE8_ALPHA8							0x8045	// deprecated, same as GL_LUMINANCE8_ALPHA8_EXT
-#endif
-#if !defined( GL_LUMINANCE8_ALPHA8_SNORM )
-#define GL_LUMINANCE8_ALPHA8_SNORM						0x9016	// deprecated
-#endif
-#if !defined( GL_SLUMINANCE8_ALPHA8 )
-#define GL_SLUMINANCE8_ALPHA8							0x8C45	// deprecated, same as GL_SLUMINANCE8_ALPHA8_EXT
-#endif
-#if !defined( GL_LUMINANCE_ALPHA8UI_EXT )
-#define GL_LUMINANCE_ALPHA8UI_EXT						0x8D81	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA8I_EXT )
-#define GL_LUMINANCE_ALPHA8I_EXT						0x8D93	// deprecated
-#endif
-#if !defined( GL_LUMINANCE12_ALPHA4 )
-#define GL_LUMINANCE12_ALPHA4							0x8046	// deprecated, same as GL_LUMINANCE12_ALPHA4_EXT
-#endif
-#if !defined( GL_LUMINANCE12_ALPHA12 )
-#define GL_LUMINANCE12_ALPHA12							0x8047	// deprecated, same as GL_LUMINANCE12_ALPHA12_EXT
-#endif
-#if !defined( GL_LUMINANCE16_ALPHA16 )
-#define GL_LUMINANCE16_ALPHA16							0x8048	// deprecated, same as GL_LUMINANCE16_ALPHA16_EXT
-#endif
-#if !defined( GL_LUMINANCE16_ALPHA16_SNORM )
-#define GL_LUMINANCE16_ALPHA16_SNORM					0x901A	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA16UI_EXT )
-#define GL_LUMINANCE_ALPHA16UI_EXT						0x8D7B	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA16I_EXT )
-#define GL_LUMINANCE_ALPHA16I_EXT						0x8D8D	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA16F_ARB )
-#define GL_LUMINANCE_ALPHA16F_ARB						0x881F	// deprecated, same as GL_LUMINANCE_ALPHA_FLOAT16_APPLE and GL_LUMINANCE_ALPHA_FLOAT16_ATI
-#endif
-#if !defined( GL_LUMINANCE_ALPHA32UI_EXT )
-#define GL_LUMINANCE_ALPHA32UI_EXT						0x8D75	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA32I_EXT )
-#define GL_LUMINANCE_ALPHA32I_EXT						0x8D87	// deprecated
-#endif
-#if !defined( GL_LUMINANCE_ALPHA32F_ARB )
-#define GL_LUMINANCE_ALPHA32F_ARB						0x8819	// deprecated, same as GL_LUMINANCE_ALPHA_FLOAT32_APPLE and GL_LUMINANCE_ALPHA_FLOAT32_ATI
-#endif
-
-//
-// Intensity
-//
-
-#if !defined( GL_INTENSITY4 )
-#define GL_INTENSITY4									0x804A	// deprecated, same as GL_INTENSITY4_EXT
-#endif
-#if !defined( GL_INTENSITY8 )
-#define GL_INTENSITY8									0x804B	// deprecated, same as GL_INTENSITY8_EXT
-#endif
-#if !defined( GL_INTENSITY8_SNORM )
-#define GL_INTENSITY8_SNORM								0x9017	// deprecated
-#endif
-#if !defined( GL_INTENSITY8UI_EXT )
-#define GL_INTENSITY8UI_EXT								0x8D7F	// deprecated
-#endif
-#if !defined( GL_INTENSITY8I_EXT )
-#define GL_INTENSITY8I_EXT								0x8D91	// deprecated
-#endif
-#if !defined( GL_INTENSITY12 )
-#define GL_INTENSITY12									0x804C	// deprecated, same as GL_INTENSITY12_EXT
-#endif
-#if !defined( GL_INTENSITY16 )
-#define GL_INTENSITY16									0x804D	// deprecated, same as GL_INTENSITY16_EXT
-#endif
-#if !defined( GL_INTENSITY16_SNORM )
-#define GL_INTENSITY16_SNORM							0x901B	// deprecated
-#endif
-#if !defined( GL_INTENSITY16UI_EXT )
-#define GL_INTENSITY16UI_EXT							0x8D79	// deprecated
-#endif
-#if !defined( GL_INTENSITY16I_EXT )
-#define GL_INTENSITY16I_EXT								0x8D8B	// deprecated
-#endif
-#if !defined( GL_INTENSITY16F_ARB )
-#define GL_INTENSITY16F_ARB								0x881D	// deprecated, same as GL_INTENSITY_FLOAT16_APPLE and GL_INTENSITY_FLOAT16_ATI
-#endif
-#if !defined( GL_INTENSITY32UI_EXT )
-#define GL_INTENSITY32UI_EXT							0x8D73	// deprecated
-#endif
-#if !defined( GL_INTENSITY32I_EXT )
-#define GL_INTENSITY32I_EXT								0x8D85	// deprecated
-#endif
-#if !defined( GL_INTENSITY32F_ARB )
-#define GL_INTENSITY32F_ARB								0x8817	// deprecated, same as GL_INTENSITY_FLOAT32_APPLE and GL_INTENSITY_FLOAT32_ATI
-#endif
-
-//
-// Generic compression
-//
-
-#if !defined( GL_COMPRESSED_RED )
-#define GL_COMPRESSED_RED								0x8225
-#endif
-#if !defined( GL_COMPRESSED_ALPHA )
-#define GL_COMPRESSED_ALPHA								0x84E9	// deprecated, same as GL_COMPRESSED_ALPHA_ARB
-#endif
-#if !defined( GL_COMPRESSED_LUMINANCE )
-#define GL_COMPRESSED_LUMINANCE							0x84EA	// deprecated, same as GL_COMPRESSED_LUMINANCE_ARB
-#endif
-#if !defined( GL_COMPRESSED_SLUMINANCE )
-#define GL_COMPRESSED_SLUMINANCE						0x8C4A	// deprecated, same as GL_COMPRESSED_SLUMINANCE_EXT
-#endif
-#if !defined( GL_COMPRESSED_LUMINANCE_ALPHA )
-#define GL_COMPRESSED_LUMINANCE_ALPHA					0x84EB	// deprecated, same as GL_COMPRESSED_LUMINANCE_ALPHA_ARB
-#endif
-#if !defined( GL_COMPRESSED_SLUMINANCE_ALPHA )
-#define GL_COMPRESSED_SLUMINANCE_ALPHA					0x8C4B	// deprecated, same as GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
-#endif
-#if !defined( GL_COMPRESSED_INTENSITY )
-#define GL_COMPRESSED_INTENSITY							0x84EC	// deprecated, same as GL_COMPRESSED_INTENSITY_ARB
-#endif
-#if !defined( GL_COMPRESSED_RG )
-#define GL_COMPRESSED_RG								0x8226
-#endif
-#if !defined( GL_COMPRESSED_RGB )
-#define GL_COMPRESSED_RGB								0x84ED	// same as GL_COMPRESSED_RGB_ARB
-#endif
-#if !defined( GL_COMPRESSED_RGBA )
-#define GL_COMPRESSED_RGBA								0x84EE	// same as GL_COMPRESSED_RGBA_ARB
-#endif
-#if !defined( GL_COMPRESSED_SRGB )
-#define GL_COMPRESSED_SRGB								0x8C48	// same as GL_COMPRESSED_SRGB_EXT
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA )
-#define GL_COMPRESSED_SRGB_ALPHA						0x8C49	// same as GL_COMPRESSED_SRGB_ALPHA_EXT
-#endif
-
-//
-// FXT1
-//
-
-#if !defined( GL_COMPRESSED_RGB_FXT1_3DFX )
-#define GL_COMPRESSED_RGB_FXT1_3DFX						0x86B0	// deprecated
-#endif
-#if !defined( GL_COMPRESSED_RGBA_FXT1_3DFX )
-#define GL_COMPRESSED_RGBA_FXT1_3DFX					0x86B1	// deprecated
-#endif
-
-//
-// S3TC/DXT/BC
-//
-
-#if !defined( GL_COMPRESSED_RGB_S3TC_DXT1_EXT )
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT					0x83F0
-#endif
-#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT1_EXT )
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT				0x83F1
-#endif
-#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT3_EXT )
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT				0x83F2
-#endif
-#if !defined( GL_COMPRESSED_RGBA_S3TC_DXT5_EXT )
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT				0x83F3
-#endif
-
-#if !defined( GL_COMPRESSED_SRGB_S3TC_DXT1_EXT )
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT				0x8C4C
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT )
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT			0x8C4D
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT )
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT			0x8C4E
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT )
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT			0x8C4F
-#endif
-
-#if !defined( GL_COMPRESSED_LUMINANCE_LATC1_EXT )
-#define GL_COMPRESSED_LUMINANCE_LATC1_EXT				0x8C70
-#endif
-#if !defined( GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT )
-#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT			0x8C72
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT )
-#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT		0x8C71
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT )
-#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT	0x8C73
-#endif
-
-#if !defined( GL_COMPRESSED_RED_RGTC1 )
-#define GL_COMPRESSED_RED_RGTC1							0x8DBB	// same as GL_COMPRESSED_RED_RGTC1_EXT
-#endif
-#if !defined( GL_COMPRESSED_RG_RGTC2 )
-#define GL_COMPRESSED_RG_RGTC2							0x8DBD	// same as GL_COMPRESSED_RG_RGTC2_EXT
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_RED_RGTC1 )
-#define GL_COMPRESSED_SIGNED_RED_RGTC1					0x8DBC	// same as GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_RG_RGTC2 )
-#define GL_COMPRESSED_SIGNED_RG_RGTC2					0x8DBE	// same as GL_COMPRESSED_SIGNED_RG_RGTC2_EXT
-#endif
-
-#if !defined( GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT )
-#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT				0x8E8E	// same as GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
-#endif
-#if !defined( GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT )
-#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT			0x8E8F	// same as GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
-#endif
-#if !defined( GL_COMPRESSED_RGBA_BPTC_UNORM )
-#define GL_COMPRESSED_RGBA_BPTC_UNORM					0x8E8C	// same as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB	
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM )
-#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM				0x8E8D	// same as GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
-#endif
-
-//
-// ETC
-//
-
-#if !defined( GL_ETC1_RGB8_OES )
-#define GL_ETC1_RGB8_OES								0x8D64
-#endif
-
-#if !defined( GL_COMPRESSED_RGB8_ETC2 )
-#define GL_COMPRESSED_RGB8_ETC2							0x9274
-#endif
-#if !defined( GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 )
-#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2		0x9276
-#endif
-#if !defined( GL_COMPRESSED_RGBA8_ETC2_EAC )
-#define GL_COMPRESSED_RGBA8_ETC2_EAC					0x9278
-#endif
-
-#if !defined( GL_COMPRESSED_SRGB8_ETC2 )
-#define GL_COMPRESSED_SRGB8_ETC2						0x9275
-#endif
-#if !defined( GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 )
-#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2	0x9277
-#endif
-#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC )
-#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC				0x9279
-#endif
-
-#if !defined( GL_COMPRESSED_R11_EAC )
-#define GL_COMPRESSED_R11_EAC							0x9270
-#endif
-#if !defined( GL_COMPRESSED_RG11_EAC )
-#define GL_COMPRESSED_RG11_EAC							0x9272
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_R11_EAC )
-#define GL_COMPRESSED_SIGNED_R11_EAC					0x9271
-#endif
-#if !defined( GL_COMPRESSED_SIGNED_RG11_EAC )
-#define GL_COMPRESSED_SIGNED_RG11_EAC					0x9273
-#endif
-
-//
-// PVRTC
-//
-
-#if !defined( GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG )
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG				0x8C01
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG				0x8C00
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG				0x8C03
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG				0x8C02
-#endif
-#if !defined( GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG )
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG				0x9137
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG				0x9138
-#endif
-#if !defined( GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT )
-#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT				0x8A54
-#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT				0x8A55
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT		0x8A56
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT		0x8A57
-#endif
-#if !defined( GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG )
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG		0x93F0
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG		0x93F1
-#endif
-
-//
-// ASTC
-//
-
-#if !defined( GL_COMPRESSED_RGBA_ASTC_4x4_KHR )
-#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR					0x93B0
-#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR					0x93B1
-#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR					0x93B2
-#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR					0x93B3
-#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR					0x93B4
-#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR					0x93B5
-#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR					0x93B6
-#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR					0x93B7
-#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR				0x93B8
-#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR				0x93B9
-#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR				0x93BA
-#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR				0x93BB
-#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR				0x93BC
-#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR				0x93BD
-#endif
-
-#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR )
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR			0x93D0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR			0x93D1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR			0x93D2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR			0x93D3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR			0x93D4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR			0x93D5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR			0x93D6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR			0x93D7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR		0x93D8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR		0x93D9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR		0x93DA
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR		0x93DB
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR		0x93DC
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR		0x93DD
-#endif
-
-#if !defined( GL_COMPRESSED_RGBA_ASTC_3x3x3_OES )
-#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES				0x93C0
-#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES				0x93C1
-#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES				0x93C2
-#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES				0x93C3
-#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES				0x93C4
-#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES				0x93C5
-#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES				0x93C6
-#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES				0x93C7
-#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES				0x93C8
-#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES				0x93C9
-#endif
-
-#if !defined( GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES )
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES		0x93E0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES		0x93E1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES		0x93E2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES		0x93E3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES		0x93E4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES		0x93E5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES		0x93E6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES		0x93E7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES		0x93E8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES		0x93E9
-#endif
-
-//
-// ATC
-//
-
-#if !defined( GL_ATC_RGB_AMD )
-#define GL_ATC_RGB_AMD									0x8C92
-#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD					0x8C93
-#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD				0x87EE
-#endif
-
-//
-// Palletized (combined palette)
-//
-
-#if !defined( GL_PALETTE4_RGB8_OES )
-#define GL_PALETTE4_RGB8_OES							0x8B90
-#define GL_PALETTE4_RGBA8_OES							0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES						0x8B92
-#define GL_PALETTE4_RGBA4_OES							0x8B93
-#define GL_PALETTE4_RGB5_A1_OES							0x8B94
-#define GL_PALETTE8_RGB8_OES							0x8B95
-#define GL_PALETTE8_RGBA8_OES							0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES						0x8B97
-#define GL_PALETTE8_RGBA4_OES							0x8B98
-#define GL_PALETTE8_RGB5_A1_OES							0x8B99
-#endif
-
-//
-// Palletized (separate palette)
-//
-
-#if !defined( GL_COLOR_INDEX1_EXT )
-#define GL_COLOR_INDEX1_EXT								0x80E2	// deprecated
-#define GL_COLOR_INDEX2_EXT								0x80E3	// deprecated
-#define GL_COLOR_INDEX4_EXT								0x80E4	// deprecated
-#define GL_COLOR_INDEX8_EXT								0x80E5	// deprecated
-#define GL_COLOR_INDEX12_EXT							0x80E6	// deprecated
-#define GL_COLOR_INDEX16_EXT							0x80E7	// deprecated
-#endif
-
-//
-// Depth/stencil
-//
-
-#if !defined( GL_DEPTH_COMPONENT16 )
-#define GL_DEPTH_COMPONENT16							0x81A5	// same as GL_DEPTH_COMPONENT16_SGIX and GL_DEPTH_COMPONENT16_ARB
-#endif
-#if !defined( GL_DEPTH_COMPONENT24 )
-#define GL_DEPTH_COMPONENT24							0x81A6	// same as GL_DEPTH_COMPONENT24_SGIX and GL_DEPTH_COMPONENT24_ARB
-#endif
-#if !defined( GL_DEPTH_COMPONENT32 )
-#define GL_DEPTH_COMPONENT32							0x81A7	// same as GL_DEPTH_COMPONENT32_SGIX and GL_DEPTH_COMPONENT32_ARB and GL_DEPTH_COMPONENT32_OES
-#endif
-#if !defined( GL_DEPTH_COMPONENT32F )
-#define GL_DEPTH_COMPONENT32F							0x8CAC	// same as GL_DEPTH_COMPONENT32F_ARB
-#endif
-#if !defined( GL_DEPTH_COMPONENT32F_NV )
-#define GL_DEPTH_COMPONENT32F_NV						0x8DAB	// note that this is different from GL_DEPTH_COMPONENT32F
-#endif
-#if !defined( GL_STENCIL_INDEX1 )
-#define GL_STENCIL_INDEX1								0x8D46	// same as GL_STENCIL_INDEX1_EXT
-#endif
-#if !defined( GL_STENCIL_INDEX4 )
-#define GL_STENCIL_INDEX4								0x8D47	// same as GL_STENCIL_INDEX4_EXT
-#endif
-#if !defined( GL_STENCIL_INDEX8 )
-#define GL_STENCIL_INDEX8								0x8D48	// same as GL_STENCIL_INDEX8_EXT
-#endif
-#if !defined( GL_STENCIL_INDEX16 )
-#define GL_STENCIL_INDEX16								0x8D49	// same as GL_STENCIL_INDEX16_EXT
-#endif
-#if !defined( GL_DEPTH24_STENCIL8 )
-#define GL_DEPTH24_STENCIL8								0x88F0	// same as GL_DEPTH24_STENCIL8_EXT and GL_DEPTH24_STENCIL8_OES
-#endif
-#if !defined( GL_DEPTH32F_STENCIL8 )
-#define GL_DEPTH32F_STENCIL8							0x8CAD	// same as GL_DEPTH32F_STENCIL8_ARB
-#endif
-#if !defined( GL_DEPTH32F_STENCIL8_NV )
-#define GL_DEPTH32F_STENCIL8_NV							0x8DAC	// note that this is different from GL_DEPTH32F_STENCIL8
-#endif
-
-static inline GLenum glGetFormatFromInternalFormat( const GLenum internalFormat )
-{
-	switch ( internalFormat )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_R8:												return GL_RED;		// 1-component, 8-bit unsigned normalized
-		case GL_RG8:											return GL_RG;		// 2-component, 8-bit unsigned normalized
-		case GL_RGB8:											return GL_RGB;		// 3-component, 8-bit unsigned normalized
-		case GL_RGBA8:											return GL_RGBA;		// 4-component, 8-bit unsigned normalized
-
-		case GL_R8_SNORM:										return GL_RED;		// 1-component, 8-bit signed normalized
-		case GL_RG8_SNORM:										return GL_RG;		// 2-component, 8-bit signed normalized
-		case GL_RGB8_SNORM:										return GL_RGB;		// 3-component, 8-bit signed normalized
-		case GL_RGBA8_SNORM:									return GL_RGBA;		// 4-component, 8-bit signed normalized
-
-		case GL_R8UI:											return GL_RED;		// 1-component, 8-bit unsigned integer
-		case GL_RG8UI:											return GL_RG;		// 2-component, 8-bit unsigned integer
-		case GL_RGB8UI:											return GL_RGB;		// 3-component, 8-bit unsigned integer
-		case GL_RGBA8UI:										return GL_RGBA;		// 4-component, 8-bit unsigned integer
-
-		case GL_R8I:											return GL_RED;		// 1-component, 8-bit signed integer
-		case GL_RG8I:											return GL_RG;		// 2-component, 8-bit signed integer
-		case GL_RGB8I:											return GL_RGB;		// 3-component, 8-bit signed integer
-		case GL_RGBA8I:											return GL_RGBA;		// 4-component, 8-bit signed integer
-
-		case GL_SR8:											return GL_RED;		// 1-component, 8-bit sRGB
-		case GL_SRG8:											return GL_RG;		// 2-component, 8-bit sRGB
-		case GL_SRGB8:											return GL_RGB;		// 3-component, 8-bit sRGB
-		case GL_SRGB8_ALPHA8:									return GL_RGBA;		// 4-component, 8-bit sRGB
-
-		//
-		// 16 bits per component
-		//
-		case GL_R16:											return GL_RED;		// 1-component, 16-bit unsigned normalized
-		case GL_RG16:											return GL_RG;		// 2-component, 16-bit unsigned normalized
-		case GL_RGB16:											return GL_RGB;		// 3-component, 16-bit unsigned normalized
-		case GL_RGBA16:											return GL_RGBA;		// 4-component, 16-bit unsigned normalized
-
-		case GL_R16_SNORM:										return GL_RED;		// 1-component, 16-bit signed normalized
-		case GL_RG16_SNORM:										return GL_RG;		// 2-component, 16-bit signed normalized
-		case GL_RGB16_SNORM:									return GL_RGB;		// 3-component, 16-bit signed normalized
-		case GL_RGBA16_SNORM:									return GL_RGBA;		// 4-component, 16-bit signed normalized
-
-		case GL_R16UI:											return GL_RED;		// 1-component, 16-bit unsigned integer
-		case GL_RG16UI:											return GL_RG;		// 2-component, 16-bit unsigned integer
-		case GL_RGB16UI:										return GL_RGB;		// 3-component, 16-bit unsigned integer
-		case GL_RGBA16UI:										return GL_RGBA;		// 4-component, 16-bit unsigned integer
-
-		case GL_R16I:											return GL_RED;		// 1-component, 16-bit signed integer
-		case GL_RG16I:											return GL_RG;		// 2-component, 16-bit signed integer
-		case GL_RGB16I:											return GL_RGB;		// 3-component, 16-bit signed integer
-		case GL_RGBA16I:										return GL_RGBA;		// 4-component, 16-bit signed integer
-
-		case GL_R16F:											return GL_RED;		// 1-component, 16-bit floating-point
-		case GL_RG16F:											return GL_RG;		// 2-component, 16-bit floating-point
-		case GL_RGB16F:											return GL_RGB;		// 3-component, 16-bit floating-point
-		case GL_RGBA16F:										return GL_RGBA;		// 4-component, 16-bit floating-point
-
-		//
-		// 32 bits per component
-		//
-		case GL_R32UI:											return GL_RED;		// 1-component, 32-bit unsigned integer
-		case GL_RG32UI:											return GL_RG;		// 2-component, 32-bit unsigned integer
-		case GL_RGB32UI:										return GL_RGB;		// 3-component, 32-bit unsigned integer
-		case GL_RGBA32UI:										return GL_RGBA;		// 4-component, 32-bit unsigned integer
-
-		case GL_R32I:											return GL_RED;		// 1-component, 32-bit signed integer
-		case GL_RG32I:											return GL_RG;		// 2-component, 32-bit signed integer
-		case GL_RGB32I:											return GL_RGB;		// 3-component, 32-bit signed integer
-		case GL_RGBA32I:										return GL_RGBA;		// 4-component, 32-bit signed integer
-
-		case GL_R32F:											return GL_RED;		// 1-component, 32-bit floating-point
-		case GL_RG32F:											return GL_RG;		// 2-component, 32-bit floating-point
-		case GL_RGB32F:											return GL_RGB;		// 3-component, 32-bit floating-point
-		case GL_RGBA32F:										return GL_RGBA;		// 4-component, 32-bit floating-point
-
-		//
-		// Packed
-		//
-		case GL_R3_G3_B2:										return GL_RGB;		// 3-component 3:3:2,       unsigned normalized
-		case GL_RGB4:											return GL_RGB;		// 3-component 4:4:4,       unsigned normalized
-		case GL_RGB5:											return GL_RGB;		// 3-component 5:5:5,       unsigned normalized
-		case GL_RGB565:											return GL_RGB;		// 3-component 5:6:5,       unsigned normalized
-		case GL_RGB10:											return GL_RGB;		// 3-component 10:10:10,    unsigned normalized
-		case GL_RGB12:											return GL_RGB;		// 3-component 12:12:12,    unsigned normalized
-		case GL_RGBA2:											return GL_RGBA;		// 4-component 2:2:2:2,     unsigned normalized
-		case GL_RGBA4:											return GL_RGBA;		// 4-component 4:4:4:4,     unsigned normalized
-		case GL_RGBA12:											return GL_RGBA;		// 4-component 12:12:12:12, unsigned normalized
-		case GL_RGB5_A1:										return GL_RGBA;		// 4-component 5:5:5:1,     unsigned normalized
-		case GL_RGB10_A2:										return GL_RGBA;		// 4-component 10:10:10:2,  unsigned normalized
-		case GL_RGB10_A2UI:										return GL_RGBA;		// 4-component 10:10:10:2,  unsigned integer
-		case GL_R11F_G11F_B10F:									return GL_RGB;		// 3-component 11:11:10,    floating-point
-		case GL_RGB9_E5:										return GL_RGB;		// 3-component/exp 9:9:9/5, floating-point
-
-		//
-		// S3TC/DXT/BC
-		//
-
-		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:					return GL_RGB;		// line through 3D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:					return GL_RGBA;		// line through 3D space plus 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:					return GL_RGBA;		// line through 3D space plus line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:					return GL_RGBA;		// line through 3D space plus 4-bit alpha, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:					return GL_RGB;		// line through 3D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:			return GL_RGBA;		// line through 3D space plus 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:			return GL_RGBA;		// line through 3D space plus line through 1D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:			return GL_RGBA;		// line through 3D space plus 4-bit alpha, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_LUMINANCE_LATC1_EXT:					return GL_RED;		// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT:			return GL_RG;		// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT:			return GL_RED;		// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT:	return GL_RG;		// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RED_RGTC1:							return GL_RED;		// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG_RGTC2:							return GL_RG;		// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RED_RGTC1:					return GL_RED;		// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG_RGTC2:						return GL_RG;		// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:				return GL_RGB;		// 3-component, 4x4 blocks, unsigned floating-point
-		case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:				return GL_RGB;		// 3-component, 4x4 blocks, signed floating-point
-		case GL_COMPRESSED_RGBA_BPTC_UNORM:						return GL_RGBA;		// 4-component, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:				return GL_RGBA;		// 4-component, 4x4 blocks, sRGB
-
-		//
-		// ETC
-		//
-		case GL_ETC1_RGB8_OES:									return GL_RGB;		// 3-component ETC1, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_RGB8_ETC2:							return GL_RGB;		// 3-component ETC2, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return GL_RGBA;		// 4-component ETC2 with 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA8_ETC2_EAC:						return GL_RGBA;		// 4-component ETC2, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ETC2:							return GL_RGB;		// 3-component ETC2, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return GL_RGBA;		// 4-component ETC2 with 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:				return GL_RGBA;		// 4-component ETC2, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_R11_EAC:								return GL_RED;		// 1-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG11_EAC:							return GL_RG;		// 2-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_R11_EAC:						return GL_RED;		// 1-component ETC, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG11_EAC:						return GL_RG;		// 2-component ETC, 4x4 blocks, signed normalized
-
-		//
-		// PVRTC
-		//
-		case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:				return GL_RGB;		// 3-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:				return GL_RGB;		// 3-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:				return GL_RGBA;		// 4-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:				return GL_RGBA;		// 4-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG:				return GL_RGBA;		// 4-component PVRTC,  8x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG:				return GL_RGBA;		// 4-component PVRTC,  4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:				return GL_RGB;		// 3-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:				return GL_RGB;		// 3-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:			return GL_RGBA;		// 4-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:			return GL_RGBA;		// 4-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG:			return GL_RGBA;		// 4-component PVRTC,  8x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG:			return GL_RGBA;		// 4-component PVRTC,  4x4 blocks, sRGB
-
-		//
-		// ASTC
-		//
-		case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:					return GL_RGBA;		// 4-component ASTC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:					return GL_RGBA;		// 4-component ASTC, 5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:					return GL_RGBA;		// 4-component ASTC, 5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:					return GL_RGBA;		// 4-component ASTC, 6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:					return GL_RGBA;		// 4-component ASTC, 6x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:					return GL_RGBA;		// 4-component ASTC, 8x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:					return GL_RGBA;		// 4-component ASTC, 8x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:					return GL_RGBA;		// 4-component ASTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:					return GL_RGBA;		// 4-component ASTC, 10x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:					return GL_RGBA;		// 4-component ASTC, 10x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:					return GL_RGBA;		// 4-component ASTC, 10x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:					return GL_RGBA;		// 4-component ASTC, 10x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:					return GL_RGBA;		// 4-component ASTC, 12x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:					return GL_RGBA;		// 4-component ASTC, 12x12 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:			return GL_RGBA;		// 4-component ASTC, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:			return GL_RGBA;		// 4-component ASTC, 5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:			return GL_RGBA;		// 4-component ASTC, 5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:			return GL_RGBA;		// 4-component ASTC, 6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:			return GL_RGBA;		// 4-component ASTC, 6x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:			return GL_RGBA;		// 4-component ASTC, 8x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:			return GL_RGBA;		// 4-component ASTC, 8x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:			return GL_RGBA;		// 4-component ASTC, 8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:			return GL_RGBA;		// 4-component ASTC, 10x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:			return GL_RGBA;		// 4-component ASTC, 10x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:			return GL_RGBA;		// 4-component ASTC, 10x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:			return GL_RGBA;		// 4-component ASTC, 10x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:			return GL_RGBA;		// 4-component ASTC, 12x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:			return GL_RGBA;		// 4-component ASTC, 12x12 blocks, sRGB
-
-		case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:					return GL_RGBA;		// 4-component ASTC, 3x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:					return GL_RGBA;		// 4-component ASTC, 4x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:					return GL_RGBA;		// 4-component ASTC, 4x4x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:					return GL_RGBA;		// 4-component ASTC, 4x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:					return GL_RGBA;		// 4-component ASTC, 5x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:					return GL_RGBA;		// 4-component ASTC, 5x5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:					return GL_RGBA;		// 4-component ASTC, 5x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:					return GL_RGBA;		// 4-component ASTC, 6x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:					return GL_RGBA;		// 4-component ASTC, 6x6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:					return GL_RGBA;		// 4-component ASTC, 6x6x6 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:			return GL_RGBA;		// 4-component ASTC, 3x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:			return GL_RGBA;		// 4-component ASTC, 4x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:			return GL_RGBA;		// 4-component ASTC, 4x4x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:			return GL_RGBA;		// 4-component ASTC, 4x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:			return GL_RGBA;		// 4-component ASTC, 5x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:			return GL_RGBA;		// 4-component ASTC, 5x5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:			return GL_RGBA;		// 4-component ASTC, 5x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:			return GL_RGBA;		// 4-component ASTC, 6x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:			return GL_RGBA;		// 4-component ASTC, 6x6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:			return GL_RGBA;		// 4-component ASTC, 6x6x6 blocks, sRGB
-
-		//
-		// ATC
-		//
-		case GL_ATC_RGB_AMD:									return GL_RGB;		// 3-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_EXPLICIT_ALPHA_AMD:					return GL_RGBA;		// 4-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:				return GL_RGBA;		// 4-component, 4x4 blocks, unsigned normalized
-
-		//
-		// Palletized
-		//
-		case GL_PALETTE4_RGB8_OES:								return GL_RGB;		// 3-component 8:8:8,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA8_OES:								return GL_RGBA;		// 4-component 8:8:8:8, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_R5_G6_B5_OES:							return GL_RGB;		// 3-component 5:6:5,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA4_OES:								return GL_RGBA;		// 4-component 4:4:4:4, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGB5_A1_OES:							return GL_RGBA;		// 4-component 5:5:5:1, 4-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB8_OES:								return GL_RGB;		// 3-component 8:8:8,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA8_OES:								return GL_RGBA;		// 4-component 8:8:8:8, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_R5_G6_B5_OES:							return GL_RGB;		// 3-component 5:6:5,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA4_OES:								return GL_RGBA;		// 4-component 4:4:4:4, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB5_A1_OES:							return GL_RGBA;		// 4-component 5:5:5:1, 8-bit palette, unsigned normalized
-
-		//
-		// Depth/stencil
-		//
-		case GL_DEPTH_COMPONENT16:								return GL_DEPTH_COMPONENT;
-		case GL_DEPTH_COMPONENT24:								return GL_DEPTH_COMPONENT;
-		case GL_DEPTH_COMPONENT32:								return GL_DEPTH_COMPONENT;
-		case GL_DEPTH_COMPONENT32F:								return GL_DEPTH_COMPONENT;
-		case GL_DEPTH_COMPONENT32F_NV:							return GL_DEPTH_COMPONENT;
-		case GL_STENCIL_INDEX1:									return GL_STENCIL_INDEX;
-		case GL_STENCIL_INDEX4:									return GL_STENCIL_INDEX;
-		case GL_STENCIL_INDEX8:									return GL_STENCIL_INDEX;
-		case GL_STENCIL_INDEX16:								return GL_STENCIL_INDEX;
-		case GL_DEPTH24_STENCIL8:								return GL_DEPTH_STENCIL;
-		case GL_DEPTH32F_STENCIL8:								return GL_DEPTH_STENCIL;
-		case GL_DEPTH32F_STENCIL8_NV:							return GL_DEPTH_STENCIL;
-
-		default:												return GL_INVALID_VALUE;
-	}
-}
-
-static inline GLenum glGetTypeFromInternalFormat( const GLenum internalFormat )
-{
-	switch ( internalFormat )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_R8:												return GL_UNSIGNED_BYTE;				// 1-component, 8-bit unsigned normalized
-		case GL_RG8:											return GL_UNSIGNED_BYTE;				// 2-component, 8-bit unsigned normalized
-		case GL_RGB8:											return GL_UNSIGNED_BYTE;				// 3-component, 8-bit unsigned normalized
-		case GL_RGBA8:											return GL_UNSIGNED_BYTE;				// 4-component, 8-bit unsigned normalized
-
-		case GL_R8_SNORM:										return GL_BYTE;							// 1-component, 8-bit signed normalized
-		case GL_RG8_SNORM:										return GL_BYTE;							// 2-component, 8-bit signed normalized
-		case GL_RGB8_SNORM:										return GL_BYTE;							// 3-component, 8-bit signed normalized
-		case GL_RGBA8_SNORM:									return GL_BYTE;							// 4-component, 8-bit signed normalized
-
-		case GL_R8UI:											return GL_UNSIGNED_BYTE;				// 1-component, 8-bit unsigned integer
-		case GL_RG8UI:											return GL_UNSIGNED_BYTE;				// 2-component, 8-bit unsigned integer
-		case GL_RGB8UI:											return GL_UNSIGNED_BYTE;				// 3-component, 8-bit unsigned integer
-		case GL_RGBA8UI:										return GL_UNSIGNED_BYTE;				// 4-component, 8-bit unsigned integer
-
-		case GL_R8I:											return GL_BYTE;							// 1-component, 8-bit signed integer
-		case GL_RG8I:											return GL_BYTE;							// 2-component, 8-bit signed integer
-		case GL_RGB8I:											return GL_BYTE;							// 3-component, 8-bit signed integer
-		case GL_RGBA8I:											return GL_BYTE;							// 4-component, 8-bit signed integer
-
-		case GL_SR8:											return GL_UNSIGNED_BYTE;				// 1-component, 8-bit sRGB
-		case GL_SRG8:											return GL_UNSIGNED_BYTE;				// 2-component, 8-bit sRGB
-		case GL_SRGB8:											return GL_UNSIGNED_BYTE;				// 3-component, 8-bit sRGB
-		case GL_SRGB8_ALPHA8:									return GL_UNSIGNED_BYTE;				// 4-component, 8-bit sRGB
-
-		//
-		// 16 bits per component
-		//
-		case GL_R16:											return GL_UNSIGNED_SHORT;				// 1-component, 16-bit unsigned normalized
-		case GL_RG16:											return GL_UNSIGNED_SHORT;				// 2-component, 16-bit unsigned normalized
-		case GL_RGB16:											return GL_UNSIGNED_SHORT;				// 3-component, 16-bit unsigned normalized
-		case GL_RGBA16:											return GL_UNSIGNED_SHORT;				// 4-component, 16-bit unsigned normalized
-
-		case GL_R16_SNORM:										return GL_SHORT;						// 1-component, 16-bit signed normalized
-		case GL_RG16_SNORM:										return GL_SHORT;						// 2-component, 16-bit signed normalized
-		case GL_RGB16_SNORM:									return GL_SHORT;						// 3-component, 16-bit signed normalized
-		case GL_RGBA16_SNORM:									return GL_SHORT;						// 4-component, 16-bit signed normalized
-
-		case GL_R16UI:											return GL_UNSIGNED_SHORT;				// 1-component, 16-bit unsigned integer
-		case GL_RG16UI:											return GL_UNSIGNED_SHORT;				// 2-component, 16-bit unsigned integer
-		case GL_RGB16UI:										return GL_UNSIGNED_SHORT;				// 3-component, 16-bit unsigned integer
-		case GL_RGBA16UI:										return GL_UNSIGNED_SHORT;				// 4-component, 16-bit unsigned integer
-
-		case GL_R16I:											return GL_SHORT;						// 1-component, 16-bit signed integer
-		case GL_RG16I:											return GL_SHORT;						// 2-component, 16-bit signed integer
-		case GL_RGB16I:											return GL_SHORT;						// 3-component, 16-bit signed integer
-		case GL_RGBA16I:										return GL_SHORT;						// 4-component, 16-bit signed integer
-
-		case GL_R16F:											return GL_HALF_FLOAT;					// 1-component, 16-bit floating-point
-		case GL_RG16F:											return GL_HALF_FLOAT;					// 2-component, 16-bit floating-point
-		case GL_RGB16F:											return GL_HALF_FLOAT;					// 3-component, 16-bit floating-point
-		case GL_RGBA16F:										return GL_HALF_FLOAT;					// 4-component, 16-bit floating-point
-
-		//
-		// 32 bits per component
-		//
-		case GL_R32UI:											return GL_UNSIGNED_INT;					// 1-component, 32-bit unsigned integer
-		case GL_RG32UI:											return GL_UNSIGNED_INT;					// 2-component, 32-bit unsigned integer
-		case GL_RGB32UI:										return GL_UNSIGNED_INT;					// 3-component, 32-bit unsigned integer
-		case GL_RGBA32UI:										return GL_UNSIGNED_INT;					// 4-component, 32-bit unsigned integer
-
-		case GL_R32I:											return GL_INT;							// 1-component, 32-bit signed integer
-		case GL_RG32I:											return GL_INT;							// 2-component, 32-bit signed integer
-		case GL_RGB32I:											return GL_INT;							// 3-component, 32-bit signed integer
-		case GL_RGBA32I:										return GL_INT;							// 4-component, 32-bit signed integer
-
-		case GL_R32F:											return GL_FLOAT;						// 1-component, 32-bit floating-point
-		case GL_RG32F:											return GL_FLOAT;						// 2-component, 32-bit floating-point
-		case GL_RGB32F:											return GL_FLOAT;						// 3-component, 32-bit floating-point
-		case GL_RGBA32F:										return GL_FLOAT;						// 4-component, 32-bit floating-point
-
-		//
-		// Packed
-		//
-		case GL_R3_G3_B2:										return GL_UNSIGNED_BYTE_2_3_3_REV;		// 3-component 3:3:2,       unsigned normalized
-		case GL_RGB4:											return GL_UNSIGNED_SHORT_4_4_4_4;		// 3-component 4:4:4,       unsigned normalized
-		case GL_RGB5:											return GL_UNSIGNED_SHORT_5_5_5_1;		// 3-component 5:5:5,       unsigned normalized
-		case GL_RGB565:											return GL_UNSIGNED_SHORT_5_6_5;			// 3-component 5:6:5,       unsigned normalized
-		case GL_RGB10:											return GL_UNSIGNED_INT_10_10_10_2;		// 3-component 10:10:10,    unsigned normalized
-		case GL_RGB12:											return GL_UNSIGNED_SHORT;				// 3-component 12:12:12,    unsigned normalized
-		case GL_RGBA2:											return GL_UNSIGNED_BYTE;				// 4-component 2:2:2:2,     unsigned normalized
-		case GL_RGBA4:											return GL_UNSIGNED_SHORT_4_4_4_4;		// 4-component 4:4:4:4,     unsigned normalized
-		case GL_RGBA12:											return GL_UNSIGNED_SHORT;				// 4-component 12:12:12:12, unsigned normalized
-		case GL_RGB5_A1:										return GL_UNSIGNED_SHORT_5_5_5_1;		// 4-component 5:5:5:1,     unsigned normalized
-		case GL_RGB10_A2:										return GL_UNSIGNED_INT_2_10_10_10_REV;	// 4-component 10:10:10:2,  unsigned normalized
-		case GL_RGB10_A2UI:										return GL_UNSIGNED_INT_2_10_10_10_REV;	// 4-component 10:10:10:2,  unsigned integer
-		case GL_R11F_G11F_B10F:									return GL_UNSIGNED_INT_10F_11F_11F_REV;	// 3-component 11:11:10,    floating-point
-		case GL_RGB9_E5:										return GL_UNSIGNED_INT_5_9_9_9_REV;		// 3-component/exp 9:9:9/5, floating-point
-
-		//
-		// S3TC/DXT/BC
-		//
-
-		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:					return GL_UNSIGNED_BYTE;				// line through 3D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:					return GL_UNSIGNED_BYTE;				// line through 3D space plus 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:					return GL_UNSIGNED_BYTE;				// line through 3D space plus line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:					return GL_UNSIGNED_BYTE;				// line through 3D space plus 4-bit alpha, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:					return GL_UNSIGNED_BYTE;				// line through 3D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:			return GL_UNSIGNED_BYTE;				// line through 3D space plus 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:			return GL_UNSIGNED_BYTE;				// line through 3D space plus line through 1D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:			return GL_UNSIGNED_BYTE;				// line through 3D space plus 4-bit alpha, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_LUMINANCE_LATC1_EXT:					return GL_UNSIGNED_BYTE;				// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT:			return GL_UNSIGNED_BYTE;				// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT:			return GL_UNSIGNED_BYTE;				// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT:	return GL_UNSIGNED_BYTE;				// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RED_RGTC1:							return GL_UNSIGNED_BYTE;				// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG_RGTC2:							return GL_UNSIGNED_BYTE;				// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RED_RGTC1:					return GL_UNSIGNED_BYTE;				// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG_RGTC2:						return GL_UNSIGNED_BYTE;				// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:				return GL_FLOAT;						// 3-component, 4x4 blocks, unsigned floating-point
-		case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:				return GL_FLOAT;						// 3-component, 4x4 blocks, signed floating-point
-		case GL_COMPRESSED_RGBA_BPTC_UNORM:						return GL_UNSIGNED_BYTE;				// 4-component, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:				return GL_UNSIGNED_BYTE;				// 4-component, 4x4 blocks, sRGB
-
-		//
-		// ETC
-		//
-		case GL_ETC1_RGB8_OES:									return GL_UNSIGNED_BYTE;				// 3-component ETC1, 4x4 blocks, unsigned normalized" ),
-
-		case GL_COMPRESSED_RGB8_ETC2:							return GL_UNSIGNED_BYTE;				// 3-component ETC2, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return GL_UNSIGNED_BYTE;				// 4-component ETC2 with 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA8_ETC2_EAC:						return GL_UNSIGNED_BYTE;				// 4-component ETC2, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ETC2:							return GL_UNSIGNED_BYTE;				// 3-component ETC2, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return GL_UNSIGNED_BYTE;				// 4-component ETC2 with 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:				return GL_UNSIGNED_BYTE;				// 4-component ETC2, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_R11_EAC:								return GL_UNSIGNED_BYTE;				// 1-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG11_EAC:							return GL_UNSIGNED_BYTE;				// 2-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_R11_EAC:						return GL_UNSIGNED_BYTE;				// 1-component ETC, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG11_EAC:						return GL_UNSIGNED_BYTE;				// 2-component ETC, 4x4 blocks, signed normalized
-
-		//
-		// PVRTC
-		//
-		case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:				return GL_UNSIGNED_BYTE;				// 3-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:				return GL_UNSIGNED_BYTE;				// 3-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:				return GL_UNSIGNED_BYTE;				// 4-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:				return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG:				return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  8x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG:				return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:				return GL_UNSIGNED_BYTE;				// 3-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:				return GL_UNSIGNED_BYTE;				// 3-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:			return GL_UNSIGNED_BYTE;				// 4-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:			return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG:			return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  8x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG:			return GL_UNSIGNED_BYTE;				// 4-component PVRTC,  4x4 blocks, sRGB
-
-		//
-		// ASTC
-		//
-		case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 12x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 12x12 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 10x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 12x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 12x12 blocks, sRGB
-
-		case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 3x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:					return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6x6 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 3x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 4x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 5x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:			return GL_UNSIGNED_BYTE;				// 4-component ASTC, 6x6x6 blocks, sRGB
-
-		//
-		// ATC
-		//
-		case GL_ATC_RGB_AMD:									return GL_UNSIGNED_BYTE;				// 3-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_EXPLICIT_ALPHA_AMD:					return GL_UNSIGNED_BYTE;				// 4-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:				return GL_UNSIGNED_BYTE;				// 4-component, 4x4 blocks, unsigned normalized
-
-		//
-		// Palletized
-		//
-		case GL_PALETTE4_RGB8_OES:								return GL_UNSIGNED_BYTE;				// 3-component 8:8:8,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA8_OES:								return GL_UNSIGNED_BYTE;				// 4-component 8:8:8:8, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_R5_G6_B5_OES:							return GL_UNSIGNED_SHORT_5_6_5;			// 3-component 5:6:5,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA4_OES:								return GL_UNSIGNED_SHORT_4_4_4_4;		// 4-component 4:4:4:4, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGB5_A1_OES:							return GL_UNSIGNED_SHORT_5_5_5_1;		// 4-component 5:5:5:1, 4-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB8_OES:								return GL_UNSIGNED_BYTE;				// 3-component 8:8:8,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA8_OES:								return GL_UNSIGNED_BYTE;				// 4-component 8:8:8:8, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_R5_G6_B5_OES:							return GL_UNSIGNED_SHORT_5_6_5;			// 3-component 5:6:5,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA4_OES:								return GL_UNSIGNED_SHORT_4_4_4_4;		// 4-component 4:4:4:4, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB5_A1_OES:							return GL_UNSIGNED_SHORT_5_5_5_1;		// 4-component 5:5:5:1, 8-bit palette, unsigned normalized
-
-		//
-		// Depth/stencil
-		//
-		case GL_DEPTH_COMPONENT16:								return GL_UNSIGNED_SHORT;
-		case GL_DEPTH_COMPONENT24:								return GL_UNSIGNED_INT_24_8;
-		case GL_DEPTH_COMPONENT32:								return GL_UNSIGNED_INT;
-		case GL_DEPTH_COMPONENT32F:								return GL_FLOAT;
-		case GL_DEPTH_COMPONENT32F_NV:							return GL_FLOAT;
-		case GL_STENCIL_INDEX1:									return GL_UNSIGNED_BYTE;
-		case GL_STENCIL_INDEX4:									return GL_UNSIGNED_BYTE;
-		case GL_STENCIL_INDEX8:									return GL_UNSIGNED_BYTE;
-		case GL_STENCIL_INDEX16:								return GL_UNSIGNED_SHORT;
-		case GL_DEPTH24_STENCIL8:								return GL_UNSIGNED_INT_24_8;
-		case GL_DEPTH32F_STENCIL8:								return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
-		case GL_DEPTH32F_STENCIL8_NV:							return GL_FLOAT_32_UNSIGNED_INT_24_8_REV;
-
-		default:												return GL_INVALID_VALUE;
-	}
-}
-
-static inline unsigned int glGetTypeSizeFromType(GLenum type)
-{
-    switch (type) {
-        case GL_BYTE:
-        case GL_UNSIGNED_BYTE:
-        case GL_UNSIGNED_BYTE_3_3_2:
-        case GL_UNSIGNED_BYTE_2_3_3_REV:
-            return 1;
-            
-        case GL_SHORT:
-        case GL_UNSIGNED_SHORT:
-        case GL_UNSIGNED_SHORT_5_6_5:
-        case GL_UNSIGNED_SHORT_4_4_4_4:
-        case GL_UNSIGNED_SHORT_5_5_5_1:
-        case GL_UNSIGNED_SHORT_5_6_5_REV:
-        case GL_UNSIGNED_SHORT_4_4_4_4_REV:
-        case GL_UNSIGNED_SHORT_1_5_5_5_REV:
-        case GL_HALF_FLOAT:
-            return 2;
-            
-        case GL_INT:
-        case GL_UNSIGNED_INT:
-        case GL_UNSIGNED_INT_8_8_8_8:
-        case GL_UNSIGNED_INT_8_8_8_8_REV:
-        case GL_UNSIGNED_INT_10_10_10_2:
-        case GL_UNSIGNED_INT_2_10_10_10_REV:
-        case GL_UNSIGNED_INT_24_8:
-        case GL_UNSIGNED_INT_10F_11F_11F_REV:
-        case GL_UNSIGNED_INT_5_9_9_9_REV:
-        case GL_FLOAT:
-        case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
-            return 4;
-
-        default:
-            return GL_INVALID_VALUE;
-    }
-}
-
-typedef enum GlFormatSizeFlagBits {
-	GL_FORMAT_SIZE_PACKED_BIT				= 0x00000001,
-	GL_FORMAT_SIZE_COMPRESSED_BIT			= 0x00000002,
-	GL_FORMAT_SIZE_PALETTIZED_BIT			= 0x00000004,
-	GL_FORMAT_SIZE_DEPTH_BIT				= 0x00000008,
-	GL_FORMAT_SIZE_STENCIL_BIT				= 0x00000010,
-} GlFormatSizeFlagBits;
-
-typedef unsigned int GlFormatSizeFlags;
-
-typedef struct GlFormatSize {
-	GlFormatSizeFlags	flags;
-	unsigned int		paletteSizeInBits;
-	unsigned int		blockSizeInBits;
-	unsigned int		blockWidth;			// in texels
-	unsigned int		blockHeight;		// in texels
-	unsigned int		blockDepth;			// in texels
-} GlFormatSize;
-
-static inline void glGetFormatSize( const GLenum internalFormat, GlFormatSize * pFormatSize )
-{
-	switch ( internalFormat )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_R8:												// 1-component, 8-bit unsigned normalized
-		case GL_R8_SNORM:										// 1-component, 8-bit signed normalized
-		case GL_R8UI:											// 1-component, 8-bit unsigned integer
-		case GL_R8I:											// 1-component, 8-bit signed integer
-		case GL_SR8:											// 1-component, 8-bit sRGB
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 1 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RG8:											// 2-component, 8-bit unsigned normalized
-		case GL_RG8_SNORM:										// 2-component, 8-bit signed normalized
-		case GL_RG8UI:											// 2-component, 8-bit unsigned integer
-		case GL_RG8I:											// 2-component, 8-bit signed integer
-		case GL_SRG8:											// 2-component, 8-bit sRGB
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB8:											// 3-component, 8-bit unsigned normalized
-		case GL_RGB8_SNORM:										// 3-component, 8-bit signed normalized
-		case GL_RGB8UI:											// 3-component, 8-bit unsigned integer
-		case GL_RGB8I:											// 3-component, 8-bit signed integer
-		case GL_SRGB8:											// 3-component, 8-bit sRGB
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 3 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA8:											// 4-component, 8-bit unsigned normalized
-		case GL_RGBA8_SNORM:									// 4-component, 8-bit signed normalized
-		case GL_RGBA8UI:										// 4-component, 8-bit unsigned integer
-		case GL_RGBA8I:											// 4-component, 8-bit signed integer
-		case GL_SRGB8_ALPHA8:									// 4-component, 8-bit sRGB
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// 16 bits per component
-		//
-		case GL_R16:											// 1-component, 16-bit unsigned normalized
-		case GL_R16_SNORM:										// 1-component, 16-bit signed normalized
-		case GL_R16UI:											// 1-component, 16-bit unsigned integer
-		case GL_R16I:											// 1-component, 16-bit signed integer
-		case GL_R16F:											// 1-component, 16-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RG16:											// 2-component, 16-bit unsigned normalized
-		case GL_RG16_SNORM:										// 2-component, 16-bit signed normalized
-		case GL_RG16UI:											// 2-component, 16-bit unsigned integer
-		case GL_RG16I:											// 2-component, 16-bit signed integer
-		case GL_RG16F:											// 2-component, 16-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB16:											// 3-component, 16-bit unsigned normalized
-		case GL_RGB16_SNORM:									// 3-component, 16-bit signed normalized
-		case GL_RGB16UI:										// 3-component, 16-bit unsigned integer
-		case GL_RGB16I:											// 3-component, 16-bit signed integer
-		case GL_RGB16F:											// 3-component, 16-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 6 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA16:											// 4-component, 16-bit unsigned normalized
-		case GL_RGBA16_SNORM:									// 4-component, 16-bit signed normalized
-		case GL_RGBA16UI:										// 4-component, 16-bit unsigned integer
-		case GL_RGBA16I:										// 4-component, 16-bit signed integer
-		case GL_RGBA16F:										// 4-component, 16-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// 32 bits per component
-		//
-		case GL_R32UI:											// 1-component, 32-bit unsigned integer
-		case GL_R32I:											// 1-component, 32-bit signed integer
-		case GL_R32F:											// 1-component, 32-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RG32UI:											// 2-component, 32-bit unsigned integer
-		case GL_RG32I:											// 2-component, 32-bit signed integer
-		case GL_RG32F:											// 2-component, 32-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB32UI:										// 3-component, 32-bit unsigned integer
-		case GL_RGB32I:											// 3-component, 32-bit signed integer
-		case GL_RGB32F:											// 3-component, 32-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 12 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA32UI:										// 4-component, 32-bit unsigned integer
-		case GL_RGBA32I:										// 4-component, 32-bit signed integer
-		case GL_RGBA32F:										// 4-component, 32-bit floating-point
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// Packed
-		//
-		case GL_R3_G3_B2:										// 3-component 3:3:2, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB4:											// 3-component 4:4:4, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 12;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB5:											// 3-component 5:5:5, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB565:											// 3-component 5:6:5, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB10:											// 3-component 10:10:10, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB12:											// 3-component 12:12:12, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 36;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA2:											// 4-component 2:2:2:2, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA4:											// 4-component 4:4:4:4, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGBA12:											// 4-component 12:12:12:12, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 48;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB5_A1:										// 4-component 5:5:5:1, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB10_A2:										// 4-component 10:10:10:2, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_RGB10_A2UI:										// 4-component 10:10:10:2, unsigned integer
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_R11F_G11F_B10F:									// 3-component 11:11:10, floating-point
-		case GL_RGB9_E5:										// 3-component/exp 9:9:9/5, floating-point
-			pFormatSize->flags = GL_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// S3TC/DXT/BC
-		//
-		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:					// line through 3D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:					// line through 3D space plus 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:					// line through 3D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:			// line through 3D space plus 1-bit alpha, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:					// line through 3D space plus line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:					// line through 3D space plus 4-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:			// line through 3D space plus line through 1D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:			// line through 3D space plus 4-bit alpha, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		case GL_COMPRESSED_LUMINANCE_LATC1_EXT:					// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT:			// line through 1D space, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT:			// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT:	// two lines through 1D space, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		case GL_COMPRESSED_RED_RGTC1:							// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RED_RGTC1:					// line through 1D space, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RG_RGTC2:							// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RG_RGTC2:						// two lines through 1D space, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:				// 3-component, 4x4 blocks, unsigned floating-point
-		case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:				// 3-component, 4x4 blocks, signed floating-point
-		case GL_COMPRESSED_RGBA_BPTC_UNORM:						// 4-component, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:				// 4-component, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// ETC
-		//
-		case GL_ETC1_RGB8_OES:									// 3-component ETC1, 4x4 blocks, unsigned normalized" ),
-		case GL_COMPRESSED_RGB8_ETC2:							// 3-component ETC2, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ETC2:							// 3-component ETC2, 4x4 blocks, sRGB
-		case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:		// 4-component ETC2 with 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:		// 4-component ETC2 with 1-bit alpha, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA8_ETC2_EAC:						// 4-component ETC2, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:				// 4-component ETC2, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		case GL_COMPRESSED_R11_EAC:								// 1-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_R11_EAC:						// 1-component ETC, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RG11_EAC:							// 2-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RG11_EAC:						// 2-component ETC, 4x4 blocks, signed normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// PVRTC
-		//
-		case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:				// 3-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:				// 3-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:				// 4-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:			// 4-component PVRTC, 16x8 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 16;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:				// 3-component PVRTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:				// 3-component PVRTC, 8x8 blocks, sRGB
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:				// 4-component PVRTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:			// 4-component PVRTC, 8x8 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG:				// 4-component PVRTC, 8x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG:			// 4-component PVRTC, 8x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG:				// 4-component PVRTC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG:			// 4-component PVRTC, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// ASTC
-		//
-		case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:					// 4-component ASTC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:			// 4-component ASTC, 4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:					// 4-component ASTC, 5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:			// 4-component ASTC, 5x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:					// 4-component ASTC, 5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:			// 4-component ASTC, 5x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:					// 4-component ASTC, 6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:			// 4-component ASTC, 6x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:					// 4-component ASTC, 6x6 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:			// 4-component ASTC, 6x6 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:					// 4-component ASTC, 8x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:			// 4-component ASTC, 8x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:					// 4-component ASTC, 8x6 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:			// 4-component ASTC, 8x6 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:					// 4-component ASTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:			// 4-component ASTC, 8x8 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:					// 4-component ASTC, 10x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:			// 4-component ASTC, 10x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:					// 4-component ASTC, 10x6 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:			// 4-component ASTC, 10x6 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:					// 4-component ASTC, 10x8 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:			// 4-component ASTC, 10x8 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:					// 4-component ASTC, 10x10 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:			// 4-component ASTC, 10x10 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 10;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:					// 4-component ASTC, 12x10 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:			// 4-component ASTC, 12x10 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 12;
-			pFormatSize->blockHeight = 10;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:					// 4-component ASTC, 12x12 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:			// 4-component ASTC, 12x12 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 12;
-			pFormatSize->blockHeight = 12;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:					// 4-component ASTC, 3x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:			// 4-component ASTC, 3x3x3 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 3;
-			pFormatSize->blockHeight = 3;
-			pFormatSize->blockDepth = 3;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:					// 4-component ASTC, 4x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:			// 4-component ASTC, 4x3x3 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 3;
-			pFormatSize->blockDepth = 3;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:					// 4-component ASTC, 4x4x3 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:			// 4-component ASTC, 4x4x3 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 3;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:					// 4-component ASTC, 4x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:			// 4-component ASTC, 4x4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 4;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:					// 4-component ASTC, 5x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:			// 4-component ASTC, 5x4x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 4;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:					// 4-component ASTC, 5x5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:			// 4-component ASTC, 5x5x4 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 4;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:					// 4-component ASTC, 5x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:			// 4-component ASTC, 5x5x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 5;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:					// 4-component ASTC, 6x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:			// 4-component ASTC, 6x5x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 5;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:					// 4-component ASTC, 6x6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:			// 4-component ASTC, 6x6x5 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 5;
-			break;
-		case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:					// 4-component ASTC, 6x6x6 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:			// 4-component ASTC, 6x6x6 blocks, sRGB
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 6;
-			break;
-
-		//
-		// ATC
-		//
-		case GL_ATC_RGB_AMD:									// 3-component, 4x4 blocks, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_ATC_RGBA_EXPLICIT_ALPHA_AMD:					// 4-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:				// 4-component, 4x4 blocks, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 128;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// Palletized
-		//
-		case GL_PALETTE4_RGB8_OES:								// 3-component 8:8:8,   4-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 16 * 24;
-			pFormatSize->blockSizeInBits = 4;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_PALETTE4_RGBA8_OES:								// 4-component 8:8:8:8, 4-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 16 * 32;
-			pFormatSize->blockSizeInBits = 4;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_PALETTE4_R5_G6_B5_OES:							// 3-component 5:6:5,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA4_OES:								// 4-component 4:4:4:4, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGB5_A1_OES:							// 4-component 5:5:5:1, 4-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 16 * 16;
-			pFormatSize->blockSizeInBits = 4;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_PALETTE8_RGB8_OES:								// 3-component 8:8:8,   8-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 256 * 24;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_PALETTE8_RGBA8_OES:								// 4-component 8:8:8:8, 8-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 256 * 32;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_PALETTE8_R5_G6_B5_OES:							// 3-component 5:6:5,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA4_OES:								// 4-component 4:4:4:4, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB5_A1_OES:							// 4-component 5:5:5:1, 8-bit palette, unsigned normalized
-			pFormatSize->flags = GL_FORMAT_SIZE_PALETTIZED_BIT;
-			pFormatSize->paletteSizeInBits = 256 * 16;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		//
-		// Depth/stencil
-		//
-		case GL_DEPTH_COMPONENT16:
-			pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_DEPTH_COMPONENT24:
-		case GL_DEPTH_COMPONENT32:
-		case GL_DEPTH_COMPONENT32F:
-		case GL_DEPTH_COMPONENT32F_NV:
-			pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_STENCIL_INDEX1:
-			pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 1;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_STENCIL_INDEX4:
-			pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_STENCIL_INDEX8:
-			pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_STENCIL_INDEX16:
-			pFormatSize->flags = GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_DEPTH24_STENCIL8:
-			pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT | GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case GL_DEPTH32F_STENCIL8:
-		case GL_DEPTH32F_STENCIL8_NV:
-			pFormatSize->flags = GL_FORMAT_SIZE_DEPTH_BIT | GL_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 64;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-
-		default:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-	}
-}
-
-#endif // !GL_FORMAT_H
diff --git a/external/KTX-Software-master/lib/gl_funcptrs.h b/external/KTX-Software-master/lib/gl_funcptrs.h
deleted file mode 100644
index a9c644a..0000000
--- a/external/KTX-Software-master/lib/gl_funcptrs.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: c29f4818e74655d62754e26efdab99cb2d2ca638 $ */
-
-/*
- * ©2010-2017 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Author: Mark Callow based on code from Georg Kolling
- */
-
-#ifndef GL_FUNCPTRS_H
-#define GL_FUNCPTRS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if KTX_USE_GETPROC
-  // Not defined in glew.h.
-  typedef void (GL_APIENTRY* PFNGLTEXIMAGE1DPROC) (
-                    GLenum target, GLint level, GLint internalformat,
-                    GLsizei width, GLint border, GLenum format, GLenum type,
-                    const GLvoid *pixels
-                                                  );
-#endif
-
-extern PFNGLTEXIMAGE1DPROC pfGlTexImage1D;
-extern PFNGLTEXIMAGE3DPROC pfGlTexImage3D;
-extern PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D;
-extern PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D;
-extern PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap;
-extern PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define DECLARE_GL_FUNCPTRS \
-    PFNGLTEXIMAGE1DPROC pfGlTexImage1D; \
-    PFNGLTEXIMAGE3DPROC pfGlTexImage3D; \
-    PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D; \
-    PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D; \
-    PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap; \
-    PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define INITIALIZE_GL_FUNCPTRS \
-    pfGlTexImage1D = glTexImage1D; \
-    pfGlTexImage3D = glTexImage3D; \
-    pfGlCompressedTexImage1D = glCompressedTexImage1D; \
-    pfGlCompressedTexImage3D = glCompressedTexImage3D; \
-    pfGlGenerateMipmap = glGenerateMipmap; \
-    pfGlGetStringi = glGetStringi;
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GL_FUNCPTRS_H */
diff --git a/external/KTX-Software-master/lib/gles1_funcptrs.h b/external/KTX-Software-master/lib/gles1_funcptrs.h
deleted file mode 100644
index 4b96da9..0000000
--- a/external/KTX-Software-master/lib/gles1_funcptrs.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: a9dea3dfe7b8266c56bd790f15e03e8e7e1baa8e $ */
-
-/*
- * ©2010-2017 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Author: Mark Callow based on code from Georg Kolling
- */
-
-#ifndef GLES1_FUNCPTRS_H
-#define GLES1_FUNCPTRS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* remove these where already defined as typedefs (GCC 4 complains of duplicate definitions) */
-typedef void (GL_APIENTRY* PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GL_APIENTRY* PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GL_APIENTRY* PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GL_APIENTRY* PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GL_APIENTRY* PFNGLGENERATEMIPMAPPROC) (GLenum target);
-typedef const GLubyte* (GL_APIENTRY* PFNGLGETSTRINGIPROC) (GLenum name, GLint index);
-
-extern PFNGLTEXIMAGE1DPROC pfGlTexImage1D;
-extern PFNGLTEXIMAGE3DPROC pfGlTexImage3D;
-extern PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D;
-extern PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D;
-extern PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap;
-extern PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define DECLARE_GL_FUNCPTRS \
-    PFNGLTEXIMAGE1DPROC pfGlTexImage1D; \
-    PFNGLTEXIMAGE3DPROC pfGlTexImage3D; \
-    PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D; \
-    PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D; \
-    PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap; \
-    PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define INITIALIZE_GL_FUNCPTRS \
-    pfGlTexImage1D = 0; \
-    pfGlTexImage3D = 0; \
-    pfGlCompressedTexImage1D = 0; \
-    pfGlCompressedTexImage3D = 0; \
-    pfGlGenerateMipmap = 0; \
-    pfGlGetStringi = 0;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GLES1_FUNCPTRS_H */
diff --git a/external/KTX-Software-master/lib/gles2_funcptrs.h b/external/KTX-Software-master/lib/gles2_funcptrs.h
deleted file mode 100644
index 1494695..0000000
--- a/external/KTX-Software-master/lib/gles2_funcptrs.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: f780b88290b1aa6df0104020b75e21904e53ff1c $ */
-
-/*
- * ©2010-2017 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Author: Mark Callow based on code from Georg Kolling
- */
-
-#ifndef GLES2_FUNCPTRS_H
-#define GLES2_FUNCPTRS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* remove these where already defined as typedefs (GCC 4 complains of duplicate definitions) */
-typedef void (GL_APIENTRY* PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GL_APIENTRY* PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-typedef void (GL_APIENTRY* PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef void (GL_APIENTRY* PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
-typedef const GLubyte* (GL_APIENTRY* PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
-
-extern PFNGLTEXIMAGE1DPROC pfGlTexImage1D;
-extern PFNGLTEXIMAGE3DPROC pfGlTexImage3D;
-extern PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D;
-extern PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D;
-extern PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap;
-extern PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define DECLARE_GL_FUNCPTRS \
-    PFNGLTEXIMAGE1DPROC pfGlTexImage1D; \
-    PFNGLTEXIMAGE3DPROC pfGlTexImage3D; \
-    PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D; \
-    PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D; \
-    PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap; \
-    PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define INITIALIZE_GL_FUNCPTRS \
-    pfGlTexImage1D = 0; \
-    pfGlTexImage3D = 0; \
-    pfGlCompressedTexImage1D = 0; \
-    pfGlCompressedTexImage3D = 0; \
-    pfGlGenerateMipmap = glGenerateMipmap; \
-    pfGlGetStringi = 0;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GLES2_FUNCPTRS_H */
diff --git a/external/KTX-Software-master/lib/gles3_funcptrs.h b/external/KTX-Software-master/lib/gles3_funcptrs.h
deleted file mode 100644
index b7ea291..0000000
--- a/external/KTX-Software-master/lib/gles3_funcptrs.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: 81315679d0a7bf28f92251adeb0cfea199e013fe $ */
-
-/*
- * ©2010-2017 The khronos Group, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Author: Mark Callow based on code from Georg Kolling
- */
-
-#ifndef GLES3_FUNCPTRS_H
-#define GLES3_FUNCPTRS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* remove these where already defined as typedefs */
-typedef void (GL_APIENTRY* PFNGLTEXIMAGE1DPROC) (
-                        GLenum target, GLint level, GLint internalformat,
-                        GLsizei width, GLint border, GLenum format,
-                        GLenum type, const GLvoid *pixels
-                                                );
-typedef void (GL_APIENTRY* PFNGLCOMPRESSEDTEXIMAGE1DPROC) (
-                        GLenum target, GLint level, GLenum internalformat,
-                        GLsizei width, GLint border, GLsizei imageSize,
-                        const GLvoid *data
-                                                          );
-
-extern PFNGLTEXIMAGE1DPROC pfGlTexImage1D;
-extern PFNGLTEXIMAGE3DPROC pfGlTexImage3D;
-extern PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D;
-extern PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D;
-extern PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap;
-extern PFNGLGETSTRINGIPROC pfGlGetStringi;
-    
-#define DECLARE_GL_FUNCPTRS \
-    PFNGLTEXIMAGE1DPROC pfGlTexImage1D; \
-    PFNGLTEXIMAGE3DPROC pfGlTexImage3D; \
-    PFNGLCOMPRESSEDTEXIMAGE1DPROC pfGlCompressedTexImage1D; \
-    PFNGLCOMPRESSEDTEXIMAGE3DPROC pfGlCompressedTexImage3D; \
-    PFNGLGENERATEMIPMAPPROC pfGlGenerateMipmap; \
-    PFNGLGETSTRINGIPROC pfGlGetStringi;
-
-#define INITIALIZE_GL_FUNCPTRS \
-    pfGlTexImage1D = 0; \
-    pfGlTexImage3D = glTexImage3D; \
-    pfGlCompressedTexImage1D = 0; \
-    pfGlCompressedTexImage3D = glCompressedTexImage3D; \
-    pfGlGenerateMipmap = glGenerateMipmap; \
-    pfGlGetStringi = glGetStringi;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GLES3_FUNCPTRS_H */
diff --git a/external/KTX-Software-master/lib/glloader.c b/external/KTX-Software-master/lib/glloader.c
deleted file mode 100644
index 1089898..0000000
--- a/external/KTX-Software-master/lib/glloader.c
+++ /dev/null
@@ -1,1115 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * ©2010-2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file
- * @~English
- *
- * @brief Functions for instantiating GL or GLES textures from KTX files.
- *
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation & Edgewise Consulting
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-
-#if KTX_OPENGL
-
-  #ifdef _WIN32
-    #include <windows.h>
-    #undef KTX_USE_GETPROC  /* Must use GETPROC on Windows */
-    #define KTX_USE_GETPROC 1
-  #else
-    #if !defined(KTX_USE_GETPROC)
-      #define KTX_USE_GETPROC 0
-    #endif
-  #endif
-  #if KTX_USE_GETPROC
-    #include <GL/glew.h>
-  #else
-    #define GL_GLEXT_PROTOTYPES
-    #include <GL/glcorearb.h>
-  #endif
-
-  #define GL_APIENTRY APIENTRY
-  #include "gl_funcptrs.h"
-
-#elif KTX_OPENGL_ES1
-
-  #include <GLES/gl.h>
-  #include <GLES/glext.h>
-  #include "gles1_funcptrs.h"
-
-#elif KTX_OPENGL_ES2
-
-  #define GL_GLEXT_PROTOTYPES
-  #include <GLES2/gl2.h>
-  #include <GLES2/gl2ext.h>
-  #include "gles2_funcptrs.h"
-
-#elif KTX_OPENGL_ES3
-
-  #define GL_GLEXT_PROTOTYPES
-  #include <GLES3/gl3.h>
-  #include <GLES2/gl2ext.h>
-  #include "gles3_funcptrs.h"
-
-#else
-  #error Please #define one of KTX_OPENGL, KTX_OPENGL_ES1, KTX_OPENGL_ES2 or KTX_OPENGL_ES3 as 1
-#endif
-
-#include "ktx.h"
-#include "ktxint.h"
-#include "ktxgl.h"
-
-DECLARE_GL_FUNCPTRS
-
-/**
- * @defgroup ktx_glloader OpenGL Texture Image Loader
- * @brief Create texture objects in current OpenGL context.
- * @{
- */
-
-/**
- * @example glloader.c
- * This is an example of using the low-level ktxTexture API to create and load
- * an OpenGL texture. It is a fragment of the code used by
- * @ref ktxTexture_GLUpload which underpins the @c ktxLoadTexture* functions.
- *
- * @code
- * #include <ktx.h>
- * @endcode
- *
- * This structure is used to pass to a callback function data that is uniform
- * across all images.
- * @snippet this cbdata
- *
- * One of these callbacks, selected by @ref ktxTexture_GLUpload based on the
- * dimensionality and arrayness of the texture, is called from
- * @ref ktxTexture_IterateLevelFaces to upload the texture data to OpenGL.
- * @snippet this imageCallbacks
- *
- * This function creates the GL texture object and sets up the callbacks to
- * load the image data into it.
- * @snippet this loadGLTexture
- */
-
-/**
- * @internal
- * @~English
- * @brief Additional contextProfile bit indicating an OpenGL ES context.
- *
- * This is the same value NVIDIA returns when using an OpenGL ES profile
- * of their desktop drivers. However it is not specified in any official
- * specification as OpenGL ES does not support the GL_CONTEXT_PROFILE_MASK
- * query.
- */
-#define _CONTEXT_ES_PROFILE_BIT 0x4
-
-/**
- * @internal
- * @~English
- * @name Supported Sized Format Macros
- *
- * These macros describe values that may be used with the sizedFormats
- * variable.
- */
-/**@{*/
-#define _NON_LEGACY_FORMATS 0x1 /*< @internal Non-legacy sized formats are supported. */
-#define _LEGACY_FORMATS 0x2  /*< @internal Legacy sized formats are supported. */
-/**
- * @internal
- * @~English
- * @brief All sized formats are supported
- */
-#define _ALL_SIZED_FORMATS (_NON_LEGACY_FORMATS | _LEGACY_FORMATS)
-#define _NO_SIZED_FORMATS 0 /*< @internal No sized formats are supported. */
-/**@}*/
-
-/**
- * @internal
- * @~English
- * @brief indicates the profile of the current context.
- */
-static GLint contextProfile = 0;
-/**
- * @internal
- * @~English
- * @brief Indicates what sized texture formats are supported
- *        by the current context.
- */
-static GLint sizedFormats = _ALL_SIZED_FORMATS;
-static GLboolean supportsSwizzle = GL_TRUE;
-/**
- * @internal
- * @~English
- * @brief Indicates which R16 & RG16 formats are supported by the current
- *        context.
- */
-static GLint R16Formats = _KTX_ALL_R16_FORMATS;
-/**
- * @internal
- * @~English
- * @brief Indicates if the current context supports sRGB textures.
- */
-static GLboolean supportsSRGB = GL_TRUE;
-/**
- * @internal
- * @~English
- * @brief Indicates if the current context supports cube map arrays.
- */
-static GLboolean supportsCubeMapArrays = GL_FALSE;
-
-/**
- * @internal
- * @~English
- * @brief Workaround mismatch of glGetString declaration and standard string
- *        function parameters.
- */
-#define glGetString(x) (const char*)glGetString(x)
-
-/**
- * @internal
- * @~English
- * @brief Workaround mismatch of glGetStringi declaration and standard string
- *        function parameters.
- */
-#define pfGlGetStringi(x,y) (const char*)pfGlGetStringi(x,y)
-
-/**
- * @internal
- * @~English
- * @brief Check for existence of OpenGL extension
- */
-static GLboolean
-hasExtension(const char* extension) 
-{
-    if (pfGlGetStringi == NULL) {
-        if (strstr(glGetString(GL_EXTENSIONS), extension) != NULL)
-            return GL_TRUE;
-        else
-            return GL_FALSE;
-    } else {
-        int i, n;
-
-        glGetIntegerv(GL_NUM_EXTENSIONS, &n);
-        for (i = 0; i < n; i++) {
-            if (strcmp(pfGlGetStringi(GL_EXTENSIONS, i), extension) == 0)
-                return GL_TRUE;
-        }
-        return GL_FALSE;
-    }
-}
-
-/**
- * @internal
- * @~English
- * @brief Discover the capabilities of the current GL context.
- *
- * Queries the context and sets several the following internal variables
- * indicating the capabilities of the context:
- *
- * @li sizedFormats
- * @li supportsSwizzle
- * @li supportsSRGB
- * @li b16Formats
- */
-static void
-discoverContextCapabilities(void)
-{
-    GLint majorVersion = 1;
-    GLint minorVersion = 0;
-
-    // Done here so things will work when GLEW, or equivalent, is being used
-    // and GL function names are defined as pointers. Initialization at
-    // declaration would happen before these pointers have been initialized.
-    INITIALIZE_GL_FUNCPTRS
-
-    if (strstr(glGetString(GL_VERSION), "GL ES") != NULL)
-        contextProfile = _CONTEXT_ES_PROFILE_BIT;
-    // MAJOR & MINOR only introduced in GL {,ES} 3.0
-    glGetIntegerv(GL_MAJOR_VERSION, &majorVersion);
-    glGetIntegerv(GL_MINOR_VERSION, &minorVersion);
-    if (glGetError() != GL_NO_ERROR) {
-        // < v3.0; resort to the old-fashioned way.
-        if (contextProfile & _CONTEXT_ES_PROFILE_BIT)
-            sscanf(glGetString(GL_VERSION), "OpenGL ES %d.%d ",
-                   &majorVersion, &minorVersion);
-        else
-            sscanf(glGetString(GL_VERSION), "OpenGL %d.%d ",
-                   &majorVersion, &minorVersion);
-    }
-    if (contextProfile & _CONTEXT_ES_PROFILE_BIT) {
-        if (majorVersion < 3) {
-            supportsSwizzle = GL_FALSE;
-            sizedFormats = _NO_SIZED_FORMATS;
-            R16Formats = _KTX_NO_R16_FORMATS;
-            supportsSRGB = GL_FALSE;
-        } else {
-            sizedFormats = _NON_LEGACY_FORMATS;
-            if (hasExtension("GL_EXT_texture_cube_map_array")) {
-                supportsCubeMapArrays = GL_TRUE;
-            }
-        }
-        if (hasExtension("GL_OES_required_internalformat")) {
-            sizedFormats |= _ALL_SIZED_FORMATS;
-        }
-        // There are no OES extensions for sRGB textures or R16 formats.
-    } else {
-        // PROFILE_MASK was introduced in OpenGL 3.2.
-        // Profiles: CONTEXT_CORE_PROFILE_BIT 0x1,
-        //           CONTEXT_COMPATIBILITY_PROFILE_BIT 0x2.
-        glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &contextProfile);
-        if (glGetError() == GL_NO_ERROR) {
-            // >= 3.2
-            if (majorVersion == 3 && minorVersion < 3)
-                supportsSwizzle = GL_FALSE;
-            if ((contextProfile & GL_CONTEXT_CORE_PROFILE_BIT))
-                sizedFormats &= ~_LEGACY_FORMATS;
-            if (majorVersion >= 4)
-                supportsCubeMapArrays = GL_TRUE;
-        } else {
-            // < 3.2
-            contextProfile = GL_CONTEXT_COMPATIBILITY_PROFILE_BIT;
-            supportsSwizzle = GL_FALSE;
-            // sRGB textures introduced in 2.0
-            if (majorVersion < 2 && hasExtension("GL_EXT_texture_sRGB")) {
-                supportsSRGB = GL_FALSE;
-            }
-            // R{,G]16 introduced in 3.0; R{,G}16_SNORM introduced in 3.1.
-            if (majorVersion == 3) {
-                if (minorVersion == 0)
-                    R16Formats &= ~_KTX_R16_FORMATS_SNORM;
-            } else if (hasExtension("GL_ARB_texture_rg")) {
-                R16Formats &= ~_KTX_R16_FORMATS_SNORM;
-            } else {
-                R16Formats = _KTX_NO_R16_FORMATS;
-            }
-        }
-        if (!supportsCubeMapArrays) {
-            if (hasExtension("GL_ARB_texture_cube_map_array")) {
-                supportsCubeMapArrays = GL_TRUE;
-            }
-        }
-    }
-}
-
-#if SUPPORT_LEGACY_FORMAT_CONVERSION
-/**
- * @internal
- * @~English
- * @brief Convert deprecated legacy-format texture to modern format.
- *
- * The function sets the GL_TEXTURE_SWIZZLEs necessary to get the same
- * behavior as the legacy format.
- *
- * @param[in] target       texture target on which the swizzle will
- *                          be set.
- * @param[in,out] pFormat  pointer to variable holding the base format of the
- *                          texture. The new base format is written here.
- * @param[in,out] pInternalformat  pointer to variable holding the
- *                                  internalformat of the texture. The new
- *                                  internalformat is written here.
- * @return void unrecognized formats will be passed on to OpenGL. Any loading
- *              error that arises will be handled in the usual way.
- */
-static void convertFormat(GLenum target, GLenum* pFormat, GLenum* pInternalformat) {
-    switch (*pFormat) {
-      case GL_ALPHA:
-        {
-          GLint swizzle[] = {GL_ZERO, GL_ZERO, GL_ZERO, GL_RED};
-          *pFormat = GL_RED;
-          glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
-          switch (*pInternalformat) {
-            case GL_ALPHA:
-            case GL_ALPHA4:
-            case GL_ALPHA8:
-              *pInternalformat = GL_R8;
-              break;
-            case GL_ALPHA12:
-            case GL_ALPHA16:
-              *pInternalformat = GL_R16;
-              break;
-          }
-        }
-      case GL_LUMINANCE:
-        {
-          GLint swizzle[] = {GL_RED, GL_RED, GL_RED, GL_ONE};
-          *pFormat = GL_RED;
-          glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
-          switch (*pInternalformat) {
-            case GL_LUMINANCE:
-            case GL_LUMINANCE4:
-            case GL_LUMINANCE8:
-              *pInternalformat = GL_R8;
-              break;
-            case GL_LUMINANCE12:
-            case GL_LUMINANCE16:
-              *pInternalformat = GL_R16;
-              break;
-#if 0
-            // XXX Must avoid setting TEXTURE_SWIZZLE in these cases
-            // XXX Must manually swizzle.
-            case GL_SLUMINANCE:
-            case GL_SLUMINANCE8:
-              *pInternalformat = GL_SRGB8;
-              break;
-#endif
-          }
-          break;
-        }
-      case GL_LUMINANCE_ALPHA:
-        {
-          GLint swizzle[] = {GL_RED, GL_RED, GL_RED, GL_GREEN};
-          *pFormat = GL_RG;
-          glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
-          switch (*pInternalformat) {
-            case GL_LUMINANCE_ALPHA:
-            case GL_LUMINANCE4_ALPHA4:
-            case GL_LUMINANCE6_ALPHA2:
-            case GL_LUMINANCE8_ALPHA8:
-              *pInternalformat = GL_RG8;
-              break;
-            case GL_LUMINANCE12_ALPHA4:
-            case GL_LUMINANCE12_ALPHA12:
-            case GL_LUMINANCE16_ALPHA16:
-              *pInternalformat = GL_RG16;
-              break;
-#if 0
-            // XXX Must avoid setting TEXTURE_SWIZZLE in these cases
-            // XXX Must manually swizzle.
-            case GL_SLUMINANCE_ALPHA:
-            case GL_SLUMINANCE8_ALPHA8:
-              *pInternalformat = GL_SRGB8_ALPHA8;
-              break;
-#endif
-          }
-          break;
-        }
-      case GL_INTENSITY:
-        {
-          GLint swizzle[] = {GL_RED, GL_RED, GL_RED, GL_RED};
-          *pFormat = GL_RED;
-          glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
-          switch (*pInternalformat) {
-            case GL_INTENSITY:
-            case GL_INTENSITY4:
-            case GL_INTENSITY8:
-              *pInternalformat = GL_R8;
-              break;
-            case GL_INTENSITY12:
-            case GL_INTENSITY16:
-              *pInternalformat = GL_R16;
-              break;
-          }
-          break;
-        }
-      default:
-        break;
-    }
-}
-#endif /* SUPPORT_LEGACY_FORMAT_CONVERSION */
-
-/* [cbdata] */
-typedef struct ktx_cbdata {
-    GLenum glTarget;
-    GLenum glFormat;
-    GLenum glInternalformat;
-    GLenum glType;
-    GLenum glError;
-    GLuint numLayers;
-} ktx_cbdata;
-/* [cbdata] */
-
-/* [imageCallbacks] */
-
-KTX_error_code KTXAPIENTRY
-texImage1DCallback(int miplevel, int face,
-                   int width, int height,
-                   int depth,
-                   ktx_uint32_t faceLodSize,
-                   void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
-    
-    assert(pfGlTexImage1D != NULL);
-    pfGlTexImage1D(cbData->glTarget + face, miplevel,
-                   cbData->glInternalformat, width, 0,
-                   cbData->glFormat, cbData->glType, pixels);
-    
-    if ((cbData->glError = glGetError()) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-
-KTX_error_code KTXAPIENTRY
-compressedTexImage1DCallback(int miplevel, int face,
-                             int width, int height,
-                             int depth,
-                             ktx_uint32_t faceLodSize,
-                             void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
-    
-    assert(pfGlCompressedTexImage1D != NULL);
-    pfGlCompressedTexImage1D(cbData->glTarget + face, miplevel,
-                             cbData->glInternalformat, width, 0,
-                             faceLodSize, pixels);
-    
-    if ((cbData->glError = glGetError()) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-
-KTX_error_code KTXAPIENTRY
-texImage2DCallback(int miplevel, int face,
-                   int width, int height,
-                   int depth,
-                   ktx_uint32_t faceLodSize,
-                   void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
- 
-    glTexImage2D(cbData->glTarget + face, miplevel,
-                 cbData->glInternalformat, width,
-                 cbData->numLayers == 0 ? height : cbData->numLayers, 0,
-                 cbData->glFormat, cbData->glType, pixels);
-
-    if ((cbData->glError = glGetError()) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-
-
-KTX_error_code KTXAPIENTRY
-compressedTexImage2DCallback(int miplevel, int face,
-                             int width, int height,
-                             int depth,
-                             ktx_uint32_t faceLodSize,
-                             void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
-    GLenum glerror;
-    KTX_error_code result;
-    
-    // It is simpler to just attempt to load the format, rather than divine
-    // which formats are supported by the implementation. In the event of an
-    // error, software unpacking can be attempted.
-    glCompressedTexImage2D(cbData->glTarget + face, miplevel,
-                           cbData->glInternalformat, width,
-                           cbData->numLayers == 0 ? height : cbData->numLayers,
-                           0,
-                           faceLodSize, pixels);
-    
-    glerror = glGetError();
-#if SUPPORT_SOFTWARE_ETC_UNPACK
-    // Renderion is returning INVALID_VALUE. Oops!!
-    if ((glerror == GL_INVALID_ENUM || glerror == GL_INVALID_VALUE)
-        && (cbData->glInternalformat == GL_ETC1_RGB8_OES
-            || (cbData->glInternalformat >= GL_COMPRESSED_R11_EAC
-                && cbData->glInternalformat <= GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC)
-            ))
-    {
-        GLubyte* unpacked;
-        GLenum format, internalformat, type;
-        
-        result = _ktxUnpackETC((GLubyte*)pixels, cbData->glInternalformat,
-                                  width, height, &unpacked,
-                                  &format, &internalformat,
-                                  &type, R16Formats, supportsSRGB);
-        if (result != KTX_SUCCESS) {
-            return result;
-        }
-        if (!(sizedFormats & _NON_LEGACY_FORMATS)) {
-            if (internalformat == GL_RGB8)
-                internalformat = GL_RGB;
-            else if (internalformat == GL_RGBA8)
-                internalformat = GL_RGBA;
-        }
-        glTexImage2D(cbData->glTarget + face, miplevel,
-                     internalformat, width,
-                     cbData->numLayers == 0 ? height : cbData->numLayers, 0,
-                     format, type, unpacked);
-        
-        free(unpacked);
-        glerror = glGetError();
-    }
-#endif
-    
-    if ((cbData->glError = glerror) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-
-KTX_error_code KTXAPIENTRY
-texImage3DCallback(int miplevel, int face,
-                   int width, int height,
-                   int depth,
-                   ktx_uint32_t faceLodSize,
-                   void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
-    
-    assert(pfGlTexImage3D != NULL);
-    pfGlTexImage3D(cbData->glTarget + face, miplevel,
-                   cbData->glInternalformat,
-                   width, height,
-                   cbData->numLayers == 0 ? depth : cbData->numLayers,
-                   0,
-                   cbData->glFormat, cbData->glType, pixels);
-    
-    if ((cbData->glError = glGetError()) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-
-KTX_error_code KTXAPIENTRY
-compressedTexImage3DCallback(int miplevel, int face,
-                             int width, int height,
-                             int depth,
-                             ktx_uint32_t faceLodSize,
-                             void* pixels, void* userdata)
-{
-    ktx_cbdata* cbData = (ktx_cbdata*)userdata;
-    
-    assert(pfGlCompressedTexImage3D != NULL);
-    pfGlCompressedTexImage3D(cbData->glTarget + face, miplevel,
-                             cbData->glInternalformat,
-                             width, height,
-                             cbData->numLayers == 0 ? depth : cbData->numLayers,
-                             0,
-                             faceLodSize, pixels);
-    
-    if ((cbData->glError = glGetError()) == GL_NO_ERROR) {
-        return KTX_SUCCESS;
-    } else {
-        return KTX_GL_ERROR;
-    }
-}
-/* [imageCallbacks] */
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Create a GL texture object from a ktxTexture object.
- *
- * Sets the texture object's GL_TEXTURE_MAX_LEVEL parameter according to the
- * number of levels in the KTX data, provided the library has been compiled
- * with a version of gl.h where GL_TEXTURE_MAX_LEVEL is defined.
- *
- * Unpacks compressed GL_ETC1_RGB8_OES and GL_ETC2_* format
- * textures in software when the format is not supported by the GL context,
- * provided the library has been compiled with SUPPORT_SOFTWARE_ETC_UNPACK
- * defined as 1.
- *
- * It will also convert textures with legacy formats to their modern equivalents
- * when the format is not supported by the GL context, provided the library
- * has been compiled with SUPPORT_LEGACY_FORMAT_CONVERSION defined as 1.
- *
- * @param[in] This          handle of the ktxTexture to upload.
- * @param[in,out] pTexture  name of the GL texture object to load. If NULL or if
- *                          <tt>*pTexture == 0</tt> the function will generate
- *                          a texture name. The function binds either the
- *                          generated name or the name given in @p *pTexture
- *                          to the texture target returned in @p *pTarget,
- *                          before loading the texture data. If @p pTexture
- *                          is not NULL and a name was generated, the generated
- *                          name will be returned in *pTexture.
- * @param[out] pTarget      @p *pTarget is set to the texture target used. The
- *                          target is chosen based on the file contents.
- * @param[out] pGlerror     @p *pGlerror is set to the value returned by
- *                          glGetError when this function returns the error
- *                          KTX_GL_ERROR. glerror can be NULL.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p target is @c NULL or the size of
- *                              a mip level is greater than the size of the
- *                              preceding level.
- * @exception KTX_GL_ERROR      A GL error was raised by glBindTexture,
- *                              glGenTextures or gl*TexImage*. The GL error
- *                              will be returned in @p *glerror, if glerror
- *                              is not @c NULL.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE The type of texture is not supported
- *                                         by the current OpenGL context.
- */
-/* [loadGLTexture] */
-KTX_error_code
-ktxTexture_GLUpload(ktxTexture* This, GLuint* pTexture, GLenum* pTarget,
-                    GLenum* pGlerror)
-{
-    GLint                 previousUnpackAlignment;
-    GLuint                texname;
-    GLenum                target = GL_TEXTURE_2D;
-    int                   texnameUser;
-    KTX_error_code        result = KTX_SUCCESS;
-    PFNKTXITERCB          iterCb = NULL;
-    ktx_cbdata            cbData;
-    int                   dimensions;
-
-    if (pGlerror)
-        *pGlerror = GL_NO_ERROR;
-
-    if (!This) {
-        return KTX_INVALID_VALUE;
-    }
-
-    if (!pTarget) {
-        return KTX_INVALID_VALUE;
-    }
-
-    if (contextProfile == 0)
-        discoverContextCapabilities();
-
-    /* KTX files require an unpack alignment of 4 */
-    glGetIntegerv(GL_UNPACK_ALIGNMENT, &previousUnpackAlignment);
-    if (previousUnpackAlignment != KTX_GL_UNPACK_ALIGNMENT) {
-        glPixelStorei(GL_UNPACK_ALIGNMENT, KTX_GL_UNPACK_ALIGNMENT);
-    }
-
-    cbData.glFormat = This->glFormat;
-    cbData.glInternalformat = This->glInternalformat;
-    cbData.glType = This->glType;
-
-    texnameUser = pTexture && *pTexture;
-    if (texnameUser) {
-        texname = *pTexture;
-    } else {
-        glGenTextures(1, &texname);
-    }
-
-    dimensions = This->numDimensions;
-    if (This->isArray) {
-        dimensions += 1;
-        if (This->numFaces == 6) {
-            /* _ktxCheckHeader should have caught this. */
-            assert(This->numDimensions == 2);
-            target = GL_TEXTURE_CUBE_MAP_ARRAY;
-        } else {
-            switch (This->numDimensions) {
-              case 1: target = GL_TEXTURE_1D_ARRAY_EXT; break;
-              case 2: target = GL_TEXTURE_2D_ARRAY_EXT; break;
-              /* _ktxCheckHeader should have caught this. */
-              default: assert(KTX_TRUE);
-            }
-        }
-        cbData.numLayers = This->numLayers;
-    } else {
-        if (This->numFaces == 6) {
-            /* _ktxCheckHeader should have caught this. */
-            assert(This->numDimensions == 2);
-            target = GL_TEXTURE_CUBE_MAP;
-        } else {
-            switch (This->numDimensions) {
-              case 1: target = GL_TEXTURE_1D; break;
-              case 2: target = GL_TEXTURE_2D; break;
-              case 3: target = GL_TEXTURE_3D; break;
-              /* _ktxCheckHeader shold have caught this. */
-              default: assert(KTX_TRUE);
-            }
-        }
-        cbData.numLayers = 0;
-    }
-    
-    if (target == GL_TEXTURE_1D &&
-        ((This->isCompressed && (pfGlCompressedTexImage1D == NULL)) ||
-         (!This->isCompressed && (pfGlTexImage1D == NULL))))
-    {
-        return KTX_UNSUPPORTED_TEXTURE_TYPE;
-    }
-    
-    /* Reject 3D texture if unsupported. */
-    if (target == GL_TEXTURE_3D &&
-        ((This->isCompressed && (pfGlCompressedTexImage3D == NULL)) ||
-         (!This->isCompressed && (pfGlTexImage3D == NULL))))
-    {
-        return KTX_UNSUPPORTED_TEXTURE_TYPE;
-    }
-    
-    /* Reject cube map arrays if not supported. */
-    if (target == GL_TEXTURE_CUBE_MAP_ARRAY && !supportsCubeMapArrays) {
-        return KTX_UNSUPPORTED_TEXTURE_TYPE;
-    }
-    
-    /* XXX Need to reject other array textures & cube maps if not supported. */
-    
-    switch (dimensions) {
-      case 1:
-        iterCb = This->isCompressed
-                  ? compressedTexImage1DCallback : texImage1DCallback;
-        break;
-      case 2:
-        iterCb = This->isCompressed
-                  ? compressedTexImage2DCallback : texImage2DCallback;
-            break;
-      case 3:
-        iterCb = This->isCompressed
-                  ? compressedTexImage3DCallback : texImage3DCallback;
-        break;
-      default:
-            assert(KTX_TRUE);
-    }
-   
-    glBindTexture(target, texname);
-    
-    // Prefer glGenerateMipmaps over GL_GENERATE_MIPMAP
-    if (This->generateMipmaps && (pfGlGenerateMipmap == NULL)) {
-        glTexParameteri(target, GL_GENERATE_MIPMAP, GL_TRUE);
-    }
-#ifdef GL_TEXTURE_MAX_LEVEL
-    if (!This->generateMipmaps)
-        glTexParameteri(target, GL_TEXTURE_MAX_LEVEL, This->numLevels - 1);
-#endif
-
-    if (target == GL_TEXTURE_CUBE_MAP) {
-        cbData.glTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
-    } else {
-        cbData.glTarget = target;
-    }
-    
-    cbData.glInternalformat = This->glInternalformat;
-    cbData.glFormat = This->glFormat;
-    if (!This->isCompressed) {
-#if SUPPORT_LEGACY_FORMAT_CONVERSION
-        // If sized legacy formats are supported there is no need to convert.
-        // If only unsized formats are supported, there is no point in
-        // converting as the modern formats aren't supported either.
-        if (sizedFormats == _NON_LEGACY_FORMATS && supportsSwizzle) {
-            convertFormat(target, &cbData.glFormat, &cbData.glInternalformat);
-        } else if (sizedFormats == _NO_SIZED_FORMATS)
-            cbData.glInternalformat = This->glBaseInternalformat;
-#else
-        // When no sized formats are supported, or legacy sized formats are not
-        // supported, must change internal format.
-        if (sizedFormats == _NO_SIZED_FORMATS
-            || (!(sizedFormats & _LEGACY_FORMATS) &&
-                (This->glBaseInternalformat == GL_ALPHA
-                || This->glBaseInternalformat == GL_LUMINANCE
-                || This->glBaseInternalformat == GL_LUMINANCE_ALPHA
-                || This->glBaseInternalformat == GL_INTENSITY))) {
-            cbData.glInternalformat = This->glBaseInternalformat;
-        }
-#endif
-    }
-
-    if (ktxTexture_isActiveStream(This))
-        result = ktxTexture_IterateLoadLevelFaces(This, iterCb, &cbData);
-    else
-        result = ktxTexture_IterateLevelFaces(This, iterCb, &cbData);
-
-    /* GL errors are the only reason for failure. */
-    if (result != KTX_SUCCESS && cbData.glError != GL_NO_ERROR) {
-        if (pGlerror)
-            *pGlerror = cbData.glError;
-    }
-
-    /* restore previous GL state */
-    if (previousUnpackAlignment != KTX_GL_UNPACK_ALIGNMENT) {
-        glPixelStorei(GL_UNPACK_ALIGNMENT, previousUnpackAlignment);
-    }
-
-    if (result == KTX_SUCCESS)
-    {
-        // Prefer glGenerateMipmaps over GL_GENERATE_MIPMAP
-        if (This->generateMipmaps && pfGlGenerateMipmap) {
-            pfGlGenerateMipmap(target);
-        }
-        *pTarget = target;
-        if (pTexture) {
-            *pTexture = texname;
-        }
-    } else if (!texnameUser) {
-        glDeleteTextures(1, &texname);
-    }
-    return result;
-}
-/* [loadGLTexture] */
-
-/**
- * @~English
- * @deprecated Use ktxTexture_CreateFromStdioStream() and ktxTexture_GLUpload().
- * @brief Create a GL texture object from KTX data in a stdio FILE stream.
- *
- * Sets the texture object's GL_TEXTURE_MAX_LEVEL parameter according to the
- * number of levels in the ktxStream, provided the library has been compiled
- * with a version of gl.h where GL_TEXTURE_MAX_LEVEL is defined.
- *
- * Unpacks compressed GL_ETC1_RGB8_OES and GL_ETC2_* format textures in
- * software when the format is not supported by the GL context, provided the
- * library has been compiled with SUPPORT_SOFTWARE_ETC_UNPACK defined as 1.
- *
- * Also converts texture with legacy formats to their modern equivalents
- * when the format is not supported by the GL context, provided the library
- * has been compiled with SUPPORT_LEGACY_FORMAT_CONVERSION defined as 1.
- *
- * @param[in] file         stdio stream FILE pointer
- * @param[in,out] pTexture name of the GL texture object to load. If NULL or if
- *                         <tt>*pTexture == 0</tt> the function will generate
- *                         a texture name. The function binds either the
- *                         generated name or the name given in @p *pTexture
- *                         to the texture target returned in @p *pTarget,
- *                         before loading the texture data. If @p pTexture
- *                         is not NULL and a name was generated, the generated
- *                         name will be returned in *pTexture.
- * @param[out] pTarget     @p *pTarget is set to the texture target used. The
- *                         target is chosen based on the file contents.
- * @param[out] pDimensions If @p pDimensions is not NULL, the width, height and
- *                         depth of the texture's base level are returned in
- *                         the fields of the KTX_dimensions structure to which
- *                         it points.
- * @param[out] pIsMipmapped
- *                         If @p pIsMipmapped is not NULL, @p *pIsMipmapped is
- *                         set to GL_TRUE if the KTX texture is mipmapped,
- *                         GL_FALSE otherwise.
- * @param[out] pGlerror    @p *pGlerror is set to the value returned by
- *                         glGetError when this function returns the error
- *                         KTX_GL_ERROR. glerror can be NULL.
- * @param[in,out] pKvdLen  If not NULL, @p *pKvdLen is set to the number of
- *                         bytes of key-value data pointed at by @p *ppKvd.
- *                         Must not be NULL, if @p ppKvd is not NULL.
- * @param[in,out] ppKvd    If not NULL, @p *ppKvd is set to the point to a
- *                         block of memory containing key-value data read from
- *                         the file. The application is responsible for freeing
- *                         the memory.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p target is @c NULL or the size of a mip
- *                              level is greater than the size of the
- *                              preceding level.
- * @exception KTX_INVALID_OPERATION @p ppKvd is not NULL but pKvdLen is NULL.
- * @exception KTX_UNEXPECTED_END_OF_FILE the file does not contain the
- *                                       expected amount of data.
- * @exception KTX_OUT_OF_MEMORY Sufficient memory could not be allocated for the
- *                              underlying ktxTexture object or to store the
- *                              requested key-value data.
- * @exception KTX_GL_ERROR      A GL error was raised by glBindTexture,
- *                              glGenTextures or gl*TexImage*. The GL error
- *                              will be returned in @p *glerror, if glerror
- *                              is not @c NULL.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE The type of texture is not supported
- *                                         by the current OpenGL context.
- */
-KTX_error_code
-ktxLoadTextureF(FILE* file, GLuint* pTexture, GLenum* pTarget,
-                KTX_dimensions* pDimensions, GLboolean* pIsMipmapped,
-                GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd)
-{
-    ktxTexture* texture;
-    KTX_error_code result = KTX_SUCCESS;
-    
-    if (ppKvd != NULL && pKvdLen == NULL)
-        return KTX_INVALID_VALUE;
-
-    result = ktxTexture_CreateFromStdioStream(file,
-                                              KTX_TEXTURE_CREATE_RAW_KVDATA_BIT,
-                                              &texture);
-    if (result != KTX_SUCCESS)
-        return result;
-
-    result = ktxTexture_GLUpload(texture, pTexture, pTarget, pGlerror);
-    
-    if (result == KTX_SUCCESS) {
-        if (ppKvd != NULL) {
-            *ppKvd = texture->kvData;
-            *pKvdLen = texture->kvDataLen;
-            /* Remove to avoid it being freed when texture is destroyed. */
-            texture->kvData = NULL;
-            texture->kvDataLen = 0;
-        }
-        if (pDimensions) {
-            pDimensions->width = texture->baseWidth;
-            pDimensions->height = texture->baseHeight;
-            pDimensions->depth = texture->baseDepth;
-        }
-        if (pIsMipmapped) {
-            if (texture->generateMipmaps || texture->numLevels > 1)
-                *pIsMipmapped = GL_TRUE;
-            else
-                *pIsMipmapped = GL_FALSE;
-        }
-    }
-
-    ktxTexture_Destroy(texture);
-
-    return result;
-}
-
-/**
- * @~English
- * @deprecated Use ktxTexture_CreateFromNamedFile() and ktxTexture_GLUpload().
- * @brief Create a GL texture object from KTX data in a named file on disk.
- *
- * @param[in] filename      pointer to a C string that contains the path of
- *                          the file to load.
- * @param[in,out] pTexture  name of the GL texture object to load. See
- *                          ktxLoadTextureF() for details.
- * @param[out] pTarget      @p *pTarget is set to the texture target used. See
- *                          ktxLoadTextureF() for details.
- * @param[out] pDimensions  @p the texture's base level width depth and height
- *                          are returned in structure to which this points.
- *                          See ktxLoadTextureF() for details.
- * @param[out] pIsMipmapped @p pIsMipMapped is set to indicate if the loaded
- *                          texture is mipmapped. See ktxLoadTextureF() for
- *                          details.
- * @param[out] pGlerror     @p *pGlerror is set to the value returned by
- *                          glGetError when this function returns the error
- *                          KTX_GL_ERROR. glerror can be NULL.
- * @param[in,out] pKvdLen   If not NULL, @p *pKvdLen is set to the number of
- *                          bytes of key-value data pointed at by @p *ppKvd.
- *                          Must not be NULL, if @p ppKvd is not NULL.
- * @param[in,out] ppKvd     If not NULL, @p *ppKvd is set to the point to a
- *                          block of memory containing key-value data read from
- *                          the file. The application is responsible for freeing
- *                          the memory.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_OPEN_FAILED  The specified file could not be opened.
- * @exception KTX_INVALID_VALUE     See ktxLoadTextureF() for causes.
- * @exception KTX_INVALID_OPERATION See ktxLoadTextureF() for causes.
- * @exception KTX_UNEXPECTED_END_OF_FILE See ktxLoadTextureF() for causes.
- * @exception KTX_GL_ERROR          See ktxLoadTextureF() for causes.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE See ktxLoadTextureF() for causes.
- */
-KTX_error_code
-ktxLoadTextureN(const char* const filename, GLuint* pTexture, GLenum* pTarget,
-                KTX_dimensions* pDimensions, GLboolean* pIsMipmapped,
-                GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd)
-{
-    KTX_error_code result;
-
-    FILE* file = fopen(filename, "rb");
-    if (file) {
-        result = ktxLoadTextureF(file, pTexture, pTarget, pDimensions,
-                                 pIsMipmapped, pGlerror, pKvdLen, ppKvd);
-        fclose(file);
-    } else
-        result = KTX_FILE_OPEN_FAILED;
-
-    return result;
-}
-
-/**
- * @~English
- * @deprecated Use ktxTexture_CreateFromMemory() and ktxTexture_GLUpload().
- * @brief Create a GL texture object from KTX formatted data in memory.
- *
- * @param[in] bytes         pointer to the array of bytes containing
- *                          the KTX data to load.
- * @param[in] size          size of the memory array containing the
- *                          KTX format data.
- * @param[in,out] pTexture  name of the GL texture object to load. See
- *                          ktxLoadTextureF() for details.
- * @param[out] pTarget      @p *pTarget is set to the texture target used. See
- *                          ktxLoadTextureF() for details.
- * @param[out] pDimensions  @p the texture's base level width depth and height
- *                          are returned in structure to which this points.
- *                          See ktxLoadTextureF() for details.
- * @param[out] pIsMipmapped @p *pIsMipMapped is set to indicate if the loaded
- *                          texture is mipmapped. See ktxLoadTextureF() for
- *                          details.
- * @param[out] pGlerror     @p *pGlerror is set to the value returned by
- *                          glGetError when this function returns the error
- *                          KTX_GL_ERROR. glerror can be NULL.
- * @param[in,out] pKvdLen   If not NULL, @p *pKvdLen is set to the number of
- *                          bytes of key-value data pointed at by @p *ppKvd.
- *                          Must not be NULL, if @p ppKvd is not NULL.
- * @param[in,out] ppKvd     If not NULL, @p *ppKvd is set to the point to a
- *                          block of memory containing key-value data read from
- *                          the file. The application is responsible for freeing
- *                          the memory.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_OPEN_FAILED  The specified memory could not be opened as
- *                                  a file.
- * @exception KTX_INVALID_VALUE     See ktxLoadTextureF() for causes.
- * @exception KTX_INVALID_OPERATION See ktxLoadTextureF() for causes.
- * @exception KTX_UNEXPECTED_END_OF_FILE See ktxLoadTextureF() for causes.
- *
- * @exception KTX_GL_ERROR          See ktxLoadTextureF() for causes.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE See ktxLoadTextureF() for causes.
- */
-KTX_error_code
-ktxLoadTextureM(const void* bytes, GLsizei size, GLuint* pTexture,
-                GLenum* pTarget, KTX_dimensions* pDimensions,
-                GLboolean* pIsMipmapped, GLenum* pGlerror,
-                unsigned int* pKvdLen, unsigned char** ppKvd)
-{
-    ktxTexture* texture;
-    KTX_error_code result = KTX_SUCCESS;
-
-    if (ppKvd != NULL && pKvdLen == NULL)
-        return KTX_INVALID_VALUE;
-    
-    result = ktxTexture_CreateFromMemory(bytes, size,
-                                         KTX_TEXTURE_CREATE_RAW_KVDATA_BIT,
-                                         &texture);
-
-    if (result != KTX_SUCCESS)
-        return result;
-
-    result = ktxTexture_GLUpload(texture, pTexture, pTarget, pGlerror);
-    if (result == KTX_SUCCESS) {
-        if (ppKvd != NULL) {
-            *ppKvd = texture->kvData;
-            *pKvdLen = texture->kvDataLen;
-            /* Remove to avoid it being freed when texture is destroyed. */
-            texture->kvData = NULL;
-            texture->kvDataLen = 0;
-        }
-        if (pDimensions) {
-            pDimensions->width = texture->baseWidth;
-            pDimensions->height = texture->baseHeight;
-            pDimensions->depth = texture->baseDepth;
-        }
-        if (pIsMipmapped) {
-            if (texture->generateMipmaps || texture->numLevels > 1)
-                *pIsMipmapped = GL_TRUE;
-            else
-                *pIsMipmapped = GL_FALSE;
-        }
-    }
-    
-    ktxTexture_Destroy(texture);
-
-    return result;
-}
-
-/** @} */
diff --git a/external/KTX-Software-master/lib/hashlist.c b/external/KTX-Software-master/lib/hashlist.c
deleted file mode 100644
index 2afb20c..0000000
--- a/external/KTX-Software-master/lib/hashlist.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file hashlist.c
- * @~English
- *
- * @brief Functions for creating and using a hash list of key-value
- *        pairs.
- *
- * @author Mark Callow, HI Corporation
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-// This is to avoid compile warnings. strlen is defined as returning
-// size_t and is used by the uthash macros. This avoids having to
-// make changes to uthash and a bunch of casts in this file. The
-// casts would be required because the key and value lengths in KTX
-// are specified as 4 byte quantities so we can't change _keyAndValue
-// below to use size_t.
-#define strlen(x) ((unsigned int)strlen(x))
-
-#include "uthash.h"
-
-#include "ktx.h"
-#include "ktxint.h"
-
-
-/**
- * @internal
- * @struct ktxKVListEntry
- * @brief Hash list entry structure
- */
-typedef struct ktxKVListEntry {
-    unsigned int keyLen;    /*!< Length of the key */
-    char* key;              /*!< Pointer to key string */
-    unsigned int valueLen;  /*!< Length of the value */
-    void* value;            /*!< Pointer to the value */
-    UT_hash_handle hh;      /*!< handle used by UT hash */
-} ktxKVListEntry;
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Construct an empty hash list for storing key-value pairs.
- *
- * @param [in] pHead pointer to the location to write the list head.
- */
-void
-ktxHashList_Construct(ktxHashList* pHead)
-{
-    *pHead = NULL;
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Destruct a hash list.
- *
- * All memory associated with the hash list's keys and values
- * is freed.
- *
- * @param [in] pHead pointer to the hash list to be destroyed.
- */
-void
-ktxHashList_Destruct(ktxHashList* pHead)
-{
-    ktxKVListEntry* kv;
-    ktxKVListEntry* head = *pHead;
-    
-    for(kv = head; kv != NULL;) {
-        ktxKVListEntry* tmp = (ktxKVListEntry*)kv->hh.next;
-        HASH_DELETE(hh, head, kv);
-        free(kv);
-        kv = tmp;
-    }
-}
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Create an empty hash list for storing key-value pairs.
- *
- * @param [in,out] ppHl address of a variable in which to set a pointer to
- *                 the newly created hash list.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- * @exception KTX_OUT_OF_MEMORY if not enough memory.
- */
-KTX_error_code
-ktxHashList_Create(ktxHashList** ppHl)
-{
-    ktxHashList* hl = (ktxHashList*)malloc(sizeof (ktxKVListEntry*));
-    if (hl == NULL)
-        return KTX_OUT_OF_MEMORY;
-    
-    ktxHashList_Construct(hl);
-    *ppHl = hl;
-    return KTX_SUCCESS;
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Destroy a hash list.
- *
- * All memory associated with the hash list's keys and values
- * is freed. The hash list is also freed.
- *
- * @param [in] pHead pointer to the hash list to be destroyed.
- */
-void
-ktxHashList_Destroy(ktxHashList* pHead)
-{
-    ktxHashList_Destruct(pHead);
-    free(pHead);
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Add a key value pair to a hash list.
- *
- * @param [in] pHead    pointer to the head of the target hash list.
- * @param [in] key      pointer to the UTF8 NUL-terminated string to be used as the key.
- * @param [in] valueLen the number of bytes of data in @p value.
- * @param [in] value    pointer to the bytes of data constituting the value.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- * @exception KTX_INVALID_VALUE if @p This, @p key or @p value are NULL, @p key is an
- *            empty string or @p valueLen == 0.
- */
-KTX_error_code
-ktxHashList_AddKVPair(ktxHashList* pHead, const char* key, unsigned int valueLen, const void* value)
-{
-    if (pHead && key && value && valueLen != 0) {
-        unsigned int keyLen = (unsigned int)strlen(key) + 1;
-        /* ktxKVListEntry* head = *(ktxKVListEntry**)This; */
-        ktxKVListEntry* kv;
-
-        if (keyLen == 1)
-            return KTX_INVALID_VALUE;   /* Empty string */
-
-        /* Allocate all the memory as a block */
-        kv = (ktxKVListEntry*)malloc(sizeof(ktxKVListEntry) + keyLen + valueLen);
-        /* Put key first */
-        kv->key = (char *)kv + sizeof(ktxKVListEntry);
-        kv->keyLen = keyLen;
-        /* then value */
-        kv->value = kv->key + keyLen;
-        kv->valueLen = valueLen;
-        memcpy(kv->key, key, keyLen);
-        memcpy(kv->value, value, valueLen);
-
-        HASH_ADD_KEYPTR( hh, *pHead, kv->key, kv->keyLen-1, kv);
-        return KTX_SUCCESS;
-    } else
-        return KTX_INVALID_VALUE;
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Looks up a key in a hash list and returns the value.
- *
- * @param [in]     pHead        pointer to the head of the target hash list.
- * @param [in]     key          pointer to a UTF8 NUL-terminated string to find.
- * @param [in,out] pValueLen    @p *pValueLen is set to the number of bytes of
- *                              data in the returned value.
- * @param [in,out] ppValue      @p *ppValue is set to the point to the value for
- *                              @p key.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- *
- * @exception KTX_INVALID_VALUE if @p This, @p key or @p pValueLen or @p ppValue
- *                              is NULL.
- * @exception KTX_NOT_FOUND     an entry matching @p key was not found.
- */
-KTX_error_code
-ktxHashList_FindValue(ktxHashList *pHead, const char* key, unsigned int* pValueLen, void** ppValue)
-{
-    if (pHead && key && pValueLen && ppValue) {
-        ktxKVListEntry* kv;
-        /* ktxKVListEntry* head = *(ktxKVListEntry**)This; */
-
-        HASH_FIND_STR( *pHead, key, kv );  /* kv: output pointer */
-
-        if (kv) {
-            *pValueLen = kv->valueLen;
-            *ppValue = kv->value;
-            return KTX_SUCCESS;
-        } else
-            return KTX_NOT_FOUND;
-    } else
-        return KTX_INVALID_VALUE;
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Serialize a hash list to a block of data suitable for writing
- *        to a file.
- *
- * The caller is responsible for freeing the data block returned by this
- * function.
- *
- * @param [in]     pHead        pointer to the head of the target hash list.
- * @param [in,out] pKvdLen      @p *pKvdLen is set to the number of bytes of
- *                              data in the returned data block.
- * @param [in,out] ppKvd        @p *ppKvd is set to the point to the block of
- *                              memory containing the serialized data.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- *
- * @exception KTX_INVALID_VALUE if @p This, @p pKvdLen or @p ppKvd is NULL.
- * @exception KTX_OUT_OF_MEMORY there was not enough memory to serialize the
- *                              data.
- */
-KTX_error_code
-ktxHashList_Serialize(ktxHashList* pHead,
-                      unsigned int* pKvdLen, unsigned char** ppKvd)
-{
-
-    if (pHead && pKvdLen && ppKvd) {
-        ktxKVListEntry* kv;
-        unsigned int bytesOfKeyValueData = 0;
-        unsigned int keyValueLen;
-        unsigned char* sd;
-        char padding[4] = {0, 0, 0, 0};
-
-        for (kv = *pHead; kv != NULL; kv = kv->hh.next) {
-            /* sizeof(sd) is to make space to write keyAndValueByteSize */
-            keyValueLen = kv->keyLen + kv->valueLen + sizeof(ktx_uint32_t);
-            /* Add valuePadding */
-            keyValueLen = _KTX_PAD4(keyValueLen);
-            bytesOfKeyValueData += keyValueLen;
-        }
-        sd = malloc(bytesOfKeyValueData);
-        if (!sd)
-            return KTX_OUT_OF_MEMORY;
-
-        *pKvdLen = bytesOfKeyValueData;
-        *ppKvd = sd;
-
-        for (kv = *pHead; kv != NULL; kv = kv->hh.next) {
-            int padLen;
-
-            keyValueLen = kv->keyLen + kv->valueLen;
-            *(ktx_uint32_t*)sd = keyValueLen;
-            sd += sizeof(ktx_uint32_t);
-            memcpy(sd, kv->key, kv->keyLen);
-            sd += kv->keyLen;
-            memcpy(sd, kv->value, kv->valueLen);
-            sd += kv->valueLen;
-            padLen = _KTX_PAD4_LEN(keyValueLen);
-            memcpy(sd, padding, padLen);
-            sd += padLen;
-        }
-        return KTX_SUCCESS;
-    } else
-        return KTX_INVALID_VALUE;
-}
-
-
-/**
- * @memberof ktxHashList @public
- * @~English
- * @brief Construct a hash list from a block of serialized key-value
- *        data read from a file.
- * @note The bytes of the 32-bit key-value lengths within the serialized data
- *       are expected to be in native endianness.
- *
- * @param [in]      pHead       pointer to the head of the target hash list.
- * @param [in]      kvdLen      the length of the serialized key-value data.
- * @param [in]      pKvd        pointer to the serialized key-value data.
- *                              table.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- *
- * @exception KTX_INVALID_OPERATION if @p pHead does not point to an empty list.
- * @exception KTX_INVALID_VALUE if @p pKvd or @p pHt is NULL or kvdLen == 0.
- * @exception KTX_OUT_OF_MEMORY there was not enough memory to create the hash
- *                              table.
- */
-KTX_error_code
-ktxHashList_Deserialize(ktxHashList* pHead, unsigned int kvdLen, void* pKvd)
-{
-    char* src = pKvd;
-    KTX_error_code result;
-
-    if (kvdLen == 0 || pKvd == NULL || pHead == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (*pHead != NULL)
-        return KTX_INVALID_OPERATION;
-
-    result = KTX_SUCCESS;
-    while (result == KTX_SUCCESS && src < (char *)pKvd + kvdLen) {
-        char* key;
-        unsigned int keyLen;
-        void* value;
-        ktx_uint32_t keyAndValueByteSize = *((ktx_uint32_t*)src);
-
-        src += sizeof(keyAndValueByteSize);
-        key = src;
-        keyLen = (unsigned int)strlen(key) + 1;
-        value = key + keyLen;
-
-        result = ktxHashList_AddKVPair(pHead, key, keyAndValueByteSize - keyLen,
-                                       value);
-        if (result == KTX_SUCCESS) {
-            src += _KTX_PAD4(keyAndValueByteSize);
-        }
-    }
-    return result;
-}
-
-
diff --git a/external/KTX-Software-master/lib/hashtable.c b/external/KTX-Software-master/lib/hashtable.c
deleted file mode 100644
index e9a42f1..0000000
--- a/external/KTX-Software-master/lib/hashtable.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/**
- * @internal
- * @file hashtable.c
- * @~English
- *
- * @brief Functions for backward compatibility with libktx v1
- *        hashtable API.
- *
- * @author Mark Callow, www.edgewise-consulting.com
- */
-
-/*
- * ©2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "ktx.h"
-
-/**
- * @memberof KTX_hash_table
- * @~English
- * @deprecated Use ktxHashList_Create().
- */
-KTX_hash_table
-ktxHashTable_Create(void) {
-    ktxHashList* hl;
-    (void)ktxHashList_Create(&hl);
-    return hl;
-}
-
-/**
- * @memberof KTX_hash_table
- * @~English
- * @deprecated Use ktxHashList_Serialize().
- * @brief Serializes the hash table to a block of memory suitable for
- *        writing to a KTX file.
- */
-KTX_error_code
-ktxHashTable_Serialize(KTX_hash_table This,
-                      unsigned int* kvdLen, unsigned char** kvd)
-{
-    return ktxHashList_Serialize(This, kvdLen, kvd);
-}
-
-/**
- * @memberof KTX_hash_table
- * @deprecated Use ktxHashList_Deserialize().
- * @~English
- * @brief Create a new hash table from a block of serialized key-value
- *        data read from a file.
- *
- * The caller is responsible for freeing the returned hash table.
- *
- * @note The bytes of the 32-bit key-value lengths within the serialized data
- *       are expected to be in native endianness.
- *
- * @param[in]        kvdLen      the length of the serialized key-value data.
- * @param[in]        pKvd        pointer to the serialized key-value data.
- * @param[in,out]    pHt         @p *pHt is set to point to the created hash
- *                               table.
- *
- * @return KTX_SUCCESS or one of the following error codes.
- *
- * @exception KTX_INVALID_VALUE if @p pKvd or @p pHt is NULL or kvdLen == 0.
- * @exception KTX_OUT_OF_MEMORY there was not enough memory to create the hash
- *                              table.
- */
-KTX_error_code
-ktxHashTable_Deserialize(unsigned int kvdLen, void* pKvd, KTX_hash_table* pHt)
-{
-    ktxHashList* pHl;
-    KTX_error_code result;
-    result = ktxHashList_Create(&pHl);
-    if (result != KTX_SUCCESS)
-        return result;
-
-    result = ktxHashList_Deserialize(pHl, kvdLen, pKvd);
-    if (result == KTX_SUCCESS)
-        *pHt = pHl;
-    return result;
-}  
-
diff --git a/external/KTX-Software-master/lib/ktxgl.h b/external/KTX-Software-master/lib/ktxgl.h
deleted file mode 100644
index c4674d4..0000000
--- a/external/KTX-Software-master/lib/ktxgl.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: 94277b50a14992fc9e5a6e011ef5f9cdf28f0d89 $ */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/* 
- * Author: Mark Callow from original code by Georg Kolling
- */
-
-#ifndef KTXGL_H
-#define KTXGL_H
-
-#ifndef SUPPORT_LEGACY_FORMAT_CONVERSION
-  #if KTX_OPENGL
-    #define SUPPORT_LEGACY_FORMAT_CONVERSION 1
-  #elif KTX_OPENGL_ES1
-    /* ES1, ES2 & ES3 support the legacy formats */
-    #define SUPPORT_LEGACY_FORMAT_CONVERSION 0
-  #endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * These defines are needed to compile the KTX library. When
- * these things are not available in the GL header in use at
- * compile time, the library provides its own support, handles
- * the expected run-time errors or just needs the token value.
- */
-#ifndef GL_LUMINANCE
-#define GL_ALPHA                        0x1906
-#define GL_LUMINANCE                    0x1909
-#define GL_LUMINANCE_ALPHA              0x190A
-#endif
-#ifndef GL_INTENSITY
-#define GL_INTENSITY                    0x8049
-#endif
-#if SUPPORT_LEGACY_FORMAT_CONVERSION
-/* For loading legacy KTX files. */
-#ifndef GL_LUMINANCE4
-#define GL_ALPHA4                       0x803B
-#define GL_ALPHA8                       0x803C
-#define GL_ALPHA12                      0x803D
-#define GL_ALPHA16                      0x803E
-#define GL_LUMINANCE4                   0x803F
-#define GL_LUMINANCE8                   0x8040
-#define GL_LUMINANCE12                  0x8041
-#define GL_LUMINANCE16                  0x8042
-#define GL_LUMINANCE4_ALPHA4            0x8043
-#define GL_LUMINANCE6_ALPHA2            0x8044
-#define GL_LUMINANCE8_ALPHA8            0x8045
-#define GL_LUMINANCE12_ALPHA4           0x8046
-#define GL_LUMINANCE12_ALPHA12          0x8047
-#define GL_LUMINANCE16_ALPHA16          0x8048
-#endif
-#ifndef GL_INTENSITY4
-#define GL_INTENSITY4                   0x804A
-#define GL_INTENSITY8                   0x804B
-#define GL_INTENSITY12                  0x804C
-#define GL_INTENSITY16                  0x804D
-#endif
-#ifndef GL_SLUMINANCE
-#define GL_SLUMINANCE_ALPHA             0x8C44
-#define GL_SLUMINANCE8_ALPHA8           0x8C45
-#define GL_SLUMINANCE                   0x8C46
-#define GL_SLUMINANCE8                  0x8C47
-#endif
-#endif /* SUPPORT_LEGACY_FORMAT_CONVERSION */
-#ifndef GL_TEXTURE_1D
-#define GL_TEXTURE_1D                   0x0DE0
-#endif
-#ifndef GL_TEXTURE_3D
-#define GL_TEXTURE_3D                   0x806F
-#endif
-#ifndef GL_TEXTURE_CUBE_MAP
-#define GL_TEXTURE_CUBE_MAP             0x8513
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X  0x8515
-#endif
-#ifndef GL_TEXTURE_CUBE_MAP_ARRAY
-#define GL_TEXTURE_CUBE_MAP_ARRAY       0x9009
-#endif
-/* from GL_EXT_texture_array */
-#ifndef GL_TEXTURE_1D_ARRAY_EXT
-#define GL_TEXTURE_1D_ARRAY_EXT         0x8C18
-#define GL_TEXTURE_2D_ARRAY_EXT         0x8C1A
-#endif
-#ifndef GL_GENERATE_MIPMAP
-#define GL_GENERATE_MIPMAP              0x8191
-#endif
-
-/* For writer.c */
-#if !defined(GL_BGR)
-#define GL_BGR                          0x80E0
-#define GL_BGRA                         0x80E1
-#endif
-#if !defined(GL_RED_INTEGER)
-#define GL_RED_INTEGER                  0x8D94
-#define GL_RGB_INTEGER                  0x8D98
-#define GL_RGBA_INTEGER                 0x8D99
-#endif
-#if !defined(GL_GREEN_INTEGER)
-#define GL_GREEN_INTEGER                0x8D95
-#define GL_BLUE_INTEGER                 0x8D96
-#endif
-#if !defined(GL_ALPHA_INTEGER)
-#define GL_ALPHA_INTEGER                0x8D97
-#endif
-#if !defined (GL_BGR_INTEGER)
-#define GL_BGR_INTEGER                  0x8D9A
-#define GL_BGRA_INTEGER                 0x8D9B
-#endif
-#if !defined(GL_INT)
-#define GL_INT 0x1404
-#define GL_UNSIGNED_INT 0x1405
-#endif
-#if !defined(GL_HALF_FLOAT)
-typedef unsigned short GLhalf;
-#define GL_HALF_FLOAT                   0x140B
-#endif
-#if !defined(GL_UNSIGNED_BYTE_3_3_2)
-#define GL_UNSIGNED_BYTE_3_3_2          0x8032
-#define GL_UNSIGNED_INT_8_8_8_8         0x8035
-#define GL_UNSIGNED_INT_10_10_10_2      0x8036
-#endif
-#if !defined(GL_UNSIGNED_BYTE_2_3_3_REV)
-#define GL_UNSIGNED_BYTE_2_3_3_REV      0x8362
-#define GL_UNSIGNED_SHORT_5_6_5         0x8363
-#define GL_UNSIGNED_SHORT_5_6_5_REV     0x8364
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV   0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV   0x8366
-#define GL_UNSIGNED_INT_8_8_8_8_REV     0x8367
-#define GL_UNSIGNED_INT_2_10_10_10_REV  0x8368
-#endif
-#if !defined(GL_UNSIGNED_INT_24_8)
-#define GL_DEPTH_STENCIL                0x84F9
-#define GL_UNSIGNED_INT_24_8            0x84FA
-#endif
-#if !defined(GL_UNSIGNED_INT_5_9_9_9_REV)
-#define GL_UNSIGNED_INT_5_9_9_9_REV     0x8C3E
-#endif
-#if !defined(GL_UNSIGNED_INT_10F_11F_11F_REV)
-#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
-#endif
-#if !defined (GL_FLOAT_32_UNSIGNED_INT_24_8_REV)
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV   0x8DAD
-#endif
-
-#ifndef GL_ETC1_RGB8_OES
-#define GL_ETC1_RGB8_OES                0x8D64
-#endif
-
-#if SUPPORT_SOFTWARE_ETC_UNPACK
-#ifndef GL_COMPRESSED_R11_EAC
-#define GL_COMPRESSED_R11_EAC                            0x9270
-#define GL_COMPRESSED_SIGNED_R11_EAC                     0x9271
-#define GL_COMPRESSED_RG11_EAC                           0x9272
-#define GL_COMPRESSED_SIGNED_RG11_EAC                    0x9273
-#define GL_COMPRESSED_RGB8_ETC2                          0x9274
-#define GL_COMPRESSED_SRGB8_ETC2                         0x9275
-#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2      0x9276
-#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2     0x9277
-#define GL_COMPRESSED_RGBA8_ETC2_EAC                     0x9278
-#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC              0x9279
-#endif
-#ifndef GL_R16_SNORM
-#define GL_R16_SNORM                    0x8F98
-#define GL_RG16_SNORM                   0x8F99
-#endif
-#ifndef GL_RED
-#define GL_RED                          0x1903
-#define GL_GREEN                        0x1904
-#define GL_BLUE                         0x1905
-#define GL_RG                           0x8227
-#define GL_RG_INTEGER                   0x8228
-#endif
-#ifndef GL_R16
-#define GL_R16                          0x822A
-#define GL_RG16                         0x822C
-#endif
-#ifndef GL_RGB8
-#define GL_RGB8                         0x8051
-#define GL_RGBA8                        0x8058
-#endif
-#ifndef GL_SRGB8
-#define GL_SRGB8                        0x8C41
-#define GL_SRGB8_ALPHA8                 0x8C43
-#endif
-#endif
-
-#ifndef GL_MAJOR_VERSION
-#define GL_MAJOR_VERSION                0x821B
-#define GL_MINOR_VERSION                0x821C
-#endif
-
-#ifndef GL_CONTEXT_PROFILE_MASK
-#define GL_CONTEXT_PROFILE_MASK              0x9126
-#define GL_CONTEXT_CORE_PROFILE_BIT          0x00000001
-#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
-#endif
-    
-#ifndef GL_NUM_EXTENSIONS
-#define GL_NUM_EXTENSIONS              0x821D
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* KTXGL_H */
diff --git a/external/KTX-Software-master/lib/ktxint.h b/external/KTX-Software-master/lib/ktxint.h
deleted file mode 100644
index a7e27fb..0000000
--- a/external/KTX-Software-master/lib/ktxint.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: 3dd768b381113d67ca7e4bde10e6252900bff845 $ */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-/* 
- * Author: Mark Callow from original code by Georg Kolling
- */
-
-#ifndef KTXINT_H
-#define KTXINT_H
-
-/* Define this to include the ETC unpack software in the library. */
-#ifndef SUPPORT_SOFTWARE_ETC_UNPACK
-  /* Include for all GL versions because have seen OpenGL ES 3
-   * implementaions that do not support ETC1 (ARM Mali emulator v1.0)!
-   */
-  #define SUPPORT_SOFTWARE_ETC_UNPACK 1
-#endif
-
-#ifndef MAX
-#define MAX(x, y) (((x) > (y)) ? (x) : (y))
-#endif
-
-#define KTX2_IDENTIFIER_REF  { 0xAB, 0x4B, 0x54, 0x58, 0x20, 0x32, 0x30, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A }
-#define KTX2_HEADER_SIZE     (64)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @internal
- * @brief used to pass GL context capabilites to subroutines.
- */
-#define _KTX_NO_R16_FORMATS     0x0
-#define _KTX_R16_FORMATS_NORM   0x1
-#define _KTX_R16_FORMATS_SNORM  0x2
-#define _KTX_ALL_R16_FORMATS (_KTX_R16_FORMATS_NORM | _KTX_R16_FORMATS_SNORM)
-extern GLint _ktxR16Formats;
-extern GLboolean _ktxSupportsSRGB;
-
-/**
- * @internal
- * @~English
- * @brief KTX file header
- *
- * See the KTX specification for descriptions
- */
-typedef struct KTX_header {
-    ktx_uint8_t  identifier[12];
-    ktx_uint32_t endianness;
-    ktx_uint32_t glType;
-    ktx_uint32_t glTypeSize;
-    ktx_uint32_t glFormat;
-    ktx_uint32_t glInternalformat;
-    ktx_uint32_t glBaseInternalformat;
-    ktx_uint32_t pixelWidth;
-    ktx_uint32_t pixelHeight;
-    ktx_uint32_t pixelDepth;
-    ktx_uint32_t numberOfArrayElements;
-    ktx_uint32_t numberOfFaces;
-    ktx_uint32_t numberOfMipmapLevels;
-    ktx_uint32_t bytesOfKeyValueData;
-} KTX_header;
-
-/* This will cause compilation to fail if the struct size doesn't match */
-typedef int KTX_header_SIZE_ASSERT [sizeof(KTX_header) == KTX_HEADER_SIZE];
-
-/**
- * @internal
- * @~English
- * @brief Structure for supplemental information about the texture.
- *
- * _ktxCheckHeader returns supplemental information about the texture in this
- * structure that is derived during checking of the file header.
- */
-typedef struct KTX_supplemental_info
-{
-    ktx_uint8_t compressed;
-    ktx_uint8_t generateMipmaps;
-    ktx_uint16_t textureDimension;
-} KTX_supplemental_info;
-/**
- * @internal
- * @var ktx_uint8_t KTX_supplemental_info::compressed
- * @~English
- * @brief KTX_TRUE, if this a compressed texture, KTX_FALSE otherwise?
- */
-/**
- * @internal
- * @var ktx_uint8_t KTX_supplemental_info::generateMipmaps
- * @~English
- * @brief KTX_TRUE, if mipmap generation is required, KTX_FALSE otherwise.
- */
-/**
- * @internal
- * @var ktx_uint16_t KTX_supplemental_info::textureDimension
- * @~English
- * @brief The number of dimensions, 1, 2 or 3, of data in the texture image.
- */
-
-/*
- * @internal
- * CheckHeader
- * 
- * Reads the KTX file header and performs some sanity checking on the values
- */
-KTX_error_code _ktxCheckHeader(KTX_header* pHeader,
-                               KTX_supplemental_info* pSuppInfo);
-
-/*
- * SwapEndian16: Swaps endianness in an array of 16-bit values
- */
-void _ktxSwapEndian16(ktx_uint16_t* pData16, int count);
-
-/*
- * SwapEndian32: Swaps endianness in an array of 32-bit values
- */
-void _ktxSwapEndian32(ktx_uint32_t* pData32, int count);
-
-/*
- * UnpackETC: uncompresses an ETC compressed texture image
- */
-KTX_error_code _ktxUnpackETC(const GLubyte* srcETC, const GLenum srcFormat,
-                             ktx_uint32_t active_width, ktx_uint32_t active_height,
-                             GLubyte** dstImage,
-                             GLenum* format, GLenum* internalFormat, GLenum* type,
-                             GLint R16Formats, GLboolean supportsSRGB);
-
-/*
- * Pad nbytes to next multiple of n
- */
-/* Equivalent to n * ceil(nbytes / n) */
-#define _KTX_PADN(n, nbytes) (nbytes + (n-1) & ~(ktx_uint32_t)(n-1))
-/*
- * Calculate bytes of of padding needed to reach next multiple of n.
- */
-/* Equivalent to (n * ceil(nbytes / n)) - nbytes */
-#define _KTX_PADN_LEN(n, nbytes) ((n-1) - (nbytes + (n-1) & (n-1)))
-
-/*
- * Pad nbytes to next multiple of 4
- */
-#define _KTX_PAD4(nbytes) _KTX_PADN(4, nbytes)
-/*
- * Calculate bytes of of padding needed to reach next multiple of 4.
- */
-#define _KTX_PAD4_LEN(nbytes) _KTX_PADN_LEN(4, nbytes)
-
-/*
- * Pad nbytes to KTX_GL_UNPACK_ALIGNMENT
- */
-#define _KTX_PAD_UNPACK_ALIGN(nbytes)  \
-        _KTX_PADN(KTX_GL_UNPACK_ALIGNMENT, nbytes)
-/*
- * Calculate bytes of of padding needed to reach KTX_GL_UNPACK_ALIGNMENT.
- */
-#define _KTX_PAD_UNPACK_ALIGN_LEN(nbytes)  \
-        _KTX_PADN_LEN(KTX_GL_UNPACK_ALIGNMENT, nbytes)
-
-/*
- ======================================
-     Internal ktxTexture functions
- ======================================
-*/
-
-KTX_error_code
-ktxTexture_iterateLoadedImages(ktxTexture* This, PFNKTXITERCB iterCb,
-                               void* userdata);
-KTX_error_code
-ktxTexture_iterateSourceImages(ktxTexture* This, PFNKTXITERCB iterCb,
-                               void* userdata);
-    
-ktx_uint32_t ktxTexture_glTypeSize(ktxTexture* This);
-ktx_size_t ktxTexture_imageSize(ktxTexture* This, ktx_uint32_t level);
-ktx_bool_t ktxTexture_isActiveStream(ktxTexture* This);
-ktx_size_t ktxTexture_levelSize(ktxTexture* This, ktx_uint32_t level);
-ktx_size_t ktxTexture_faceLodSize(ktxTexture* This, ktx_uint32_t level);
-void ktxTexture_rowInfo(ktxTexture* This, ktx_uint32_t level,
-                        ktx_uint32_t* numRows, ktx_uint32_t* rowBytes,
-                        ktx_uint32_t* rowPadding);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* KTXINT_H */
diff --git a/external/KTX-Software-master/lib/libktx.gypi b/external/KTX-Software-master/lib/libktx.gypi
deleted file mode 100644
index 06c019b..0000000
--- a/external/KTX-Software-master/lib/libktx.gypi
+++ /dev/null
@@ -1,226 +0,0 @@
-##
-# @internal
-# @copyright © 2015, Mark Callow. For license see LICENSE.md.
-#
-# @brief Generate project to build KTX library for OpenGL.
-#
-{
-  'variables': {
-    'sources': [
-      # .h files are included so they will appear in IDEs' file lists.
-      '../include/ktx.h',
-      'checkheader.c',
-      'errstr.c',
-      'etcdec.cxx',
-      'etcunpack.cxx',
-      'filestream.c',
-      'filestream.h',
-      'gl_format.h',
-      'gl_funcptrs.h',
-      'gles1_funcptrs.h',
-      'gles2_funcptrs.h',
-      'gles3_funcptrs.h',
-      'glloader.c',
-      'hashlist.c',
-      'hashtable.c',
-      'ktxgl.h',
-      'ktxint.h',
-      'memstream.c',
-      'memstream.h',
-      'stream.h',
-      'swap.c',
-      'texture.c',
-      'uthash.h',
-      'writer.c',
-      'writer_v1.c'
-    ],
-    # Use _files to get the names relativized
-    'vksource_files': [
-      '../include/ktxvulkan.h',
-      'vk_format.h',
-      'vkloader.c',
-      'vk_funclist.inl',
-      'vk_funcs.c',
-      'vk_funcs.h'
-    ],
-    'include_dirs': [
-      '../include',
-      '../other_include',
-    ],
-  }, # variables
-
-  'includes': [
-      '../gyp_include/libgl.gypi',
-      '../gyp_include/libvulkan.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'libktx.gl',
-      'type': '<(library)',
-      'cflags': [ '-std=c99' ],
-      'defines': [ 'KTX_OPENGL=1' ],
-      'direct_dependent_settings': {
-         'include_dirs': [ '<@(include_dirs)' ],
-      },
-      'include_dirs': [ '<@(include_dirs)' ],
-      'mac_bundle': 0,
-      'dependencies': [ 'vulkan_headers' ],
-      'sources': [
-        '<@(sources)',
-        '<@(vksource_files)',
-      ],
-      'conditions': [
-        ['_type == "shared_library"', {
-          'dependencies': [ 'libgl', 'libvulkan.lazy' ],
-          'conditions': [
-            ['OS == "mac" or OS == "ios"', {
-              'direct_dependent_settings': {
-                'target_conditions': [
-                  ['_mac_bundle == 1', {
-                    'copies': [{
-                      'xcode_code_sign': 1,
-                      'destination': '<(PRODUCT_DIR)/$(FRAMEWORKS_FOLDER_PATH)',
-                      'files': [ '<(PRODUCT_DIR)/<(_target_name)<(SHARED_LIB_SUFFIX)' ],
-                    }], # copies
-                    'xcode_settings': {
-                      # Tell DYLD where to search for this dylib.
-                      # "man dyld" for more information.
-                      'LD_RUNPATH_SEARCH_PATHS': [ '@executable_path/../Frameworks' ],
-                    },
-                  }, {
-                    'xcode_settings': {
-                      'LD_RUNPATH_SEARCH_PATHS': [ '@executable_path' ],
-                    },
-                  }], # _mac_bundle == 1
-                ], # target_conditions
-              }, # direct_dependent_settings
-              'sources!': [
-                'vk_funclist.inl',
-                'vk_funcs.c',
-                'vk_funcs.h',
-              ],
-              'xcode_settings': {
-                # This is so dyld can find the dylib when it is installed by
-                # the copy command above.
-                'INSTALL_PATH': '@rpath',
-              },
-            }, 'OS == "linux"', {
-              'defines': [ 'KTX_USE_FUNCPTRS_FOR_VULKAN' ],
-              'dependencies!': [ 'libvulkan.lazy' ],
-            }] # OS == "mac or OS == "ios"
-          ], # conditions
-        }] # _type == "shared_library"
-      ], # conditions
-    }, # libktx.gl target
-    {
-      'target_name': 'libktx.es1',
-      'type': 'static_library',
-      'cflags': [ '-std=c99' ],
-      'defines': [ 'KTX_OPENGL_ES1=1' ],
-      'direct_dependent_settings': {
-        'include_dirs': [ '<@(include_dirs)' ],
-      },
-      'sources': [ '<@(sources)' ],
-      'include_dirs': [ '<@(include_dirs)' ],
-    }, # libktx.es1
-    {
-      'target_name': 'libktx.es3',
-      'type': 'static_library',
-      'cflags': [ '-std=c99' ],
-      'defines': [ 'KTX_OPENGL_ES3=1' ],
-      'dependencies': [ 'vulkan_headers' ],
-      'direct_dependent_settings': {
-         'include_dirs': [ '<@(include_dirs)' ],
-      },
-      'sources': [
-        '<@(sources)',
-        '<@(vksource_files)',
-      ],
-      'include_dirs': [ '<@(include_dirs)' ],
-    }, # libktx.es3
-  ], # targets
-  'conditions': [
-    ['OS == "linux" or OS == "mac" or OS == "win"', {
-      # Can only build doc on desktops
-      'targets': [
-        {
-          'target_name': 'libktx.doc',
-          'type': 'none',
-          'variables': {
-            'variables': { # level 2
-              'output_dir': '../build/docs',
-            },
-            'output_dir': '<(output_dir)',
-            'doxyConfig': 'libktx.doxy',
-            'timestamp': '<(output_dir)/.libktx_gentimestamp',
-          },
-          'actions': [
-            {
-              'action_name': 'buildLibktxDoc',
-              'message': 'Generating libktx documentation with Doxygen',
-              'inputs': [
-                '../<(doxyConfig)',
-                '../runDoxygen',
-                '../lib/mainpage.md',
-                '../LICENSE.md',
-                '../TODO.md',
-                '<@(sources)',
-                '<@(vksource_files)',
-              ],
-              # If other partial Doxygen outputs are included, e.g.
-              # (<(output_dir)/html/libktx), CMake's make generator
-              # on Linux (at least), makes timestamp dependent on
-              # those other outputs. If those outputs exist, then
-              # neither timestamp nor the document is updated.
-              'outputs': [ '<(timestamp)' ],
-              # doxygen must be run in the top-level project directory
-              # so that ancestors of that directory will be removed
-              # from paths displayed in the documentation. That is
-              # the directory where the .doxy and .gyp files are stored.
-              #
-              # With Xcode, the current directory during project
-              # build is one we need so we're good to go. However
-              # we need to spawn another shell with -l so the
-              # startup (.bashrc, etc) files will be read.
-              #
-              # With MSVS the working directory will be the
-              # location of the vcxproj file. However when the
-              # action is using bash ('msvs_cygwin_shell': '1',
-              # the default, is set) no path relativization is
-              # performed on any command arguments. If forced, by
-              # using variable names such as '*_dir', paths will be
-              # made relative to the location of the .gyp file.
-              #
-              # A setup_env.bat file is run before the command.
-              # Apparently that .bat file is expected to be in the
-              # same location as the .gyp and to cd to
-              # its directory. That makes things work.
-              #
-              # Note that the same setup_env.bat is run by
-              # rules but rules relativize paths to the vcxproj
-              # location so cd to the .gyp home breaks rules.
-              # Therefore in rules set 'msvs_cygwin_shell': '0.
-              #
-              # If using cmd.exe ('msvs_cygwin_shell': '0')
-              # the MSVS generator will relativize to the vcxproj
-              # location *all* command arguments, that do not look
-              # like options.
-              #
-              # With `make`, cmake, etc, like Xcode,  the current
-              # directory during project build is the one we need.
-              'msvs_cygwin_shell': 1,
-              'action': [
-                './runDoxygen',
-                '-t', '<(timestamp)',
-                '-o', '<(output_dir)/html',
-                '<(doxyConfig)',
-              ],
-            }, # buildDoc action
-          ], # actions
-        }, # libktx.doc
-      ], # targets
-    }], # 'OS == "linux" or OS == "mac" or OS == "win"'
-  ], # conditions
-}
-
-# vim:ai:ts=4:sts=4:sw=2:expandtab:textwidth=70
diff --git a/external/KTX-Software-master/lib/mainpage.md b/external/KTX-Software-master/lib/mainpage.md
deleted file mode 100644
index b50ba9e..0000000
--- a/external/KTX-Software-master/lib/mainpage.md
+++ /dev/null
@@ -1,214 +0,0 @@
-Introduction             {#mainpage}
-=========
-
-libktx is a small library of functions for creating and reading KTX (Khronos
-TeXture) files and instantiating OpenGL&reg; and OpenGL&reg; ES
-textures and Vulkan images from them.
-
-For information about the KTX format see the
-<a href="http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/">
-formal specification.</a>
-
-The library is open source software. Source code is available at
-<a href="https://github.com/KhronosGroup/KTX">GitHub</a>. Most of the source
-code and the documentation is licensed under the Apache 2.0 license. See @ref license
-for details. When distributing the library, whether in source or binary form, this
-documentation must be included in the distribution or otherwise made available to
-recipients.
-
-See @ref libktx_history for the list of changes.
-
-See @ref todo for the current To Do list.
-
-@authors
-Mark Callow, <a href="http://www.edgewise-consulting.com">Edgewise Consulting</a>,
-             formerly at <a href="http://www.hicorp.co.jp">HI Corporation</a>\n
-Georg Kolling, <a href="http://www.imgtec.com">Imagination Technology</a>\n
-Jacob Str&ouml;m, <a href="http://www.ericsson.com">Ericsson AB</a>
-
-@version 3.0.0
-
-$Date$
-
-# Usage Overview                              {#overview}
-
-## Reading a KTX file for non-GL and non-Vulkan Use  {#readktx}
-
-~~~~~~~~~~~~~~~~{.c}
-#include <ktx.h>
-
-ktxTexture* texture;
-KTX_error_code result;
-ktx_size_t offset;
-ktx_uint8_t* image;
-ktx_uint32_t level, layer, faceSlice;
-
-result = ktxTexture_CreateFromNamedFile("mytex3d.ktx",
-                                        KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT,
-                                        &texture);
-
-// Retrieve information about the texture from fields in the ktxTexture
-// such as:
-ktx_uint32 numLevels = texture->numLevels;
-ktx_uint32 baseWidth = texture->baseWidth;
-ktx_bool_t isArray = texture->isArray;
-
-// Retrieve a pointer to the image for a specific mip level, array layer
-// & face or depth slice.
-level = 1; layer = 0; faceSlice = 3;
-result = ktxTexture_GetImageOffset(texture, level, layer, faceSlice, &offset);
-image = ktxTexture_GetData(texture) + offset;
-// ...
-// Do something with the texture image.
-// ...
-ktxTexture_Destroy(texture);
-~~~~~~~~~~~~~~~~
-
-## Creating a GL texture object from a KTX file.   {#createGL}
-
-~~~~~~~~~~~~~~~~{.c}
-#include <ktx.h>
-
-ktxTexture* kTexture;
-KTX_error_code result;
-ktx_size_t offset;
-ktx_uint8_t* image;
-ktx_uint32_t level, layer, faceSlice;
-GLuint texture = 0;
-GLenum target, glerror;
-
-result = ktxTexture_CreateFromNamedFile("mytex3d.ktx",
-                                        KTX_TEXTURE_CREATE_NO_FLAGS,
-                                        &kTexture);
-glGenTextures(1, &texture); // Optional. GLUpload can generate a texture.
-result = ktxtexture_GLUpload(kTexture, &texture, &target, &glerror);
-ktxTexture_Destroy(texture);
-// ...
-// GL rendering using the texture
-// ...
-~~~~~~~~~~~~~~~~
-
-## Creating a Vulkan image object from a KTX file.  {#createVulkan}
-
-~~~~~~~~~~~~~~~~{.c}
-#include <ktxvulkan.h>
-
-ktxTexture* kTexture;
-KTX_error_code result;
-ktx_size_t offset;
-ktx_uint8_t* image;
-ktx_uint32_t level, layer, faceSlice;
-ktxVulkanDeviceInfo vdi;
-ktxVulkanTexture texture;
-
-// Set up Vulkan physical device (gpu), logical device (device), queue
-// and command pool. Save the handles to these in a struct called vkctx.
-// ktx VulkanDeviceInfo is used to pass these with the expectation that
-// apps are likely to upload a large number of textures.
-ktxVulkanDeviceInfo_Construct(&vdi, vkctx.gpu, vkctx.device,
-                              vkctx.queue, vkctx.commandPool, nullptr);
-
-ktxresult = ktxTexture_CreateFromNamedFile("mytex3d.ktx",
-                                           KTX_TEXTURE_CREATE_NO_FLAGS,
-                                           &kTexture);
-
-ktxresult = ktxTexture_VkUploadEx(kTexture, &vdi, &texture,
-                                  VK_IMAGE_TILING_OPTIMAL,
-                                  VK_IMAGE_USAGE_SAMPLED_BIT,
-                                  VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
-
-ktxTexture_Destroy(kTexture);
-ktxVulkanDeviceInfo_Destruct(&vdi);
-// ...
-// Vulkan rendering using the texture
-// ...
-// When done using the image in Vulkan...
-ktxVulkanTexture_Destruct(&texture, vkctx.device, nullptr);
-~~~~~~~~~~~~~~~~
-
-## Extracting Metadata        {#subsection}
-
-Once a ktxTexture object has been created, metadata can be easily found
-and extracted. The following can be added to any of the above.
-
-~~~~~~~~~~~~~~~~{.c}
-char* pValue;
-uint32_t valueLen;
-if (KTX_SUCCESS == ktxHashList_FindValue(&kTexture->kvDataHead,
-                                          KTX_ORIENTATION_KEY,
-                                          &valueLen, (void**)&pValue))
- {
-      char s, t;
-
-      if (sscanf(pValue, KTX_ORIENTATION2_FMT, &s, &t) == 2) {
-         ...
-      }
- }
-~~~~~~~~~~~~~~~~
-
-## Writing a KTX file         {#writektx}
-
-~~~~~~~~~~~~~~~~{.c}
-#include <ktx.h>
-
-ktxTexture* texture;
-ktxTextureCreateInfo createInfo;
-KTX_error_code result;
-ktx_uint32_t level, layer, faceSlice;
-FILE* src;
-ktx_size_t srcSize;
-
-createInfo.glInternalformat = GL_RGB8;
-createInfo.baseWidth = 2048;
-createInfo.baseHeight = 1024;
-createInfo.baseDepth = 16;
-createInfo.numDimensions = 3.
-// Note: it is not necessary to provide a full mipmap pyramid.
-createInfo.numLevels = log2(createInfo.baseWidth) + 1
-createInfo.numLayers = 1;
-createInfo.numFaces = 1;
-createInfo.isArray = KTX_FALSE;
-createInfo.generateMipmaps = KTX_FALSE;
-
-result = ktxTexture_Create(createInfo,
-                           KTX_TEXTURE_CREATE_ALLOC_STORAGE,
-                           &texture);
-
-src = // Open a stdio FILE* on the baseLevel image, slice 0.
-srcSize = // Query size of the file.
-level = 0;
-layer = 0;
-faceSlice = 0;                           
-result = ktxTexture_SetImageFromMemory(texture, level, layer, faceSlice,
-                                       src, srcSize);
-// Repeat for the other 15 slices of the base level and all other levels
-// up to createInfo.numLevels.
-
-ktxTexture_WriteToNamedFile(texture, "mytex3d.ktx");
-ktxTexture_Destroy(texture);
-~~~~~~~~~~~~~~~~
-
-## Modifying a KTX file         {#modifyktx}
-
-~~~~~~~~~~~~~~~~{.c}
-#include <ktx.h>
-
-ktxTexture* texture;
-KTX_error_code result;
-ktx_size_t offset;
-ktx_uint8_t* image;
-ktx_uint32_t level, layer, faceSlice;
-
-result = ktxTexture_CreateFromNamedFile("mytex3d.ktx",
-                                        KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT,
-                                        &texture);
-// The file is closed after all the data has been read.
-
-// It is the responsibilty of the application to make sure its
-// modifications are valid.
-texture->generateMipmaps = KTX_TRUE;
-
-ktxTexture_WriteToNamedFile(texture, "mytex3d.ktx");
-ktxTexture_Destroy(texture);
-~~~~~~~~~~~~~~~~
-
diff --git a/external/KTX-Software-master/lib/memstream.c b/external/KTX-Software-master/lib/memstream.c
deleted file mode 100644
index 523b551..0000000
--- a/external/KTX-Software-master/lib/memstream.c
+++ /dev/null
@@ -1,588 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file
- * @~English
- *
- * @brief Implementation of ktxStream for memory.
- *
- * @author Maksim Kolesin, Under Development
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "ktx.h"
-#include "ktxint.h"
-#include "memstream.h"
-
-/**
-* @brief Default allocation size for a ktxMemStream.
-*/
-#define KTX_MEM_DEFAULT_ALLOCATED_SIZE 256
-
-/**
- * @internal
- * @brief Structure to store information about data allocated for ktxMemStream.
- */
-struct ktxMem
-{
-    const ktx_uint8_t* robytes;/*!< pointer to read-only data */
-    ktx_uint8_t* bytes;        /*!< pointer to rw data. */
-    ktx_size_t alloc_size;       /*!< allocated size of the memory block. */
-    ktx_size_t used_size;        /*!< bytes used. Effectively the write position. */
-    ktx_off_t pos;               /*!< read position. */
-};
-
-static KTX_error_code ktxMem_expand(ktxMem* pMem, const ktx_size_t size);
-
-/**
- * @internal
- * @brief Initialize a ktxMem struct for read-write.
- *
- * Memory for the stream data is allocated internally but the
- * caller is responsible for freeing the memory. A pointer to
- * the memory can be obtained with ktxMem_getdata().
- *
- * @sa ktxMem_getdata.
- *
- * @param [in] pMem pointer to the @c ktxMem to initialize.
- */
-static KTX_error_code
-ktxMem_construct(ktxMem* pMem)
-{
-    pMem->pos = 0;
-    pMem->alloc_size = 0;
-    pMem->robytes = 0;
-    pMem->bytes = 0;
-    pMem->used_size = 0;
-    return ktxMem_expand(pMem, KTX_MEM_DEFAULT_ALLOCATED_SIZE);
-}
-
-/**
- * @internal
- * @brief Create & initialize a ktxMem struct for read-write.
- *
- * @sa ktxMem_construct.
- *
- * @param [in,out] ppMem pointer to the location in which to return
- *                       a pointer to the newly created @c ktxMem.
- *
- * @return     KTX_SUCCESS on success, KTX_OUT_OF_MEMORY on error.
- *
- * @exception  KTX_OUT_OF_MEMORY    System failed to allocate sufficient pMemory.
- */
-static KTX_error_code
-ktxMem_create(ktxMem** ppMem)
-{
-    ktxMem* pNewMem = (ktxMem*)malloc(sizeof(ktxMem));
-    if (pNewMem) {
-        KTX_error_code result = ktxMem_construct(pNewMem);
-        if (result == KTX_SUCCESS)
-            *ppMem = pNewMem;
-        return result;
-    }
-    else {
-        return KTX_OUT_OF_MEMORY;
-    }
-}
-
-/**
- * @internal
- * @brief Initialize a ktxMem struct for read-only.
- *
- * @param [in] pMem     pointer to the @c ktxMem to initialize.
- * @param [in] bytes    pointer to the data to be read.
- * @param [in] numBytes number of bytes of data.
- */
-static void
-ktxMem_construct_ro(ktxMem* pMem, const void* bytes, ktx_size_t numBytes)
-{
-    pMem->pos = 0;
-    pMem->robytes = bytes;
-    pMem->bytes = 0;
-    pMem->used_size = numBytes;
-    pMem->alloc_size = numBytes;
-}
-
-/**
- * @internal
- * @brief Create & initialize a ktxMem struct for read-only.
- *
- * @sa ktxMem_construct.
- *
- * @param [in,out] ppMem    pointer to the location in which to return
- *                          a pointer to the newly created @c ktxMem.
- * @param [in]     bytes    pointer to the data to be read.
- * @param [in]     numBytes number of bytes of data.
- *
- * @return     KTX_SUCCESS on success, KTX_OUT_OF_MEMORY on error.
- *
- * @exception  KTX_OUT_OF_MEMORY    System failed to allocate sufficient pMemory.
- */
-static KTX_error_code
-ktxMem_create_ro(ktxMem** ppMem, const void* bytes, ktx_size_t numBytes)
-{
-    ktxMem* pNewMem = (ktxMem*)malloc(sizeof(ktxMem));
-    if (pNewMem) {
-        ktxMem_construct_ro(pNewMem, bytes, numBytes);
-        *ppMem = pNewMem;
-        return KTX_SUCCESS;
-    }
-    else {
-        return KTX_OUT_OF_MEMORY;
-    }
-}
-
-/*
- * ktxMem_destruct not needed as ktxMem_construct caller is reponsible
- * for freeing the data written.
- */
-
-/**
- * @internal
- * @brief Free the memory of a struct ktxMem.
- *
- * @param pMem pointer to ktxMem to free.
- */
-static void
-ktxMem_destroy(ktxMem* pMem, ktx_bool_t freeData)
-{
-    assert(pMem != NULL);
-    if (freeData) {
-        free(pMem->bytes);
-    }
-    free(pMem);
-}
-
-#ifdef KTXMEM_CLEAR_USED
-/**
- * @internal
- * @brief Clear the data of a memory stream.
- *
- * @param pMem pointer to ktxMem to clear.
- */
-static void
-ktxMem_clear(ktxMem* pMem)
-{
-    assert(pMem != NULL);
-    memset(pMem, 0, sizeof(ktxMem));
-}
-#endif
-
-/**
- * @internal
- * @~English
- * @brief Expand a ktxMem to fit to a new size.
- *
- * @param [in] pMem          pointer to ktxMem struct to expand.
- * @param [in] newsize       minimum new size required.
- *
- * @return     KTX_SUCCESS on success, KTX_OUT_OF_MEMORY on error.
- *
- * @exception  KTX_OUT_OF_MEMORY    System failed to allocate sufficient pMemory.
- */
-static KTX_error_code
-ktxMem_expand(ktxMem *pMem, const ktx_size_t newsize)
-{
-    ktx_size_t new_alloc_size;
-    
-    assert(pMem != NULL && newsize != 0);
-
-    new_alloc_size = pMem->alloc_size == 0 ?
-                     KTX_MEM_DEFAULT_ALLOCATED_SIZE : pMem->alloc_size;
-    while (new_alloc_size < newsize) {
-        ktx_size_t alloc_size = new_alloc_size;
-        new_alloc_size <<= 1;
-        if (new_alloc_size < alloc_size) {
-            /* Overflow. Set to maximum size. newsize can't be larger. */
-            new_alloc_size = (ktx_size_t)-1L;
-        }
-    }
-
-    if (new_alloc_size == pMem->alloc_size)
-        return KTX_SUCCESS;
-
-    if (!pMem->bytes)
-        pMem->bytes = (ktx_uint8_t*)malloc(new_alloc_size);
-    else
-        pMem->bytes = (ktx_uint8_t*)realloc(pMem->bytes, new_alloc_size);
-
-    if (!pMem->bytes)
-    {
-        pMem->alloc_size = 0;
-        pMem->used_size = 0;
-        return KTX_OUT_OF_MEMORY;
-    }
-
-    pMem->alloc_size = new_alloc_size;
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Read bytes from a ktxMemStream.
- *
- * @param [in]     str      pointer to ktxMem struct, converted to a void*, that
- *                          specifies an input stream.
- * @param [in,out] dst      pointer to memory where to copy read bytes.
- * @param [in,out] count    pointer to number of bytes to read.
- *
- * @return      KTX_SUCCESS on success, KTX_INVALID_VALUE on error.
- *
- * @exception KTX_INVALID_VALUE     @p str or @p dst is @c NULL or @p str->data is
- *                                  @c NULL.
- * @exception KTX_FILE_UNEXPECTED_EOF not enough data to satisfy the request.
- */
-static
-KTX_error_code ktxMemStream_read(ktxStream* str, void* dst, const ktx_size_t count)
-{
-    ktxMem* mem;
-    ktx_off_t newpos;
-    const ktx_uint8_t* bytes;
-    
-
-    if (!str || !(mem = str->data.mem))
-        return KTX_INVALID_VALUE;
-
-    newpos = mem->pos + count;
-    /* The first clause checks for overflow. */
-    if (newpos < mem->pos || newpos > mem->used_size)
-        return KTX_FILE_UNEXPECTED_EOF;
-
-    bytes = mem->robytes ? mem->robytes : mem->bytes;
-    memcpy(dst, bytes + mem->pos, count);
-    mem->pos = newpos;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Skip bytes in a ktxMemStream.
- *
- * @param [in] str      pointer to the ktxStream on which to operate.
- * @param [in] count    number of bytes to skip.
- *
- * @return      KTX_SUCCESS on success, KTX_INVALID_VALUE on error.
- *
- * @exception KTX_INVALID_VALUE     @p str or @p mem is @c NULL or sufficient
- *                                  data is not available in ktxMem.
- * @exception KTX_FILE_UNEXPECTED_EOF not enough data to satisfy the request.
- */
-static
-KTX_error_code ktxMemStream_skip(ktxStream* str, const ktx_size_t count)
-{
-    ktxMem* mem;
-    ktx_off_t newpos;
-    
-    if (!str || !(mem = str->data.mem))
-        return KTX_INVALID_VALUE;
-    
-    newpos = mem->pos + count;
-    /* The first clause checks for overflow. */
-    if (newpos < mem->pos || newpos > mem->used_size)
-        return KTX_FILE_UNEXPECTED_EOF;
-
-    mem->pos = newpos;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Write bytes to a ktxMemStream.
- *
- * @param [out] str    pointer to the ktxStream that specifies the destination.
- * @param [in] src     pointer to the array of elements to be written,
- *                     converted to a const void*.
- * @param [in] size    size in bytes of each element to be written.
- * @param [in] count   number of elements, each one with a @p size of size
- *                     bytes.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_OVERFLOW        write would result in file exceeding the
- *                                     maximum permissible size.
- * @exception KTX_INVALID_OPERATION    @p str is a read-only stream.
- * @exception KTX_INVALID_VALUE        @p dst is @c NULL or @p mem is @c NULL.
- * @exception KTX_OUT_OF_MEMORY        See ktxMem_expand() for causes.
- */
-static
-KTX_error_code ktxMemStream_write(ktxStream* str, const void* src,
-                                  const ktx_size_t size, const ktx_size_t count)
-{
-    ktxMem* mem;
-    KTX_error_code rc = KTX_SUCCESS;
-    ktx_size_t new_size;
-
-    if (!str || !(mem = str->data.mem))
-        return KTX_INVALID_VALUE;
-
-    if (mem->robytes)
-        return KTX_INVALID_OPERATION; /* read-only */
-
-    new_size = mem->used_size + size*count;
-    if (new_size < mem->used_size)
-        return KTX_FILE_OVERFLOW;
-
-    if (mem->alloc_size < new_size) {
-        rc = ktxMem_expand(mem, new_size);
-        if (rc != KTX_SUCCESS)
-            return rc;
-    }
-
-    memcpy(mem->bytes + mem->used_size, src, size*count);
-    mem->used_size += size*count;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the current read/write position in a ktxMemStream.
- *
- * @param [in] str      pointer to the ktxStream to query.
- * @param [in,out] off  pointer to variable to receive the offset value.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str or @p pos is @c NULL.
- */
-static
-KTX_error_code ktxMemStream_getpos(ktxStream* str, ktx_off_t* const pos)
-{
-    if (!str || !pos)
-        return KTX_INVALID_VALUE;
-    
-    assert(str->type == eStreamTypeMemory);
-    
-    *pos = str->data.mem->pos;
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Set the current read/write position in a ktxMemStream.
- *
- * Offset of 0 is the start of the file.
- *
- * @param [in] str    pointer to the ktxStream whose r/w position is to be set.
- * @param [in] off    pointer to the offset value to set.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str is @c NULL.
- * @exception KTX_INVALID_OPERATION @p pos > size of the allocated memory.
- */
-static
-KTX_error_code ktxMemStream_setpos(ktxStream* str, ktx_off_t pos)
-{
-    if (!str)
-        return KTX_INVALID_VALUE;
-    
-    assert(str->type == eStreamTypeMemory);
-    
-    if (pos > str->data.mem->alloc_size)
-        return KTX_INVALID_OPERATION;
-    
-    str->data.mem->pos = pos;
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get a pointer to a ktxMemStream's data.
- *
- * Gets a pointer to data that has been written to the stream. Returned
- * pointer will be 0 if stream is read-only.
- *
- * @param [in] str       pointer to the ktxStream whose data pointer is to
- *                       be queried.
- * @param [in,out] size  pointer to a variable in which the data pointer
- *                       will be written.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str or @p ppBytes is @c NULL.
- */
-KTX_error_code ktxMemStream_getdata(ktxStream* str, ktx_uint8_t** ppBytes)
-{
-    if (!str || !ppBytes)
-        return KTX_INVALID_VALUE;
-
-    assert(str->type == eStreamTypeMemory);
-
-    *ppBytes = str->data.mem->bytes;
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the size of a ktxMemStream in bytes.
- *
- * @param [in] str       pointer to the ktxStream whose size is to be queried.
- * @param [in,out] size  pointer to a variable in which size will be written.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p str or @p pSize is @c NULL.
- */
-static
-KTX_error_code ktxMemStream_getsize(ktxStream* str, ktx_size_t* pSize)
-{
-    if (!str || !pSize)
-        return KTX_INVALID_VALUE;
-    
-    assert(str->type == eStreamTypeMemory);
-    
-    *pSize = str->data.mem->used_size;
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Setup ktxMemStream function pointers.
- */
-void
-ktxMemStream_setup(ktxStream* str)
-{
-    str->type = eStreamTypeMemory;
-    str->read = ktxMemStream_read;
-    str->skip = ktxMemStream_skip;
-    str->write = ktxMemStream_write;
-    str->getpos = ktxMemStream_getpos;
-    str->setpos = ktxMemStream_setpos;
-    str->getsize = ktxMemStream_getsize;
-    str->destruct = ktxMemStream_destruct;
-}
-
-/**
- * @internal
- * @~English
- * @brief Initialize a read-write ktxMemStream.
- *
- * Memory is allocated as data is written. The caller of this is
- * responsible for freeing this memory unless @a freeOnDestruct
- * is not KTX_FALSE.
- *
- * @param [in] str             pointer to a ktxStream struct to initialize.
- * @param [in] freeOnDestruct  If not KTX_FALSE memory holding the data will
- *                             be freed by the destructor.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE     @p str is @c NULL.
- * @exception KTX_OUT_OF_MEMORY     system failed to allocate sufficient memory.
- */
-KTX_error_code ktxMemStream_construct(ktxStream* str,
-                                      ktx_bool_t freeOnDestruct)
-{
-    ktxMem* mem;
-    KTX_error_code result = KTX_SUCCESS;
-
-    if (!str)
-        return KTX_INVALID_VALUE;
-
-    result = ktxMem_create(&mem);
-
-    if (KTX_SUCCESS == result) {
-        str->data.mem = mem;
-        ktxMemStream_setup(str);
-        str->closeOnDestruct = freeOnDestruct;
-    }
-
-    return result;
-}
-
-/**
- * @internal
- * @~English
- * @brief Initialize a read-only ktxMemStream.
- *
- * @param [in] str      pointer to a ktxStream struct to initialize.
- * @param [in] bytes    pointer to an array of bytes containing the data.
- * @param [in] size     size of array of data for ktxMemStream.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE     @p str or @p mem is @c NULL or @p numBytes
- *                                  is 0.
- *                                  or @p size is less than 0.
- * @exception KTX_OUT_OF_MEMORY     system failed to allocate sufficient memory.
- */
-KTX_error_code ktxMemStream_construct_ro(ktxStream* str,
-                                         const ktx_uint8_t* bytes,
-                                         const ktx_size_t numBytes)
-{
-    ktxMem* mem;
-    KTX_error_code result = KTX_SUCCESS;
-
-    if (!str || !bytes || numBytes == 0)
-        return KTX_INVALID_VALUE;
-
-    result = ktxMem_create_ro(&mem, bytes, numBytes);
-
-    if (KTX_SUCCESS == result) {
-        str->data.mem = mem;
-        ktxMemStream_setup(str);
-        str->closeOnDestruct = KTX_FALSE;
-    }
-
-    return result;
-}
-
-/**
- * @internal
- * @~English
- * @brief Free the memory used by a ktxMemStream.
- *
- * This only frees the memory used to store the data written to the stream,
- * if the @c freeOnDestruct parameter to ktxMemStream_construct() was not
- * @c KTX_FALSE. Otherwise it is the responsibility of the caller of
- * ktxMemStream_construct() and a pointer to this memory should be retrieved
- * using ktxMemStream_getdata() before calling this function.
- *
- * @sa ktxMemStream_construct, ktxMemStream_getdata.
- *
- * @param [in] str pointer to the ktxStream whose memory is
- *                 to be freed.
- */
-void
-ktxMemStream_destruct(ktxStream* str)
-{
-    assert(str && str->type == eStreamTypeMemory);
-
-    ktxMem_destroy(str->data.mem, str->closeOnDestruct);
-    str->data.mem = NULL;
-}
-
diff --git a/external/KTX-Software-master/lib/memstream.h b/external/KTX-Software-master/lib/memstream.h
deleted file mode 100644
index 3cd4e03..0000000
--- a/external/KTX-Software-master/lib/memstream.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file
- * @~English
- *
- * @brief Interface of ktxStream for memory.
- *
- * @author Maksim Kolesin
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation
- */
-
-#ifndef MEMSTREAM_H
-#define MEMSTREAM_H
-
-#include "ktx.h"
-#include "stream.h"
-
-/*
- * Initialize a ktxStream to a ktxMemStream with internally
- * allocated memory. Can be read or written.
- */
-KTX_error_code ktxMemStream_construct(ktxStream* str,
-                                      ktx_bool_t freeOnDestruct);
-/*
- * Initialize a ktxStream to a read-only ktxMemStream reading
- * from an array of bytes.
- */
-KTX_error_code ktxMemStream_construct_ro(ktxStream* str,
-                                         const ktx_uint8_t* pBytes,
-                                         const ktx_size_t size);
-void ktxMemStream_destruct(ktxStream* str);
-
-KTX_error_code ktxMemStream_getdata(ktxStream* str, ktx_uint8_t** ppBytes);
-
-#endif /* MEMSTREAM_H */
diff --git a/external/KTX-Software-master/lib/stream.h b/external/KTX-Software-master/lib/stream.h
deleted file mode 100644
index 9b9a727..0000000
--- a/external/KTX-Software-master/lib/stream.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * Copyright (c) 2010-2018 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file
- * @~English
- *
- * @brief Interface of ktxStream.
- *
- * @author Maksim Kolesin
- * @author Georg Kolling, Imagination Technology
- * @author Mark Callow, HI Corporation
- */
-
-#ifndef KTXSTREAM_H
-#define KTXSTREAM_H
-
-#include <sys/types.h>
-#include "ktx.h"
-
-/* 
- * This is unsigned to allow ktxmemstreams to use the
- * full amount of memory available. Platforms will
- * limit the size of ktxfilestreams to, e.g, MAX_LONG
- * on 32-bit and ktxfilestreams raises errors if
- * offset values exceed the limits. This choice may
- * need to be revisited if we ever start needing -ve
- * offsets.
- *
- * Should the 2GB file size handling limit on 32-bit
- * platforms become a problem, ktxfilestream will have
- * to be changed to explicitly handle large files by
- * using the 64-bit stream functions.
- */
-#if defined(_MSC_VER) && defined(_WIN64)
-  typedef unsigned __int64 ktx_off_t;
-#else
-  typedef   size_t ktx_off_t;
-#endif
-typedef struct ktxMem ktxMem;
-typedef struct ktxStream ktxStream;
-
-enum streamType { eStreamTypeFile = 1, eStreamTypeMemory = 2 };
-
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream reading function
- */
-typedef KTX_error_code (*ktxStream_read)(ktxStream* str, void* dst,
-                                         const ktx_size_t count);
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream skipping function
- */
-typedef KTX_error_code (*ktxStream_skip)(ktxStream* str,
-                                         const ktx_size_t count);
-
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream reading function
- */
-typedef KTX_error_code (*ktxStream_write)(ktxStream* str, const void *src,
-                                          const ktx_size_t size,
-                                          const ktx_size_t count);
-
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream position query function
- */
-typedef KTX_error_code (*ktxStream_getpos)(ktxStream* str, ktx_off_t* const offset);
-
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream position query function
- */
-typedef KTX_error_code (*ktxStream_setpos)(ktxStream* str, const ktx_off_t offset);
-
-/**
- * @internal
- * @~English
- * @brief type for a pointer to a stream size query function
- */
-typedef KTX_error_code (*ktxStream_getsize)(ktxStream* str, ktx_size_t* const size);
-
-/**
- * @internal
- * @~English
- * @brief Destruct a stream
- */
-typedef void (*ktxStream_destruct)(ktxStream* str);
-
-/**
- * @internal
- * @~English
- * @brief KTX stream class
- */
-struct ktxStream
-{
-    ktxStream_read read;   /*!< @internal pointer to function for reading bytes. */
-    ktxStream_skip skip;   /*!< @internal pointer to function for skipping bytes. */
-    ktxStream_write write; /*!< @internal pointer to function for writing bytes. */
-    ktxStream_getpos getpos; /*!< @internal pointer to function for getting current position in stream. */
-    ktxStream_setpos setpos; /*!< @internal pointer to function for setting current position in stream. */
-    ktxStream_getsize getsize; /*!< @internal pointer to function for querying size. */
-    ktxStream_destruct destruct; /*!< @internal destruct the stream. */
-
-    enum streamType type;
-    union {
-        FILE* file;
-        ktxMem* mem;
-    } data;                /**< @internal pointer to the stream data. */
-    ktx_bool_t closeOnDestruct; /**< @internal Close FILE* or dispose of memory on destruct. */
-};
-
-#endif /* KTXSTREAM_H */
diff --git a/external/KTX-Software-master/lib/swap.c b/external/KTX-Software-master/lib/swap.c
deleted file mode 100644
index bb2579e..0000000
--- a/external/KTX-Software-master/lib/swap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: d858975c68f39438233f78cbf217f70fc5ddd316 $ */
-
-/*
- * Copyright (c) 2010 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "KHR/khrplatform.h"
-
-/*
- * SwapEndian16: Swaps endianness in an array of 16-bit values
- */
-void
-_ktxSwapEndian16(khronos_uint16_t* pData16, int count)
-{
-    int i;
-    for (i = 0; i < count; ++i)
-    {
-        khronos_uint16_t x = *pData16;
-        *pData16++ = (x << 8) | (x >> 8);
-    }
-}
-
-/*
- * SwapEndian32: Swaps endianness in an array of 32-bit values
- */
-void 
-_ktxSwapEndian32(khronos_uint32_t* pData32, int count)
-{
-    int i;
-    for (i = 0; i < count; ++i)
-    {
-        khronos_uint32_t x = *pData32;
-        *pData32++ = (x << 24) | ((x & 0xFF00) << 8) | ((x & 0xFF0000) >> 8) | (x >> 24);
-    }
-}
-
-
diff --git a/external/KTX-Software-master/lib/texture.c b/external/KTX-Software-master/lib/texture.c
deleted file mode 100644
index 0bfa703..0000000
--- a/external/KTX-Software-master/lib/texture.c
+++ /dev/null
@@ -1,1636 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * ©2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file writer.c
- * @~English
- *
- * @brief ktxTexture implementation.
- *
- * @author Mark Callow, www.edgewise-consulting.com
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <stdlib.h>
-
-#include "ktx.h"
-#include "ktxint.h"
-#include "stream.h"
-#include "filestream.h"
-#include "memstream.h"
-#include "gl_format.h"
-#include "uthash.h"
-
-/**
- * @internal
- * @~English
- * @brief Internal ktxTexture structure.
- *
- * This is kept hidden to avoid burdening applications with the definitions
- * of GlFormatSize and ktxStream.
- */
-typedef struct _ktxTextureInt {
-    ktxTexture super;         /*!< Base ktxTexture class. */
-    GlFormatSize formatInfo;  /*!< Info about the image data format. */
-    // The following are needed because image data reading can be delayed.
-    ktx_uint32_t glTypeSize;  /*!< Size of the image data type in bytes. */
-    ktxStream stream;         /*!< Stream connected to KTX source. */
-    ktx_bool_t needSwap;   /*!< If KTX_TRUE, image data needs byte swapping. */
-} ktxTextureInt;
-
-ktx_size_t ktxTexture_GetSize(ktxTexture* This);
-KTX_error_code ktxTexture_LoadImageData(ktxTexture* This,
-                                        ktx_uint8_t* pBuffer,
-                                        ktx_size_t bufSize);
-
-static ktx_size_t ktxTexture_calcDataSize(ktxTexture* This);
-static ktx_uint32_t padRow(ktx_uint32_t* rowBytes);
-
-
-/**
- * @memberof ktxTexture @private
- * @brief Construct (initialize) a ktxTexture.
- *
- * @param[in] This pointer to a ktxTextureInt-sized block of memory to
- *                 initialize.
- * @param[in] createInfo pointer to a ktxTextureCreateInfo struct with
- *                       information describing the texture.
- * @param[in] storageAllocation
- *                       enum indicating whether or not to allocation storage
- *                       for the texture images.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @c glInternalFormat in @p createInfo is not a
- *                              valid OpenGL internal format value.
- * @exception KTX_INVALID_VALUE @c numDimensions in @p createInfo is not 1, 2
- *                              or 3.
- * @exception KTX_INVALID_VALUE One of <tt>base{Width,Height,Depth}</tt> in
- *                              @p createInfo is 0.
- * @exception KTX_INVALID_VALUE @c numFaces in @p createInfo is not 1 or 6.
- * @exception KTX_INVALID_VALUE @c numLevels in @p createInfo is 0.
- * @exception KTX_INVALID_OPERATION
- *                              The <tt>base{Width,Height,Depth}</tt> specified
- *                              in @p createInfo are inconsistent with
- *                              @c numDimensions.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting a 3D array or
- *                              3D cubemap texture.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting a cubemap with
- *                              non-square or non-2D images.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting more mip levels
- *                              than needed for the specified
- *                              <tt>base{Width,Height,Depth}</tt>.
- * @exception KTX_OUT_OF_MEMORY Not enough memory for the texture's images.
- */
-static KTX_error_code
-ktxTextureInt_construct(ktxTextureInt* This, ktxTextureCreateInfo* createInfo,
-                        ktxTextureCreateStorageEnum storageAllocation)
-{
-    ktxTexture* super = (ktxTexture*)This;
-    GLuint typeSize;
-    GLenum glFormat;
-    
-    memset(This, 0, sizeof(*This));
-
-    super->glInternalformat = createInfo->glInternalformat;
-    glGetFormatSize(super->glInternalformat, &This->formatInfo);;
-    glFormat= glGetFormatFromInternalFormat(createInfo->glInternalformat);
-    if (glFormat == GL_INVALID_VALUE)
-        return KTX_INVALID_VALUE;
-    super->isCompressed
-                    = (This->formatInfo.flags & GL_FORMAT_SIZE_COMPRESSED_BIT);
-    if (super->isCompressed) {
-        super->glFormat = 0;
-        super->glBaseInternalformat = glFormat;
-        super->glType = 0;
-        This->glTypeSize = 0;
-    } else {
-        super->glBaseInternalformat = super->glFormat = glFormat;
-        super->glType
-                = glGetTypeFromInternalFormat(createInfo->glInternalformat);
-        if (super->glType == GL_INVALID_VALUE)
-            return KTX_INVALID_VALUE;
-        typeSize = glGetTypeSizeFromType(super->glType);
-        assert(typeSize != GL_INVALID_VALUE);
-    
-        /* Do some sanity checking */
-        if (typeSize != 1 &&
-            typeSize != 2 &&
-            typeSize != 4)
-        {
-            /* Only 8, 16, and 32-bit types are supported for byte-swapping.
-             * See UNPACK_SWAP_BYTES & table 8.4 in the OpenGL 4.4 spec.
-             */
-            return KTX_INVALID_VALUE;
-        }
-        This->glTypeSize = typeSize;
-    }
-    
-    /* Check texture dimensions. KTX files can store 8 types of textures:
-     * 1D, 2D, 3D, cube, and array variants of these.
-     */
-    if (createInfo->numDimensions < 1 || createInfo->numDimensions > 3)
-        return KTX_INVALID_VALUE;
-
-    if (createInfo->baseWidth == 0 || createInfo->baseHeight == 0
-        || createInfo->baseDepth == 0)
-        return KTX_INVALID_VALUE;
-
-    super->baseWidth = createInfo->baseWidth;
-    switch (createInfo->numDimensions) {
-      case 1:
-        if (createInfo->baseHeight > 1 || createInfo->baseDepth > 1)
-            return KTX_INVALID_OPERATION;
-        break;
-            
-      case 2:
-        if (createInfo->baseDepth > 1)
-            return KTX_INVALID_OPERATION;
-        super->baseHeight = createInfo->baseHeight;
-        break;
-            
-      case 3:
-        /* 3D array textures and 3D cubemaps are not supported by either
-         * OpenGL or Vulkan.
-         */
-        if (createInfo->isArray || createInfo->numFaces != 1
-            || createInfo->numLayers != 1)
-            return KTX_INVALID_OPERATION;
-        super->baseDepth = createInfo->baseDepth;
-        super->baseHeight = createInfo->baseHeight;
-        break;
-    }
-    super->numDimensions = createInfo->numDimensions;
-
-    if (createInfo->numLayers == 0)
-        return KTX_INVALID_VALUE;
-    super->numLayers = createInfo->numLayers;
-
-    if (createInfo->numFaces == 6) {
-        if (super->numDimensions != 2) {
-            /* cube map needs 2D faces */
-            return KTX_INVALID_OPERATION;
-        }
-        if (createInfo->baseWidth != createInfo->baseHeight) {
-            /* cube maps require square images */
-            return KTX_INVALID_OPERATION;
-        }
-        super->isCubemap = KTX_TRUE;
-    } else if (createInfo->numFaces != 1) {
-        /* numFaces must be either 1 or 6 */
-        return KTX_INVALID_VALUE;
-    }
-    super->numFaces = createInfo->numFaces;
-
-
-    /* Check number of mipmap levels */
-    if (createInfo->numLevels == 0)
-        return KTX_INVALID_VALUE;
-    super->numLevels = createInfo->numLevels;
-    super->generateMipmaps = createInfo->generateMipmaps;
- 
-    if (createInfo->numLevels > 1) {
-        GLuint max_dim = MAX(MAX(createInfo->baseWidth, createInfo->baseHeight), createInfo->baseDepth);
-        if (max_dim < ((GLuint)1 << (super->numLevels - 1)))
-        {
-            /* Can't have more mip levels than 1 + log2(max(width, height, depth)) */
-            return KTX_INVALID_OPERATION;
-        }
-    }
-    
-    super->numLayers = createInfo->numLayers;
-    super->isArray = createInfo->isArray;
-    
-    ktxHashList_Construct(&super->kvDataHead);
-    if (storageAllocation == KTX_TEXTURE_CREATE_ALLOC_STORAGE) {
-        super->dataSize = ktxTexture_calcDataSize(super);
-        super->pData = malloc(super->dataSize);
-        if (super->pData == NULL)
-            return KTX_OUT_OF_MEMORY;
-    }
-    return KTX_SUCCESS;
-}
-
-/**
- * @memberof ktxTexture @private
- * @brief Construct a ktxTexture from a ktxStream reading from a KTX source.
- *
- * The caller constructs the stream inside the ktxTextureInt before calling
- * this.
- *
- * The create flag KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT should not be set,
- * if the ktxTexture is ultimately to be uploaded to OpenGL or Vulkan. This
- * will minimize memory usage by allowing, for example, loading the images
- * directly from the source into a Vulkan staging buffer.
- *
- * The create flag KTX_TEXTURE_CREATE_RAW_KVDATA_BIT should not be used. It is
- * provided solely to enable implementation of the @e libktx v1 API on top of
- * ktxTexture.
- *
- * @param[in] This pointer to a ktxTextureInt-sized block of memory to
- *                 initialize.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_DATA_ERROR
- *                              Source data is inconsistent with the KTX
- *                              specification.
- * @exception KTX_FILE_READ_ERROR
- *                              An error occurred while reading the source.
- * @exception KTX_FILE_UNEXPECTED_EOF
- *                              Not enough data in the source.
- * @exception KTX_OUT_OF_MEMORY Not enough memory to load either the images or
- *                              the key-value data.
- * @exception KTX_UNKNOWN_FILE_FORMAT
- *                              The source is not in KTX format.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE
- *                              The source describes a texture type not
- *                              supported by OpenGL or Vulkan, e.g, a 3D array.
- */
-static KTX_error_code
-ktxTextureInt_constructFromStream(ktxTextureInt* This,
-                                  ktxTextureCreateFlags createFlags)
-{
-    ktxTexture* super = (ktxTexture*)This;
-    KTX_error_code result;
-    KTX_header header;
-    KTX_supplemental_info suppInfo;
-    ktxStream* stream;
-    ktx_off_t pos;
-    ktx_size_t size;
-    
-    assert(This != NULL);
-    assert(This->stream.data.mem != NULL);
-    assert(This->stream.type == eStreamTypeFile
-           || This->stream.type == eStreamTypeMemory);
-    stream = &This->stream;
-  
-    // Read header.
-    result = stream->read(stream, &header, KTX_HEADER_SIZE);
-    if (result != KTX_SUCCESS)
-        return result;
-    
-    result = _ktxCheckHeader(&header, &suppInfo);
-    if (result != KTX_SUCCESS)
-        return result;
-    
-    /*
-     * Initialize from header info.
-     */
-    super->glFormat = header.glFormat;
-    super->glInternalformat = header.glInternalformat;
-    super->glType = header.glType;
-    glGetFormatSize(super->glInternalformat, &This->formatInfo);
-    super->glBaseInternalformat = header.glBaseInternalformat;
-    super->numDimensions = suppInfo.textureDimension;
-    super->baseWidth = header.pixelWidth;
-    assert(suppInfo.textureDimension > 0 && suppInfo.textureDimension < 4);
-    switch (suppInfo.textureDimension) {
-      case 1:
-        super->baseHeight = super->baseDepth = 1;
-        break;
-      case 2:
-        super->baseHeight = header.pixelHeight;
-        super->baseDepth = 1;
-        break;
-      case 3:
-        super->baseHeight = header.pixelHeight;
-        super->baseDepth = header.pixelDepth;
-        break;
-    }
-    if (header.numberOfArrayElements > 0) {
-        super->numLayers = header.numberOfArrayElements;
-        super->isArray = KTX_TRUE;
-    } else {
-        super->numLayers = 1;
-        super->isArray = KTX_FALSE;
-    }
-    super->numFaces = header.numberOfFaces;
-    if (header.numberOfFaces == 6)
-        super->isCubemap = KTX_TRUE;
-    else
-        super->isCubemap = KTX_FALSE;
-    super->numLevels = header.numberOfMipmapLevels;
-    super->isCompressed = suppInfo.compressed;
-    super->generateMipmaps = suppInfo.generateMipmaps;
-    if (header.endianness == KTX_ENDIAN_REF_REV)
-        This->needSwap = KTX_TRUE;
-    This->glTypeSize = header.glTypeSize;
-
-    /*
-     * Make an empty hash list.
-     */
-    ktxHashList_Construct(&super->kvDataHead);
-    /*
-     * Load KVData.
-     */
-    if (header.bytesOfKeyValueData > 0) {
-        if (!(createFlags & KTX_TEXTURE_CREATE_SKIP_KVDATA_BIT)) {
-            ktx_uint32_t kvdLen = header.bytesOfKeyValueData;
-            ktx_uint8_t* pKvd;
-
-            pKvd = malloc(kvdLen);
-            if (pKvd == NULL)
-                return KTX_OUT_OF_MEMORY;
-            
-            result = stream->read(stream, pKvd, kvdLen);
-            if (result != KTX_SUCCESS)
-                return result;
-
-            if (This->needSwap) {
-                /* Swap the counts inside the key & value data. */
-                ktx_uint8_t* src = pKvd;
-                ktx_uint8_t* end = pKvd + kvdLen;
-                while (src < end) {
-                    ktx_uint32_t keyAndValueByteSize = *((ktx_uint32_t*)src);
-                    _ktxSwapEndian32(&keyAndValueByteSize, 1);
-                    src += _KTX_PAD4(keyAndValueByteSize);
-                }
-            }
-            
-            if (!(createFlags & KTX_TEXTURE_CREATE_RAW_KVDATA_BIT)) {
-                result = ktxHashList_Deserialize(&super->kvDataHead,
-                                                 kvdLen, pKvd);
-                if (result != KTX_SUCCESS) {
-                    free(pKvd);
-                    return result;
-                }
-            } else {
-                super->kvDataLen = kvdLen;
-                super->kvData = pKvd;
-            }
-        } else {
-            stream->skip(stream, header.bytesOfKeyValueData);
-        }
-    }
-    
-    /*
-     * Get the size of the image data.
-     */
-    result = stream->getsize(stream, &size);
-    if (result == KTX_SUCCESS) {
-        result = stream->getpos(stream, &pos);
-        if (result == KTX_SUCCESS)
-            super->dataSize = size - pos
-                                 /* Remove space for faceLodSize fields */
-                                 - super->numLevels * sizeof(ktx_uint32_t);
-    }
-
-    /*
-     * Load the images, if requested.
-     */
-    if (result == KTX_SUCCESS
-        && (createFlags & KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT)) {
-        result = ktxTexture_LoadImageData((ktxTexture*)super, NULL, 0);
-    }
-    return result;
-}
-
-/**
- * @memberof ktxTexture @private
- * @brief Construct a ktxTexture from a stdio stream reading from a KTX source.
- *
- * See ktxTextureInt_constructFromStream for details.
- *
- * @note Do not close the stdio stream until you are finished with the texture
- *       object.
- *
- * @param[in] This pointer to a ktxTextureInt-sized block of memory to
- *                 initialize.
- * @param[in] stdioStream a stdio FILE pointer opened on the source.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE Either @p stdiostream or @p This is null.
- *
- * For other exceptions, see ktxTexture_constructFromStream().
- */
-static KTX_error_code
-ktxTextureInt_constructFromStdioStream(ktxTextureInt* This, FILE* stdioStream,
-                                       ktxTextureCreateFlags createFlags)
-{
-    KTX_error_code result;
-
-    if (stdioStream == NULL || This == NULL)
-        return KTX_INVALID_VALUE;
-    
-    memset(This, 0, sizeof(*This));
-    
-    result = ktxFileStream_construct(&This->stream, stdioStream, KTX_FALSE);
-    if (result == KTX_SUCCESS)
-        result = ktxTextureInt_constructFromStream(This, createFlags);
-    return result;
-}
-
-/**
- * @memberof ktxTexture @private
- * @brief Construct a ktxTexture from a named KTX file.
- *
- * See ktxTextureInt_constructFromStream for details.
- *
- * @param[in] This pointer to a ktxTextureInt-sized block of memory to
- *                 initialize.
- * @param[in] filename    pointer to a char array containing the file name.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_OPEN_FAILED The file could not be opened.
- * @exception KTX_INVALID_VALUE @p filename is @c NULL.
- *
- * For other exceptions, see ktxTexture_constructFromStream().
- */
-static KTX_error_code
-ktxTextureInt_constructFromNamedFile(ktxTextureInt* This,
-                                     const char* const filename,
-                                     ktxTextureCreateFlags createFlags)
-{
-    KTX_error_code result;
-    FILE* file;
-    
-    if (This == NULL || filename == NULL)
-        return KTX_INVALID_VALUE;
-    
-    memset(This, 0, sizeof(*This));
-
-    file = fopen(filename, "rb");
-    if (!file)
-       return KTX_FILE_OPEN_FAILED;
-    
-    result = ktxFileStream_construct(&This->stream, file, KTX_TRUE);
-    if (result == KTX_SUCCESS)
-        result = ktxTextureInt_constructFromStream(This, createFlags);
-    
-    return result;
-}
-
-/**
- * @memberof ktxTexture @private
- * @brief Construct a ktxTexture from KTX-formatted data in memory.
- *
- * See ktxTextureInt_constructFromStream for details.
- *
- * @param[in] This  pointer to a ktxTextureInt-sized block of memory to
- *                  initialize.
- * @param[in] bytes pointer to the memory containing the serialized KTX data.
- * @param[in] size  length of the KTX data in bytes.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE Either @p bytes is NULL or @p size is 0.
- *
- * For other exceptions, see ktxTexture_constructFromStream().
- */
-static KTX_error_code
-ktxTextureInt_constructFromMemory(ktxTextureInt* This,
-                                  const ktx_uint8_t* bytes, ktx_size_t size,
-                                  ktxTextureCreateFlags createFlags)
-{
-    KTX_error_code result;
-    
-    if (bytes == NULL || size == 0)
-        return KTX_INVALID_VALUE;
-    
-    memset(This, 0, sizeof(*This));
-    
-    result = ktxMemStream_construct_ro(&This->stream, bytes, size);
-    if (result == KTX_SUCCESS)
-        result = ktxTextureInt_constructFromStream(This, createFlags);
-    
-    return result;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Free the memory associated with the texture contents
- *
- * @param[in] This pointer to the ktxTextureInt whose texture contents are
- *                 to be freed.
- */
-void
-ktxTextureInt_destruct(ktxTextureInt* This)
-{
-    ktxTexture* super = (ktxTexture*)This;
-    if (This->stream.data.file != NULL)
-        This->stream.destruct(&This->stream);
-    if (super->kvDataHead != NULL)
-        ktxHashList_Destruct(&super->kvDataHead);
-    if (super->kvData != NULL)
-        free(super->kvData);
-    if (super->pData != NULL)
-        free(super->pData);
-}
-
-/**
- * @memberof ktxTexture
- * @ingroup writer
- * @brief Create a new empty ktxTexture.
- *
- * The address of the newly created ktxTexture is written to the location
- * pointed at by @p newTex.
- *
- * @param[in] createInfo pointer to a ktxTextureCreateInfo struct with
- *                       information describing the texture.
- * @param[in] storageAllocation
- *                       enum indicating whether or not to allocate storage
- *                       for the texture images.
- * @param[in,out] newTex pointer to a location in which store the address of
- *                       the newly created texture.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @c glInternalFormat in @p createInfo is not a
- *                              valid OpenGL internal format value.
- * @exception KTX_INVALID_VALUE @c numDimensions in @p createInfo is not 1, 2
- *                              or 3.
- * @exception KTX_INVALID_VALUE One of <tt>base{Width,Height,Depth}</tt> in
- *                              @p createInfo is 0.
- * @exception KTX_INVALID_VALUE @c numFaces in @p createInfo is not 1 or 6.
- * @exception KTX_INVALID_VALUE @c numLevels in @p createInfo is 0.
- * @exception KTX_INVALID_OPERATION
- *                              The <tt>base{Width,Height,Depth}</tt> specified
- *                              in @p createInfo are inconsistent with
- *                              @c numDimensions.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting a 3D array or
- *                              3D cubemap texture.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting a cubemap with
- *                              non-square or non-2D images.
- * @exception KTX_INVALID_OPERATION
- *                              @p createInfo is requesting more mip levels
- *                              than needed for the specified
- *                              <tt>base{Width,Height,Depth}</tt>.
- * @exception KTX_OUT_OF_MEMORY Not enough memory for the texture's images.
- */
-KTX_error_code
-ktxTexture_Create(ktxTextureCreateInfo* createInfo,
-                  ktxTextureCreateStorageEnum storageAllocation,
-                  ktxTexture** newTex)
-{
-    KTX_error_code result;
-    
-    if (newTex == NULL)
-        return KTX_INVALID_VALUE;
-    
-    ktxTextureInt* tex = (ktxTextureInt*)malloc(sizeof(ktxTextureInt));
-    if (tex == NULL)
-        return KTX_OUT_OF_MEMORY;
-    
-    result = ktxTextureInt_construct(tex, createInfo, storageAllocation);
-    if (result == KTX_SUCCESS)
-        *newTex = (ktxTexture*)tex;
-    else {
-        free(tex);
-        *newTex = NULL;
-    }
-    return result;
-}
-
-/**
- * @defgroup reader Reader
- * @brief Read KTX-formatted data.
- * @{
- */
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Create a ktxTexture from a stdio stream reading from a KTX source.
- *
- * The address of a newly created ktxTexture reflecting the contents of the
- * stdio stream is written to the location pointed at by @p newTex.
- *
- * The create flag KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT should not be set,
- * if the ktxTexture is ultimately to be uploaded to OpenGL or Vulkan. This
- * will minimize memory usage by allowing, for example, loading the images
- * directly from the source into a Vulkan staging buffer.
- *
- * The create flag KTX_TEXTURE_CREATE_RAW_KVDATA_BIT should not be used. It is
- * provided solely to enable implementation of the @e libktx v1 API on top of
- * ktxTexture.
- *
- * @param[in] stdioStream stdio FILE pointer created from the desired file.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- * @param[in,out] newTex  pointer to a location in which store the address of
- *                        the newly created texture.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p newTex is @c NULL.
- * @exception KTX_FILE_DATA_ERROR
- *                              Source data is inconsistent with the KTX
- *                              specification.
- * @exception KTX_FILE_READ_ERROR
- *                              An error occurred while reading the source.
- * @exception KTX_FILE_UNEXPECTED_EOF
- *                              Not enough data in the source.
- * @exception KTX_OUT_OF_MEMORY Not enough memory to create the texture object,
- *                              load the images or load the key-value data.
- * @exception KTX_UNKNOWN_FILE_FORMAT
- *                              The source is not in KTX format.
- * @exception KTX_UNSUPPORTED_TEXTURE_TYPE
- *                              The source describes a texture type not
- *                              supported by OpenGL or Vulkan, e.g, a 3D array.
- */
-KTX_error_code
-ktxTexture_CreateFromStdioStream(FILE* stdioStream,
-                                 ktxTextureCreateFlags createFlags,
-                                 ktxTexture** newTex)
-{
-    KTX_error_code result;
-    if (newTex == NULL)
-        return KTX_INVALID_VALUE;
-    
-    ktxTextureInt* tex = (ktxTextureInt*)malloc(sizeof(ktxTextureInt));
-    if (tex == NULL)
-        return KTX_OUT_OF_MEMORY;
-    
-    result = ktxTextureInt_constructFromStdioStream(tex, stdioStream,
-                                                    createFlags);
-    if (result == KTX_SUCCESS)
-        *newTex = (ktxTexture*)tex;
-    else {
-        free(tex);
-        *newTex = NULL;
-    }
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Create a ktxTexture from a named KTX file.
- *
- * The address of a newly created ktxTexture reflecting the contents of the
- * file is written to the location pointed at by @p newTex.
- *
- * The create flag KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT should not be set,
- * if the ktxTexture is ultimately to be uploaded to OpenGL or Vulkan. This
- * will minimize memory usage by allowing, for example, loading the images
- * directly from the source into a Vulkan staging buffer.
- *
- * The create flag KTX_TEXTURE_CREATE_RAW_KVDATA_BIT should not be used. It is
- * provided solely to enable implementation of the @e libktx v1 API on top of
- * ktxTexture.
- *
- * @param[in] filename    pointer to a char array containing the file name.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- * @param[in,out] newTex  pointer to a location in which store the address of
- *                        the newly created texture.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
-
- * @exception KTX_FILE_OPEN_FAILED The file could not be opened.
- * @exception KTX_INVALID_VALUE @p filename is @c NULL.
- *
- * For other exceptions, see ktxTexture_CreateFromStdioStream().
- */
-KTX_error_code
-ktxTexture_CreateFromNamedFile(const char* const filename,
-                               ktxTextureCreateFlags createFlags,
-                               ktxTexture** newTex)
-{
-    KTX_error_code result;
-
-    if (newTex == NULL)
-        return KTX_INVALID_VALUE;
-
-    ktxTextureInt* tex = (ktxTextureInt*)malloc(sizeof(ktxTextureInt));
-    if (tex == NULL)
-        return KTX_OUT_OF_MEMORY;
-    
-    result = ktxTextureInt_constructFromNamedFile(tex, filename, createFlags);
-    if (result == KTX_SUCCESS)
-        *newTex = (ktxTexture*)tex;
-    else {
-        free(tex);
-        *newTex = NULL;
-    }
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Create a ktxTexture from KTX-formatted data in memory.
- *
- * The address of a newly created ktxTexture reflecting the contents of the
- * serialized KTX data is written to the location pointed at by @p newTex.
- *
- * The create flag KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT should not be set,
- * if the ktxTexture is ultimately to be uploaded to OpenGL or Vulkan. This
- * will minimize memory usage by allowing, for example, loading the images
- * directly from the source into a Vulkan staging buffer.
- *
- * The create flag KTX_TEXTURE_CREATE_RAW_KVDATA_BIT should not be used. It is
- * provided solely to enable implementation of the @e libktx v1 API on top of
- * ktxTexture.
- *
- * @param[in] bytes pointer to the memory containing the serialized KTX data.
- * @param[in] size  length of the KTX data in bytes.
- * @param[in] createFlags bitmask requesting specific actions during creation.
- * @param[in,out] newTex  pointer to a location in which store the address of
- *                        the newly created texture.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE Either @p bytes is NULL or @p size is 0.
- *
- * For other exceptions, see ktxTexture_CreateFromStdioStream().
- */
-KTX_error_code
-ktxTexture_CreateFromMemory(const ktx_uint8_t* bytes, ktx_size_t size,
-                            ktxTextureCreateFlags createFlags,
-                            ktxTexture** newTex)
-{
-    KTX_error_code result;
-    if (newTex == NULL)
-        return KTX_INVALID_VALUE;
-    
-    ktxTextureInt* tex = (ktxTextureInt*)malloc(sizeof(ktxTextureInt));
-    if (tex == NULL)
-        return KTX_OUT_OF_MEMORY;
-    
-    result = ktxTextureInt_constructFromMemory(tex, bytes, size,
-                                               createFlags);
-    if (result == KTX_SUCCESS)
-        *newTex = (ktxTexture*)tex;
-    else {
-        free(tex);
-        *newTex = NULL;
-    }
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Destroy a ktxTexture object.
- *
- * This frees the memory associated with the texture contents and the memory
- * of the ktxTexture object. This does @e not delete any OpenGL or Vulkan
- * texture objects created by ktxTexture_GLUpload or ktxTexture_VkUpload.
- *
- * @param[in] This pointer to the ktxTexture object to destroy
- */
-void
-ktxTexture_Destroy(ktxTexture* This)
-{
-    ktxTextureInt_destruct((ktxTextureInt*)This);
-    free(This);
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Return a pointer to the texture image data.
- *
- * @param[in] This pointer to the ktxTexture object of interest.
- */
-ktx_uint8_t*
-ktxTexture_GetData(ktxTexture* This)
-{
-    return This->pData;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Return the total size of the texture image data in bytes.
- *
- * @param[in] This pointer to the ktxTexture object of interest.
- */
-ktx_size_t
-ktxTexture_GetSize(ktxTexture* This)
-{
-    assert(This != NULL);
-    return This->dataSize;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Return the size in bytes of an elements of a texture's
- *        images.
- *
- * For uncompressed textures an element is one texel. For compressed
- * textures it is one block.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- */
-ktx_uint32_t
-ktxTexture_GetElementSize(ktxTexture* This)
-{
-    GlFormatSize* formatInfo;
-
-    assert (This != NULL);
-
-    formatInfo = &((ktxTextureInt*)This)->formatInfo;
-    return (formatInfo->blockSizeInBits / 8);
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Calculate & return the size in bytes of an image at the specified
- *        mip level.
- *
- * For arrays, this is the size of layer, for cubemaps, the size of a face
- * and for 3D textures, the size of a depth slice.
- *
- * The size reflects the padding of each row to KTX_GL_UNPACK_ALIGNMENT.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- * @param[in]     level    level of interest. *
- */
-ktx_size_t
-ktxTexture_GetImageSize(ktxTexture* This, ktx_uint32_t level)
-{
-    GlFormatSize* formatInfo;
-    struct blockCount {
-        ktx_uint32_t x, y, z;
-    } blockCount;
-    ktx_uint32_t blockSizeInBytes;
-    ktx_uint32_t rowBytes;
-
-    assert (This != NULL);
-
-    formatInfo = &((ktxTextureInt*)This)->formatInfo;
-    blockCount.x = MAX(1, (This->baseWidth / formatInfo->blockWidth)  >> level);
-    blockCount.y = MAX(1, (This->baseHeight / formatInfo->blockHeight)  >> level);
-    blockSizeInBytes = formatInfo->blockSizeInBits / 8;
-
-    if (formatInfo->flags & GL_FORMAT_SIZE_COMPRESSED_BIT) {
-        assert(This->isCompressed);
-        return blockCount.x * blockCount.y * blockSizeInBytes;
-    } else {
-        assert(formatInfo->blockWidth == formatInfo->blockHeight == formatInfo->blockDepth == 1);
-        rowBytes = blockCount.x * blockSizeInBytes;
-        (void)padRow(&rowBytes);
-        return rowBytes * blockCount.y;
-    }
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Load all the image data from the ktxTexture's source.
- *
- * The data is loaded into the provided buffer or to an internally allocated
- * buffer, if @p pBuffer is @c NULL.
- *
- * @param[in] This pointer to the ktxTexture object of interest.
- * @param[in] pBuffer pointer to the buffer in which to load the image data.
- * @param[in] bufSize size of the buffer pointed at by @p pBuffer.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This is NULL.
- * @exception KTX_INVALID_VALUE @p bufSize is less than the the image data size.
- * @exception KTX_INVALID_OPERATION
- *                              The data has already been loaded or the
- *                              ktxTexture was not created from a KTX source.
- * @exception KTX_OUT_OF_MEMORY Insufficient memory for the image data.
- */
-KTX_error_code
-ktxTexture_LoadImageData(ktxTexture* This,
-                         ktx_uint8_t* pBuffer, ktx_size_t bufSize)
-{
-    ktxTextureInt*  subthis = (ktxTextureInt*)This;
-    ktx_uint32_t    miplevel;
-    ktx_uint8_t*    pDest;
-    KTX_error_code  result = KTX_SUCCESS;
-
-    if (This == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (subthis->stream.data.file == NULL)
-        // This Texture not created from a stream or images already loaded;
-        return KTX_INVALID_OPERATION;
-
-    if (pBuffer == NULL) {
-        This->pData = malloc(This->dataSize);
-        if (This->pData == NULL)
-            return KTX_OUT_OF_MEMORY;
-        pDest = This->pData;
-    } else if (bufSize < This->dataSize) {
-        return KTX_INVALID_VALUE;
-    } else {
-        pDest = pBuffer;
-    }
-
-    // Need to loop through for correct byte swapping
-    for (miplevel = 0; miplevel < This->numLevels; ++miplevel)
-    {
-        ktx_uint32_t faceLodSize;
-        ktx_uint32_t faceLodSizePadded;
-        ktx_uint32_t face;
-        ktx_uint32_t innerIterations;
-
-        result = subthis->stream.read(&subthis->stream, &faceLodSize,
-                                      sizeof(ktx_uint32_t));
-        if (result != KTX_SUCCESS) {
-            goto cleanup;
-        }
-        if (subthis->needSwap) {
-            _ktxSwapEndian32(&faceLodSize, 1);
-        }
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        faceLodSizePadded = _KTX_PAD4(faceLodSize);
-#else
-        faceLodSizePadded = faceLodSize;
-#endif
-        
-        if (This->isCubemap && !This->isArray)
-            innerIterations = This->numFaces;
-        else
-            innerIterations = 1;
-        for (face = 0; face < innerIterations; ++face)
-        {
-            result = subthis->stream.read(&subthis->stream, pDest,
-                                          faceLodSizePadded);
-            if (result != KTX_SUCCESS) {
-                goto cleanup;
-            }
-            
-            /* Perform endianness conversion on texture data */
-            if (subthis->needSwap) {
-                if (subthis->glTypeSize == 2)
-                    _ktxSwapEndian16((ktx_uint16_t*)pDest, faceLodSize / 2);
-                else if (subthis->glTypeSize == 4)
-                    _ktxSwapEndian32((ktx_uint32_t*)pDest, faceLodSize / 4);
-            }
-            
-            pDest += faceLodSizePadded;
-        }
-    }
-
-cleanup:
-    // No further need for This->
-    subthis->stream.destruct(&subthis->stream);
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Iterate over the images in a ktxTexture object.
- *
- * Blocks of image data are passed to an application-supplied callback
- * function. This is not a strict per-image iteration. Rather it reflects how
- * OpenGL needs the images. For most textures the block of data includes all
- * images of a mip level which implies all layers of an array. However, for
- * non-array cube map textures the block is a single face of the mip level,
- * i.e the callback is called once for each face.
- *
- * This function works even if @p This->pData == 0 so it can be used to
- * obtain offsets and sizes for each level by callers who have loaded the data
- * externally.
- *
- * @param[in]     This      pointer to the ktxTexture object of interest.
- * @param[in,out] iterCb    the address of a callback function which is called
- *                          with the data for each image block.
- * @param[in,out] userdata  the address of application-specific data which is
- *                          passed to the callback along with the image data.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error. The
- *          following are returned directly by this function. @p iterCb may
- *          return these for other causes or may return additional errors.
- *
- * @exception KTX_FILE_DATA_ERROR   Mip level sizes are increasing not
- *                                  decreasing
- * @exception KTX_INVALID_VALUE     @p This is @c NULL or @p iterCb is @c NULL.
- *
- */
-KTX_error_code
-ktxTexture_IterateLevelFaces(ktxTexture* This, PFNKTXITERCB iterCb,
-                             void* userdata)
-{
-    ktx_uint32_t    miplevel;
-    KTX_error_code  result = KTX_SUCCESS;
-    
-    if (This == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (iterCb == NULL)
-        return KTX_INVALID_VALUE;
-    
-    for (miplevel = 0; miplevel < This->numLevels; ++miplevel)
-    {
-        ktx_uint32_t faceLodSize;
-        ktx_uint32_t face;
-        ktx_uint32_t innerIterations;
-        GLsizei      width, height, depth;
-        
-        /* Array textures have the same number of layers at each mip level. */
-        width = MAX(1, This->baseWidth  >> miplevel);
-        height = MAX(1, This->baseHeight >> miplevel);
-        depth = MAX(1, This->baseDepth  >> miplevel);
-
-        faceLodSize = (ktx_uint32_t)ktxTexture_faceLodSize(This, miplevel);
-
-        /* All array layers are passed in a group because that is how
-         * GL & Vulkan need them. Hence no
-         *    for (layer = 0; layer < This->numLayers)
-         */
-        if (This->isCubemap && !This->isArray)
-            innerIterations = This->numFaces;
-        else
-            innerIterations = 1;
-        for (face = 0; face < innerIterations; ++face)
-        {
-            /* And all z_slices are also passed as a group hence no
-             *    for (slice = 0; slice < This->depth)
-             */
-            ktx_size_t offset;
-
-            ktxTexture_GetImageOffset(This, miplevel, 0, face, &offset);
-            result = iterCb(miplevel, face,
-                             width, height, depth,
-                             faceLodSize, This->pData + offset, userdata);
-            
-            if (result != KTX_SUCCESS)
-                break;
-        }
-    }
-    
-    return result;
-}
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Iterate over the images in a ktxTexture object while loading the
- *        image data.
- *
- * This operates similarly to ktxTexture_IterateLevelFaces() except that it
- * loads the images from the ktxTexture's source to a temporary buffer
- * while iterating. The callback function must copy the image data if it
- * wishes to preserve it as the temporary buffer is reused for each level and
- * is freed when this function exits.
- *
- * This function is helpful for reducing memory usage when uploading the data
- * to a graphics API.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- * @param[in,out] iterCb   the address of a callback function which is called
- *                         with the data for each image.
- * @param[in,out] userdata the address of application-specific data which is
- *                         passed to the callback along with the image data.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error. The
- *          following are returned directly by this function. @p iterCb may
- *          return these for other causes or may return additional errors.
- *
- * @exception KTX_FILE_DATA_ERROR   mip level sizes are increasing not
- *                                  decreasing
- * @exception KTX_INVALID_OPERATION the ktxTexture was not created from a
- *                                  stream, i.e there is no data to load, or
- *                                  this ktxTexture's images have already
- *                                  been loaded.
- * @exception KTX_INVALID_VALUE     @p This is @c NULL or @p iterCb is @c NULL.
- * @exception KTX_OUT_OF_MEMORY     not enough memory to allocate a block to
- *                                  hold the base level image.
- */
-KTX_error_code
-ktxTexture_IterateLoadLevelFaces(ktxTexture* This, PFNKTXITERCB iterCb,
-                                 void* userdata)
-{
-    ktxTextureInt*  subthis = (ktxTextureInt*)This;
-    ktx_uint32_t    dataSize = 0;
-    ktx_uint32_t    miplevel;
-    KTX_error_code  result = KTX_SUCCESS;
-    void*           data = NULL;
-    
-    if (This == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (iterCb == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (subthis->stream.data.file == NULL)
-        // This Texture not created from a stream or images are already loaded.
-        return KTX_INVALID_OPERATION;
-    
-    for (miplevel = 0; miplevel < This->numLevels; ++miplevel)
-    {
-        ktx_uint32_t faceLodSize;
-        ktx_uint32_t faceLodSizePadded;
-        ktx_uint32_t face;
-        ktx_uint32_t innerIterations;
-        GLsizei      width, height, depth;
-        
-        /* Array textures have the same number of layers at each mip level. */
-        width = MAX(1, This->baseWidth  >> miplevel);
-        height = MAX(1, This->baseHeight >> miplevel);
-        depth = MAX(1, This->baseDepth  >> miplevel);
-        
-        result = subthis->stream.read(&subthis->stream, &faceLodSize,
-                                      sizeof(ktx_uint32_t));
-        if (result != KTX_SUCCESS) {
-            goto cleanup;
-        }
-        if (subthis->needSwap) {
-            _ktxSwapEndian32(&faceLodSize, 1);
-        }
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        faceLodSizePadded = _KTX_PAD4(faceLodSize);
-#else
-        faceLodSizePadded = faceLodSize;
-#endif
-        if (!data) {
-            /* allocate memory sufficient for the base miplevel */
-            data = malloc(faceLodSizePadded);
-            if (!data) {
-                result = KTX_OUT_OF_MEMORY;
-                goto cleanup;
-            }
-            dataSize = faceLodSizePadded;
-        }
-        else if (dataSize < faceLodSizePadded) {
-            /* subsequent miplevels cannot be larger than the base miplevel */
-            result = KTX_FILE_DATA_ERROR;
-            goto cleanup;
-        }
-        
-        /* All array layers are passed in a group because that is how
-         * GL & Vulkan need them. Hence no
-         *    for (layer = 0; layer < This->numLayers)
-         */
-        if (This->isCubemap && !This->isArray)
-            innerIterations = This->numFaces;
-        else
-            innerIterations = 1;
-        for (face = 0; face < innerIterations; ++face)
-        {
-            /* And all z_slices are also passed as a group hence no
-             *    for (z_slice = 0; z_slice < This->depth)
-             */
-            result = subthis->stream.read(&subthis->stream, data,
-                                          faceLodSizePadded);
-            if (result != KTX_SUCCESS) {
-                goto cleanup;
-            }
-            
-            /* Perform endianness conversion on texture data */
-            if (subthis->needSwap) {
-                if (subthis->glTypeSize == 2)
-                    _ktxSwapEndian16((ktx_uint16_t*)data, faceLodSize / 2);
-                else if (subthis->glTypeSize == 4)
-                    _ktxSwapEndian32((ktx_uint32_t*)data, faceLodSize / 4);
-            }
-            
-            result = iterCb(miplevel, face,
-                             width, height, depth,
-                             faceLodSize, data, userdata);
-            
-            if (result != KTX_SUCCESS)
-                goto cleanup;
-        }
-    }
-    
-cleanup:
-    free(data);
-    // No further need for this.
-    subthis->stream.destruct(&subthis->stream);
-
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Iterate over the mip levels in a ktxTexture object.
- *
- * This is almost identical to ktxTexture_IterateLevelFaces(). The difference is
- * that the blocks of image data for non-array cube maps include all faces of
- * a mip level.
- *
- * This function works even if @p This->pData == 0 so it can be used to
- * obtain offsets and sizes for each level by callers who have loaded the data
- * externally.
- *
- * @param[in]     This     handle of the ktxTexture opened on the data.
- * @param[in,out] iterCb   the address of a callback function which is called
- *                         with the data for each image block.
- * @param[in,out] userdata the address of application-specific data which is
- *                         passed to the callback along with the image data.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error. The
- *          following are returned directly by this function. @p iterCb may
- *          return these for other causes or may return additional errors.
- *
- * @exception KTX_FILE_DATA_ERROR   Mip level sizes are increasing not
- *                                  decreasing
- * @exception KTX_INVALID_VALUE     @p This is @c NULL or @p iterCb is @c NULL.
- *
- */
-KTX_error_code
-ktxTexture_IterateLevels(ktxTexture* This, PFNKTXITERCB iterCb, void* userdata)
-{
-    ktx_uint32_t    miplevel;
-    KTX_error_code  result = KTX_SUCCESS;
-    
-    if (This == NULL)
-        return KTX_INVALID_VALUE;
-    
-    if (iterCb == NULL)
-        return KTX_INVALID_VALUE;
-    
-    for (miplevel = 0; miplevel < This->numLevels; ++miplevel)
-    {
-        GLsizei width, height, depth;
-        ktx_uint32_t levelSize;
-        ktx_size_t offset;
-        
-        /* Array textures have the same number of layers at each mip level. */
-        width = MAX(1, This->baseWidth  >> miplevel);
-        height = MAX(1, This->baseHeight >> miplevel);
-        depth = MAX(1, This->baseDepth  >> miplevel);
-
-        levelSize = (ktx_uint32_t)ktxTexture_levelSize(This, miplevel);
-
-        /* All array layers are passed in a group because that is how
-         * GL & Vulkan need them. Hence no
-         *    for (layer = 0; layer < This->numLayers)
-         */
-        ktxTexture_GetImageOffset(This, miplevel, 0, 0, &offset);
-        result = iterCb(miplevel, 0, width, height, depth,
-                         levelSize, This->pData + offset, userdata);
-        if (result != KTX_SUCCESS)
-            break;
-    }
-    
-    return result;
-}
-
-/**
- * @internal
- * @brief  Calculate and apply the padding needed to comply with
- *         KTX_GL_UNPACK_ALIGNMENT.
- *
- * For uncompressed textures, KTX format specifies KTX_GL_UNPACK_ALIGNMENT = 4.
- *
- * @param[in,out] rowBytes    pointer to variable containing the packed no. of
- *                            bytes in a row. The no. of bytes after padding
- *                            is written into this location.
- * @return the no. of bytes of padding.
- */
-static ktx_uint32_t
-padRow(ktx_uint32_t* rowBytes)
-{
-    ktx_uint32_t rowPadding;
-
-    assert (rowBytes != NULL);
-
-    rowPadding = _KTX_PAD_UNPACK_ALIGN_LEN(*rowBytes);
-    *rowBytes += rowPadding;
-    return rowPadding;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Calculate the size of an array layer at the specified mip level.
- *
- * The size of a layer is the size of an image * either the number of faces
- * or the number of depth slices. This is the size of a layer as needed to
- * find the offset within the array of images of a level and layer so the size
- * reflects any @c cubePadding.
- *
- * @param[in]  This     pointer to the ktxTexture object of interest.
- * @param[in] level     level whose layer size to return.
- *
- * @return the layer size in bytes.
- */
-static inline ktx_size_t
-ktxTexture_layerSize(ktxTexture* This, ktx_uint32_t level)
-{
-    /*
-     * As there are no 3D cubemaps, the image's z block count will always be
-     * 1 for cubemaps and numFaces will always be 1 for 3D textures so the
-     * multiply is safe. 3D cubemaps, if they existed, would require
-     * imageSize * (blockCount.z + This->numFaces);
-     */
-    GlFormatSize* formatInfo;
-    ktx_uint32_t blockCountZ;
-    ktx_size_t imageSize, layerSize;
-
-    assert (This != NULL);
-    
-    formatInfo = &((ktxTextureInt*)This)->formatInfo;
-    blockCountZ = MAX(1, (This->baseDepth / formatInfo->blockDepth)  >> level);
-    imageSize = ktxTexture_GetImageSize(This, level);
-    layerSize = imageSize * blockCountZ;
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-    if (This->isCubemap && !This->isArray) {
-        /* cubePadding. NOTE: this adds padding after the last face too. */
-        _KTX_PAD4(layerSize);
-    }
-#endif
-    return layerSize * This->numFaces;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Calculate the size of the specified mip level.
- *
- * The size of a level is the size of a layer * the number of layers.
- *
- * @param[in]  This     pointer to the ktxTexture object of interest.
- * @param[in] level     level whose layer size to return.
- *
- * @return the level size in bytes.
- */
-ktx_size_t
-ktxTexture_levelSize(ktxTexture* This, ktx_uint32_t level)
-{
-    assert (This != NULL);
-    return ktxTexture_layerSize(This, level) * This->numLayers;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Calculate the faceLodSize of the specified mip level.
- *
- * The faceLodSize of a level for most textures is the size of a level. For
- * non-array cube map textures is the size of a face. This is the size that
- * must be provided to OpenGL when uploading textures. Faces get uploaded 1
- * at a time while all layers of an array or all slices of a 3D texture are
- * uploaded together.
- *
- * @param[in]  This     pointer to the ktxTexture object of interest.
- * @param[in] level     level whose layer size to return.
- *
- * @return the faceLodSize size in bytes.
- */
-ktx_size_t
-ktxTexture_faceLodSize(ktxTexture* This, ktx_uint32_t level)
-{
-    /*
-     * For non-array cubemaps this is the size of a face. For everything
-     * else it is the size of the level.
-     */
-    if (This->isCubemap && !This->isArray)
-        return ktxTexture_GetImageSize(This, level);
-    else
-        return ktxTexture_levelSize(This, level);
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Calculate the size of the image data for the specified number
- *        of levels.
- *
- * The data size is the sum of the sizes of each level up to the number
- * specified and includes any @c mipPadding.
- *
- * @param[in] This     pointer to the ktxTexture object of interest.
- * @param[in] levels   number of levels whose data size to return.
- *
- * @return the data size in bytes.
- */
-static inline ktx_size_t
-ktxTexture_dataSize(ktxTexture* This, ktx_uint32_t levels)
-{
-    ktx_uint32_t i;
-    ktx_size_t dataSize = 0;
-
-    assert (This != NULL);
-    for (i = 0; i < levels; i++) {
-        ktx_size_t levelSize = ktxTexture_levelSize(This, i);
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        /* mipPadding. NOTE: this adds padding after the last level too. */
-        dataSize += _KTX_PAD4(levelSize);
-#else
-        dataSize += levelSize;
-#endif
-    }
-    return dataSize;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Return the number of bytes needed to store all the image data for
- *        a ktxTexture.
- *
- * The caclulated size does not include space for storing the @c imageSize
- * fields of each mip level.
- *
- * @param[in]     This       pointer to the ktxTexture object of interest.
- *
- * @return the data size in bytes.
- */
-static ktx_size_t
-ktxTexture_calcDataSize(ktxTexture* This)
-{
-    assert (This != NULL);
-    return ktxTexture_dataSize(This, This->numLevels);
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Return the size of the primitive type of a single color component
- *
- * @param[in]     This       pointer to the ktxTexture object of interest.
- *
- * @return the type size in bytes.
- */
-ktx_uint32_t
-ktxTexture_glTypeSize(ktxTexture* This)
-{
-    assert(This != NULL);
-    return ((ktxTextureInt*)This)->glTypeSize;
-}
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Get information about rows of an uncompresssed texture image at a
- *        specified level.
- *
- * For an image at @p level of a ktxTexture provide the number of rows, the
- * packed (unpadded) number of bytes in a row and the padding necessary to
- * comply with KTX_GL_UNPACK_ALIGNMENT.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- * @param[in]     level    level of interest.
- * @param[in,out] numRows  pointer to location to store the number of rows.
- * @param[in,out] pRowLengthBytes pointer to location to store number of bytes
- *                                in a row.
- * @param[in.out] pRowPadding pointer to location to store the number of bytes
- *                            of padding.
- */
-void
-ktxTexture_rowInfo(ktxTexture* This, ktx_uint32_t level,
-                   ktx_uint32_t* numRows, ktx_uint32_t* pRowLengthBytes,
-                   ktx_uint32_t* pRowPadding)
-{
-    GlFormatSize* formatInfo;
-    struct blockCount {
-        ktx_uint32_t x;
-    } blockCount;
-
-    assert (This != NULL);
-    
-    formatInfo = &((ktxTextureInt*)This)->formatInfo;
-    assert(!This->isCompressed);
-    assert(formatInfo->blockWidth == formatInfo->blockHeight == formatInfo->blockDepth == 1);
-
-    blockCount.x = MAX(1, (This->baseWidth / formatInfo->blockWidth)  >> level);
-    *numRows = MAX(1, (This->baseHeight / formatInfo->blockHeight)  >> level);
-
-    *pRowLengthBytes = blockCount.x * formatInfo->blockSizeInBits / 8;
-    *pRowPadding = padRow(pRowLengthBytes);
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Return pitch betweeb rows of a texture image level in bytes.
- *
- * For uncompressed textures the pitch is the number of bytes between
- * rows of texels. For compressed textures it is the number of bytes
- * between rows of blocks. The value is padded to GL_UNPACK_ALIGNMENT,
- * if necessary. For all currently known compressed formats padding
- * will not be necessary.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- * @param[in]     level    level of interest.
- *
- * @return  the row pitch in bytes.
- */
- ktx_uint32_t
- ktxTexture_GetRowPitch(ktxTexture* This, ktx_uint32_t level)
- {
-    GlFormatSize* formatInfo;
-    struct blockCount {
-        ktx_uint32_t x;
-    } blockCount;
-    ktx_uint32_t pitch;
-
-    formatInfo = &((ktxTextureInt*)This)->formatInfo;
-    blockCount.x = MAX(1, (This->baseWidth / formatInfo->blockWidth)  >> level);
-    pitch = blockCount.x * formatInfo->blockSizeInBits / 8;
-    (void)padRow(&pitch);
-
-    return pitch;
- }
-
-/**
- * @memberof ktxTexture @private
- * @~English
- * @brief Query if a ktxTexture has an active stream.
- *
- * Tests if a ktxTexture has unread image data. The internal stream is closed
- * once all the images have been read.
- *
- * @param[in]     This     pointer to the ktxTexture object of interest.
- *
- * @return KTX_TRUE if there is an active stream, KTX_FALSE otherwise.
- */
-ktx_bool_t
-ktxTexture_isActiveStream(ktxTexture* This)
-{
-    assert(This != NULL);
-    return ((ktxTextureInt*)This)->stream.data.file != NULL;
-}
-
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Find the offset of an image within a ktxTexture's image data.
- *
- * As there is no such thing as a 3D cubemap we make the 3rd location parameter
- * do double duty.
- *
- * @param[in]     This      pointer to the ktxTexture object of interest.
- * @param[in]     level     mip level of the image.
- * @param[in]     layer     array layer of the image.
- * @param[in]     faceSlice cube map face or depth slice of the image.
- * @param[in,out] pOffset   pointer to location to store the offset.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_OPERATION
- *                         @p level, @p layer or @p faceSlice exceed the
- *                         dimensions of the texture.
- * @exception KTX_INVALID_VALID @p This is NULL.
- */
-KTX_error_code
-ktxTexture_GetImageOffset(ktxTexture* This, ktx_uint32_t level,
-                          ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                          ktx_size_t* pOffset)
-{
-    if (This == NULL)
-        return KTX_INVALID_VALUE;
-
-    if (level >= This->numLevels || layer >= This->numLayers)
-        return KTX_INVALID_OPERATION;
-    
-    if (This->isCubemap) {
-        if (faceSlice >= This->numFaces)
-            return KTX_INVALID_OPERATION;
-    } else {
-        ktx_uint32_t maxSlice = MAX(1, This->baseDepth >> level);
-        if (faceSlice >= maxSlice)
-            return KTX_INVALID_OPERATION;
-    }
-    
-    // Get the size of the data up to the start of the indexed level.
-    *pOffset = ktxTexture_dataSize(This, level);
-    
-    // All layers, faces & slices within a level are the same size.
-    if (layer != 0) {
-        ktx_size_t layerSize;
-        layerSize = ktxTexture_layerSize(This, level);
-        *pOffset += layer * layerSize;
-    }
-    if (faceSlice != 0) {
-        ktx_size_t imageSize;
-        imageSize = ktxTexture_GetImageSize(This, level);
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        if (This->isCubemap)
-            _KTX_PAD4(imageSize); // Account for cubePadding.
-#endif
-        *pOffset += faceSlice * imageSize;
-    }
-
-    return KTX_SUCCESS;
-}
-
-/** @} */
-
diff --git a/external/KTX-Software-master/lib/uthash.h b/external/KTX-Software-master/lib/uthash.h
deleted file mode 100644
index ddd50a7..0000000
--- a/external/KTX-Software-master/lib/uthash.h
+++ /dev/null
@@ -1,960 +0,0 @@
-/*
-Copyright (c) 2003-2010, Troy D. Hanson     http://uthash.sourceforge.net
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef UTHASH_H
-#define UTHASH_H 
-
-#include <string.h>   /* memcmp,strlen */
-#include <stddef.h>   /* ptrdiff_t */
-
-/* These macros use decltype or the earlier __typeof GNU extension.
-   As decltype is only available in newer compilers (VS2010 or gcc 4.3+
-   when compiling c++ source) this code uses whatever method is needed
-   or, for VS2008 where neither is available, uses casting workarounds. */
-#ifdef _MSC_VER         /* MS compiler */
-#if _MSC_VER >= 1600 && __cplusplus  /* VS2010 or newer in C++ mode */
-#define DECLTYPE(x) (decltype(x))
-#else                   /* VS2008 or older (or VS2010 in C mode) */
-#define NO_DECLTYPE
-#define DECLTYPE(x)
-#endif
-#else                   /* GNU, Sun and other compilers */
-#define DECLTYPE(x) (__typeof(x))
-#endif
-
-#ifdef NO_DECLTYPE
-#define DECLTYPE_ASSIGN(dst,src)                                                 \
-do {                                                                             \
-  char **_da_dst = (char**)(&(dst));                                             \
-  *_da_dst = (char*)(src);                                                       \
-} while(0)
-#else 
-#define DECLTYPE_ASSIGN(dst,src)                                                 \
-do {                                                                             \
-  (dst) = DECLTYPE(dst)(src);                                                    \
-} while(0)
-#endif
-
-/* a number of the hash function use uint32_t which isn't defined on win32 */
-#ifdef _MSC_VER
-typedef unsigned int uint32_t;
-#else
-#include <inttypes.h>   /* uint32_t */
-#endif
-
-#define UTHASH_VERSION 1.9.1
-
-#define uthash_fatal(msg) exit(-1)        /* fatal error (out of memory,etc) */
-#define uthash_malloc(sz) malloc(sz)      /* malloc fcn                      */
-#define uthash_free(ptr) free(ptr)        /* free fcn                        */
-
-#define uthash_noexpand_fyi(tbl)          /* can be defined to log noexpand  */
-#define uthash_expand_fyi(tbl)            /* can be defined to log expands   */
-
-/* initial number of buckets */
-#define HASH_INITIAL_NUM_BUCKETS 32      /* initial number of buckets        */
-#define HASH_INITIAL_NUM_BUCKETS_LOG2 5  /* lg2 of initial number of buckets */
-#define HASH_BKT_CAPACITY_THRESH 10      /* expand when bucket count reaches */
-
-/* calculate the element whose hash handle address is hhe */
-#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
-
-#define HASH_FIND(hh,head,keyptr,keylen,out)                                     \
-do {                                                                             \
-  unsigned _hf_bkt,_hf_hashv;                                                    \
-  out=NULL;                                                                      \
-  if (head) {                                                                    \
-     HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt);   \
-     if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) {                           \
-       HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ],  \
-                        keyptr,keylen,out);                                      \
-     }                                                                           \
-  }                                                                              \
-} while (0)
-
-#ifdef HASH_BLOOM
-#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
-#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
-#define HASH_BLOOM_MAKE(tbl)                                                     \
-do {                                                                             \
-  (tbl)->bloom_nbits = HASH_BLOOM;                                               \
-  (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN);                 \
-  if (!((tbl)->bloom_bv))  { uthash_fatal( "out of memory"); }                   \
-  memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN);                                \
-  (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE;                                       \
-} while (0);
-
-#define HASH_BLOOM_FREE(tbl)                                                     \
-do {                                                                             \
-  uthash_free((tbl)->bloom_bv);                                                  \
-} while (0);
-
-#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
-#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
-
-#define HASH_BLOOM_ADD(tbl,hashv)                                                \
-  HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
-
-#define HASH_BLOOM_TEST(tbl,hashv)                                               \
-  HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
-
-#else
-#define HASH_BLOOM_MAKE(tbl) 
-#define HASH_BLOOM_FREE(tbl) 
-#define HASH_BLOOM_ADD(tbl,hashv) 
-#define HASH_BLOOM_TEST(tbl,hashv) (1)
-#endif
-
-#define HASH_MAKE_TABLE(hh,head)                                                 \
-do {                                                                             \
-  (head)->hh.tbl = (UT_hash_table*)uthash_malloc(                                \
-                  sizeof(UT_hash_table));                                        \
-  if (!((head)->hh.tbl))  { uthash_fatal( "out of memory"); }                    \
-  memset((head)->hh.tbl, 0, sizeof(UT_hash_table));                              \
-  (head)->hh.tbl->tail = &((head)->hh);                                          \
-  (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS;                        \
-  (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2;              \
-  (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head);                    \
-  (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc(                      \
-          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
-  if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); }             \
-  memset((head)->hh.tbl->buckets, 0,                                             \
-          HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket));               \
-  HASH_BLOOM_MAKE((head)->hh.tbl);                                               \
-  (head)->hh.tbl->signature = HASH_SIGNATURE;                                    \
-} while(0)
-
-#define HASH_ADD(hh,head,fieldname,keylen_in,add)                                \
-        HASH_ADD_KEYPTR(hh,head,&add->fieldname,keylen_in,add)
- 
-#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add)                            \
-do {                                                                             \
- unsigned _ha_bkt;                                                               \
- (add)->hh.next = NULL;                                                          \
- (add)->hh.key = (char*)keyptr;                                                  \
- (add)->hh.keylen = keylen_in;                                                   \
- if (!(head)) {                                                                  \
-    head = (add);                                                                \
-    (head)->hh.prev = NULL;                                                      \
-    HASH_MAKE_TABLE(hh,head);                                                    \
- } else {                                                                        \
-    (head)->hh.tbl->tail->next = (add);                                          \
-    (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail);         \
-    (head)->hh.tbl->tail = &((add)->hh);                                         \
- }                                                                               \
- (head)->hh.tbl->num_items++;                                                    \
- (add)->hh.tbl = (head)->hh.tbl;                                                 \
- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets,                         \
-         (add)->hh.hashv, _ha_bkt);                                              \
- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh);                   \
- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv);                                 \
- HASH_EMIT_KEY(hh,head,keyptr,keylen_in);                                        \
- HASH_FSCK(hh,head);                                                             \
-} while(0)
-
-#define HASH_TO_BKT( hashv, num_bkts, bkt )                                      \
-do {                                                                             \
-  bkt = ((hashv) & ((num_bkts) - 1));                                            \
-} while(0)
-
-/* delete "delptr" from the hash table.
- * "the usual" patch-up process for the app-order doubly-linked-list.
- * The use of _hd_hh_del below deserves special explanation.
- * These used to be expressed using (delptr) but that led to a bug
- * if someone used the same symbol for the head and deletee, like
- *  HASH_DELETE(hh,users,users);
- * We want that to work, but by changing the head (users) below
- * we were forfeiting our ability to further refer to the deletee (users)
- * in the patch-up process. Solution: use scratch space to
- * copy the deletee pointer, then the latter references are via that
- * scratch pointer rather than through the repointed (users) symbol.
- */
-#define HASH_DELETE(hh,head,delptr)                                              \
-do {                                                                             \
-    unsigned _hd_bkt;                                                            \
-    struct UT_hash_handle *_hd_hh_del;                                           \
-    if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) )  {         \
-        uthash_free((head)->hh.tbl->buckets );                                   \
-        HASH_BLOOM_FREE((head)->hh.tbl);                                         \
-        uthash_free((head)->hh.tbl);                                             \
-        head = NULL;                                                             \
-    } else {                                                                     \
-        _hd_hh_del = &((delptr)->hh);                                            \
-        if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) {     \
-            (head)->hh.tbl->tail =                                               \
-                (UT_hash_handle*)((char*)((delptr)->hh.prev) +                   \
-                (head)->hh.tbl->hho);                                            \
-        }                                                                        \
-        if ((delptr)->hh.prev) {                                                 \
-            ((UT_hash_handle*)((char*)((delptr)->hh.prev) +                      \
-                    (head)->hh.tbl->hho))->next = (delptr)->hh.next;             \
-        } else {                                                                 \
-            DECLTYPE_ASSIGN(head,(delptr)->hh.next);                             \
-        }                                                                        \
-        if (_hd_hh_del->next) {                                                  \
-            ((UT_hash_handle*)((char*)_hd_hh_del->next +                         \
-                    (head)->hh.tbl->hho))->prev =                                \
-                    _hd_hh_del->prev;                                            \
-        }                                                                        \
-        HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt);   \
-        HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del);        \
-        (head)->hh.tbl->num_items--;                                             \
-    }                                                                            \
-    HASH_FSCK(hh,head);                                                          \
-} while (0)
-
-
-/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
-#define HASH_FIND_STR(head,findstr,out)                                          \
-    HASH_FIND(hh,head,findstr,strlen(findstr),out)
-#define HASH_ADD_STR(head,strfield,add)                                          \
-    HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
-#define HASH_FIND_INT(head,findint,out)                                          \
-    HASH_FIND(hh,head,findint,sizeof(int),out)
-#define HASH_ADD_INT(head,intfield,add)                                          \
-    HASH_ADD(hh,head,intfield,sizeof(int),add)
-#define HASH_FIND_PTR(head,findptr,out)                                          \
-    HASH_FIND(hh,head,findptr,sizeof(void *),out)
-#define HASH_ADD_PTR(head,ptrfield,add)                                          \
-    HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
-#define HASH_DEL(head,delptr)                                                    \
-    HASH_DELETE(hh,head,delptr)
-
-/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
- */
-#ifdef HASH_DEBUG
-#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
-#define HASH_FSCK(hh,head)                                                       \
-do {                                                                             \
-    unsigned _bkt_i;                                                             \
-    unsigned _count, _bkt_count;                                                 \
-    char *_prev;                                                                 \
-    struct UT_hash_handle *_thh;                                                 \
-    if (head) {                                                                  \
-        _count = 0;                                                              \
-        for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) {       \
-            _bkt_count = 0;                                                      \
-            _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head;                      \
-            _prev = NULL;                                                        \
-            while (_thh) {                                                       \
-               if (_prev != (char*)(_thh->hh_prev)) {                            \
-                   HASH_OOPS("invalid hh_prev %p, actual %p\n",                  \
-                    _thh->hh_prev, _prev );                                      \
-               }                                                                 \
-               _bkt_count++;                                                     \
-               _prev = (char*)(_thh);                                            \
-               _thh = _thh->hh_next;                                             \
-            }                                                                    \
-            _count += _bkt_count;                                                \
-            if ((head)->hh.tbl->buckets[_bkt_i].count !=  _bkt_count) {          \
-               HASH_OOPS("invalid bucket count %d, actual %d\n",                 \
-                (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count);              \
-            }                                                                    \
-        }                                                                        \
-        if (_count != (head)->hh.tbl->num_items) {                               \
-            HASH_OOPS("invalid hh item count %d, actual %d\n",                   \
-                (head)->hh.tbl->num_items, _count );                             \
-        }                                                                        \
-        /* traverse hh in app order; check next/prev integrity, count */         \
-        _count = 0;                                                              \
-        _prev = NULL;                                                            \
-        _thh =  &(head)->hh;                                                     \
-        while (_thh) {                                                           \
-           _count++;                                                             \
-           if (_prev !=(char*)(_thh->prev)) {                                    \
-              HASH_OOPS("invalid prev %p, actual %p\n",                          \
-                    _thh->prev, _prev );                                         \
-           }                                                                     \
-           _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh);                    \
-           _thh = ( _thh->next ?  (UT_hash_handle*)((char*)(_thh->next) +        \
-                                  (head)->hh.tbl->hho) : NULL );                 \
-        }                                                                        \
-        if (_count != (head)->hh.tbl->num_items) {                               \
-            HASH_OOPS("invalid app item count %d, actual %d\n",                  \
-                (head)->hh.tbl->num_items, _count );                             \
-        }                                                                        \
-    }                                                                            \
-} while (0)
-#else
-#define HASH_FSCK(hh,head) 
-#endif
-
-/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to 
- * the descriptor to which this macro is defined for tuning the hash function.
- * The app can #include <unistd.h> to get the prototype for write(2). */
-#ifdef HASH_EMIT_KEYS
-#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                                   \
-do {                                                                             \
-    unsigned _klen = fieldlen;                                                   \
-    write(HASH_EMIT_KEYS, &_klen, sizeof(_klen));                                \
-    write(HASH_EMIT_KEYS, keyptr, fieldlen);                                     \
-} while (0)
-#else 
-#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)                    
-#endif
-
-/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
-#ifdef HASH_FUNCTION 
-#define HASH_FCN HASH_FUNCTION
-#else
-#define HASH_FCN HASH_JEN
-#endif
-
-/* The Bernstein hash function, used in Perl prior to v5.6 */
-#define HASH_BER(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  unsigned _hb_keylen=keylen;                                                    \
-  char *_hb_key=(char*)key;                                                      \
-  (hashv) = 0;                                                                   \
-  while (_hb_keylen--)  { (hashv) = ((hashv) * 33) + *_hb_key++; }               \
-  bkt = (hashv) & (num_bkts-1);                                                  \
-} while (0)
-
-
-/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at 
- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
-#define HASH_SAX(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  unsigned _sx_i;                                                                \
-  char *_hs_key=(char*)key;                                                      \
-  hashv = 0;                                                                     \
-  for(_sx_i=0; _sx_i < keylen; _sx_i++)                                          \
-      hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i];                     \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while (0)
-
-#define HASH_FNV(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  unsigned _fn_i;                                                                \
-  char *_hf_key=(char*)key;                                                      \
-  hashv = 2166136261UL;                                                          \
-  for(_fn_i=0; _fn_i < keylen; _fn_i++)                                          \
-      hashv = (hashv * 16777619) ^ _hf_key[_fn_i];                               \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while(0);
- 
-#define HASH_OAT(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  unsigned _ho_i;                                                                \
-  char *_ho_key=(char*)key;                                                      \
-  hashv = 0;                                                                     \
-  for(_ho_i=0; _ho_i < keylen; _ho_i++) {                                        \
-      hashv += _ho_key[_ho_i];                                                   \
-      hashv += (hashv << 10);                                                    \
-      hashv ^= (hashv >> 6);                                                     \
-  }                                                                              \
-  hashv += (hashv << 3);                                                         \
-  hashv ^= (hashv >> 11);                                                        \
-  hashv += (hashv << 15);                                                        \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while(0)
-
-#define HASH_JEN_MIX(a,b,c)                                                      \
-do {                                                                             \
-  a -= b; a -= c; a ^= ( c >> 13 );                                              \
-  b -= c; b -= a; b ^= ( a << 8 );                                               \
-  c -= a; c -= b; c ^= ( b >> 13 );                                              \
-  a -= b; a -= c; a ^= ( c >> 12 );                                              \
-  b -= c; b -= a; b ^= ( a << 16 );                                              \
-  c -= a; c -= b; c ^= ( b >> 5 );                                               \
-  a -= b; a -= c; a ^= ( c >> 3 );                                               \
-  b -= c; b -= a; b ^= ( a << 10 );                                              \
-  c -= a; c -= b; c ^= ( b >> 15 );                                              \
-} while (0)
-
-#define HASH_JEN(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  unsigned _hj_i,_hj_j,_hj_k;                                                    \
-  char *_hj_key=(char*)key;                                                      \
-  hashv = 0xfeedbeef;                                                            \
-  _hj_i = _hj_j = 0x9e3779b9;                                                    \
-  _hj_k = keylen;                                                                \
-  while (_hj_k >= 12) {                                                          \
-    _hj_i +=    (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 )                      \
-        + ( (unsigned)_hj_key[2] << 16 )                                         \
-        + ( (unsigned)_hj_key[3] << 24 ) );                                      \
-    _hj_j +=    (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 )                      \
-        + ( (unsigned)_hj_key[6] << 16 )                                         \
-        + ( (unsigned)_hj_key[7] << 24 ) );                                      \
-    hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 )                         \
-        + ( (unsigned)_hj_key[10] << 16 )                                        \
-        + ( (unsigned)_hj_key[11] << 24 ) );                                     \
-                                                                                 \
-     HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                          \
-                                                                                 \
-     _hj_key += 12;                                                              \
-     _hj_k -= 12;                                                                \
-  }                                                                              \
-  hashv += keylen;                                                               \
-  switch ( _hj_k ) {                                                             \
-     case 11: hashv += ( (unsigned)_hj_key[10] << 24 );                          \
-     case 10: hashv += ( (unsigned)_hj_key[9] << 16 );                           \
-     case 9:  hashv += ( (unsigned)_hj_key[8] << 8 );                            \
-     case 8:  _hj_j += ( (unsigned)_hj_key[7] << 24 );                           \
-     case 7:  _hj_j += ( (unsigned)_hj_key[6] << 16 );                           \
-     case 6:  _hj_j += ( (unsigned)_hj_key[5] << 8 );                            \
-     case 5:  _hj_j += _hj_key[4];                                               \
-     case 4:  _hj_i += ( (unsigned)_hj_key[3] << 24 );                           \
-     case 3:  _hj_i += ( (unsigned)_hj_key[2] << 16 );                           \
-     case 2:  _hj_i += ( (unsigned)_hj_key[1] << 8 );                            \
-     case 1:  _hj_i += _hj_key[0];                                               \
-  }                                                                              \
-  HASH_JEN_MIX(_hj_i, _hj_j, hashv);                                             \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while(0)
-
-/* The Paul Hsieh hash function */
-#undef get16bits
-#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__)             \
-  || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
-#define get16bits(d) (*((const uint16_t *) (d)))
-#endif
-
-#if !defined (get16bits)
-#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)             \
-                       +(uint32_t)(((const uint8_t *)(d))[0]) )
-#endif
-#define HASH_SFH(key,keylen,num_bkts,hashv,bkt)                                  \
-do {                                                                             \
-  char *_sfh_key=(char*)key;                                                     \
-  uint32_t _sfh_tmp, _sfh_len = keylen;                                          \
-                                                                                 \
-  int _sfh_rem = _sfh_len & 3;                                                   \
-  _sfh_len >>= 2;                                                                \
-  hashv = 0xcafebabe;                                                            \
-                                                                                 \
-  /* Main loop */                                                                \
-  for (;_sfh_len > 0; _sfh_len--) {                                              \
-    hashv    += get16bits (_sfh_key);                                            \
-    _sfh_tmp       = (get16bits (_sfh_key+2) << 11) ^ hashv;                     \
-    hashv     = (hashv << 16) ^ _sfh_tmp;                                        \
-    _sfh_key += 2*sizeof (uint16_t);                                             \
-    hashv    += hashv >> 11;                                                     \
-  }                                                                              \
-                                                                                 \
-  /* Handle end cases */                                                         \
-  switch (_sfh_rem) {                                                            \
-    case 3: hashv += get16bits (_sfh_key);                                       \
-            hashv ^= hashv << 16;                                                \
-            hashv ^= _sfh_key[sizeof (uint16_t)] << 18;                          \
-            hashv += hashv >> 11;                                                \
-            break;                                                               \
-    case 2: hashv += get16bits (_sfh_key);                                       \
-            hashv ^= hashv << 11;                                                \
-            hashv += hashv >> 17;                                                \
-            break;                                                               \
-    case 1: hashv += *_sfh_key;                                                  \
-            hashv ^= hashv << 10;                                                \
-            hashv += hashv >> 1;                                                 \
-  }                                                                              \
-                                                                                 \
-    /* Force "avalanching" of final 127 bits */                                  \
-    hashv ^= hashv << 3;                                                         \
-    hashv += hashv >> 5;                                                         \
-    hashv ^= hashv << 4;                                                         \
-    hashv += hashv >> 17;                                                        \
-    hashv ^= hashv << 25;                                                        \
-    hashv += hashv >> 6;                                                         \
-    bkt = hashv & (num_bkts-1);                                                  \
-} while(0);
-
-#ifdef HASH_USING_NO_STRICT_ALIASING
-/* The MurmurHash exploits some CPU's (e.g. x86) tolerance for unaligned reads.
- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
- * So MurmurHash comes in two versions, the faster unaligned one and the slower
- * aligned one. We only use the faster one on CPU's where we know it's safe. 
- *
- * Note the preprocessor built-in defines can be emitted using:
- *
- *   gcc -m64 -dM -E - < /dev/null                  (on gcc)
- *   cc -## a.c (where a.c is a simple test file)   (Sun Studio)
- */
-#if (defined(__i386__) || defined(__x86_64__)) 
-#define HASH_MUR HASH_MUR_UNALIGNED
-#else
-#define HASH_MUR HASH_MUR_ALIGNED
-#endif
-
-/* Appleby's MurmurHash fast version for unaligned-tolerant archs like i386 */
-#define HASH_MUR_UNALIGNED(key,keylen,num_bkts,hashv,bkt)                        \
-do {                                                                             \
-  const unsigned int _mur_m = 0x5bd1e995;                                        \
-  const int _mur_r = 24;                                                         \
-  hashv = 0xcafebabe ^ keylen;                                                   \
-  char *_mur_key = (char *)key;                                                  \
-  uint32_t _mur_tmp, _mur_len = keylen;                                          \
-                                                                                 \
-  for (;_mur_len >= 4; _mur_len-=4) {                                            \
-    _mur_tmp = *(uint32_t *)_mur_key;                                            \
-    _mur_tmp *= _mur_m;                                                          \
-    _mur_tmp ^= _mur_tmp >> _mur_r;                                              \
-    _mur_tmp *= _mur_m;                                                          \
-    hashv *= _mur_m;                                                             \
-    hashv ^= _mur_tmp;                                                           \
-    _mur_key += 4;                                                               \
-  }                                                                              \
-                                                                                 \
-  switch(_mur_len)                                                               \
-  {                                                                              \
-    case 3: hashv ^= _mur_key[2] << 16;                                          \
-    case 2: hashv ^= _mur_key[1] << 8;                                           \
-    case 1: hashv ^= _mur_key[0];                                                \
-            hashv *= _mur_m;                                                     \
-  };                                                                             \
-                                                                                 \
-  hashv ^= hashv >> 13;                                                          \
-  hashv *= _mur_m;                                                               \
-  hashv ^= hashv >> 15;                                                          \
-                                                                                 \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while(0)
-
-/* Appleby's MurmurHash version for alignment-sensitive archs like Sparc */
-#define HASH_MUR_ALIGNED(key,keylen,num_bkts,hashv,bkt)                          \
-do {                                                                             \
-  const unsigned int _mur_m = 0x5bd1e995;                                        \
-  const int _mur_r = 24;                                                         \
-  hashv = 0xcafebabe ^ keylen;                                                   \
-  char *_mur_key = (char *)key;                                                  \
-  uint32_t _mur_len = keylen;                                                    \
-  int _mur_align = (int)_mur_key & 3;                                            \
-                                                                                 \
-  if (_mur_align && (_mur_len >= 4)) {                                           \
-    unsigned _mur_t = 0, _mur_d = 0;                                             \
-    switch(_mur_align) {                                                         \
-      case 1: _mur_t |= _mur_key[2] << 16;                                       \
-      case 2: _mur_t |= _mur_key[1] << 8;                                        \
-      case 3: _mur_t |= _mur_key[0];                                             \
-    }                                                                            \
-    _mur_t <<= (8 * _mur_align);                                                 \
-    _mur_key += 4-_mur_align;                                                    \
-    _mur_len -= 4-_mur_align;                                                    \
-    int _mur_sl = 8 * (4-_mur_align);                                            \
-    int _mur_sr = 8 * _mur_align;                                                \
-                                                                                 \
-    for (;_mur_len >= 4; _mur_len-=4) {                                          \
-      _mur_d = *(unsigned *)_mur_key;                                            \
-      _mur_t = (_mur_t >> _mur_sr) | (_mur_d << _mur_sl);                        \
-      unsigned _mur_k = _mur_t;                                                  \
-      _mur_k *= _mur_m;                                                          \
-      _mur_k ^= _mur_k >> _mur_r;                                                \
-      _mur_k *= _mur_m;                                                          \
-      hashv *= _mur_m;                                                           \
-      hashv ^= _mur_k;                                                           \
-      _mur_t = _mur_d;                                                           \
-      _mur_key += 4;                                                             \
-    }                                                                            \
-    _mur_d = 0;                                                                  \
-    if(_mur_len >= _mur_align) {                                                 \
-      switch(_mur_align) {                                                       \
-        case 3: _mur_d |= _mur_key[2] << 16;                                     \
-        case 2: _mur_d |= _mur_key[1] << 8;                                      \
-        case 1: _mur_d |= _mur_key[0];                                           \
-      }                                                                          \
-      unsigned _mur_k = (_mur_t >> _mur_sr) | (_mur_d << _mur_sl);               \
-      _mur_k *= _mur_m;                                                          \
-      _mur_k ^= _mur_k >> _mur_r;                                                \
-      _mur_k *= _mur_m;                                                          \
-      hashv *= _mur_m;                                                           \
-      hashv ^= _mur_k;                                                           \
-      _mur_k += _mur_align;                                                      \
-      _mur_len -= _mur_align;                                                    \
-                                                                                 \
-      switch(_mur_len)                                                           \
-      {                                                                          \
-        case 3: hashv ^= _mur_key[2] << 16;                                      \
-        case 2: hashv ^= _mur_key[1] << 8;                                       \
-        case 1: hashv ^= _mur_key[0];                                            \
-                hashv *= _mur_m;                                                 \
-      }                                                                          \
-    } else {                                                                     \
-      switch(_mur_len)                                                           \
-      {                                                                          \
-        case 3: _mur_d ^= _mur_key[2] << 16;                                     \
-        case 2: _mur_d ^= _mur_key[1] << 8;                                      \
-        case 1: _mur_d ^= _mur_key[0];                                           \
-        case 0: hashv ^= (_mur_t >> _mur_sr) | (_mur_d << _mur_sl);              \
-        hashv *= _mur_m;                                                         \
-      }                                                                          \
-    }                                                                            \
-                                                                                 \
-    hashv ^= hashv >> 13;                                                        \
-    hashv *= _mur_m;                                                             \
-    hashv ^= hashv >> 15;                                                        \
-  } else {                                                                       \
-    for (;_mur_len >= 4; _mur_len-=4) {                                          \
-      unsigned _mur_k = *(unsigned*)_mur_key;                                    \
-      _mur_k *= _mur_m;                                                          \
-      _mur_k ^= _mur_k >> _mur_r;                                                \
-      _mur_k *= _mur_m;                                                          \
-      hashv *= _mur_m;                                                           \
-      hashv ^= _mur_k;                                                           \
-      _mur_key += 4;                                                             \
-    }                                                                            \
-    switch(_mur_len)                                                             \
-    {                                                                            \
-      case 3: hashv ^= _mur_key[2] << 16;                                        \
-      case 2: hashv ^= _mur_key[1] << 8;                                         \
-      case 1: hashv ^= _mur_key[0];                                              \
-      hashv *= _mur_m;                                                           \
-    }                                                                            \
-                                                                                 \
-    hashv ^= hashv >> 13;                                                        \
-    hashv *= _mur_m;                                                             \
-    hashv ^= hashv >> 15;                                                        \
-  }                                                                              \
-  bkt = hashv & (num_bkts-1);                                                    \
-} while(0)
-#endif  /* HASH_USING_NO_STRICT_ALIASING */
-
-/* key comparison function; return 0 if keys equal */
-#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) 
-
-/* iterate over items in a known bucket to find desired item */
-#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out)                       \
-do {                                                                             \
- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head));          \
- else out=NULL;                                                                  \
- while (out) {                                                                   \
-    if (out->hh.keylen == keylen_in) {                                           \
-        if ((HASH_KEYCMP(out->hh.key,keyptr,keylen_in)) == 0) break;             \
-    }                                                                            \
-    if (out->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,out->hh.hh_next)); \
-    else out = NULL;                                                             \
- }                                                                               \
-} while(0)
-
-/* add an item to a bucket  */
-#define HASH_ADD_TO_BKT(head,addhh)                                              \
-do {                                                                             \
- head.count++;                                                                   \
- (addhh)->hh_next = head.hh_head;                                                \
- (addhh)->hh_prev = NULL;                                                        \
- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); }                        \
- (head).hh_head=addhh;                                                           \
- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH)             \
-     && (addhh)->tbl->noexpand != 1) {                                           \
-       HASH_EXPAND_BUCKETS((addhh)->tbl);                                        \
- }                                                                               \
-} while(0)
-
-/* remove an item from a given bucket */
-#define HASH_DEL_IN_BKT(hh,head,hh_del)                                          \
-    (head).count--;                                                              \
-    if ((head).hh_head == hh_del) {                                              \
-      (head).hh_head = hh_del->hh_next;                                          \
-    }                                                                            \
-    if (hh_del->hh_prev) {                                                       \
-        hh_del->hh_prev->hh_next = hh_del->hh_next;                              \
-    }                                                                            \
-    if (hh_del->hh_next) {                                                       \
-        hh_del->hh_next->hh_prev = hh_del->hh_prev;                              \
-    }                                                                
-
-/* Bucket expansion has the effect of doubling the number of buckets
- * and redistributing the items into the new buckets. Ideally the
- * items will distribute more or less evenly into the new buckets
- * (the extent to which this is true is a measure of the quality of
- * the hash function as it applies to the key domain). 
- * 
- * With the items distributed into more buckets, the chain length
- * (item count) in each bucket is reduced. Thus by expanding buckets
- * the hash keeps a bound on the chain length. This bounded chain 
- * length is the essence of how a hash provides constant time lookup.
- * 
- * The calculation of tbl->ideal_chain_maxlen below deserves some
- * explanation. First, keep in mind that we're calculating the ideal
- * maximum chain length based on the *new* (doubled) bucket count.
- * In fractions this is just n/b (n=number of items,b=new num buckets).
- * Since the ideal chain length is an integer, we want to calculate 
- * ceil(n/b). We don't depend on floating point arithmetic in this
- * hash, so to calculate ceil(n/b) with integers we could write
- * 
- *      ceil(n/b) = (n/b) + ((n%b)?1:0)
- * 
- * and in fact a previous version of this hash did just that.
- * But now we have improved things a bit by recognizing that b is
- * always a power of two. We keep its base 2 log handy (call it lb),
- * so now we can write this with a bit shift and logical AND:
- * 
- *      ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
- * 
- */
-#define HASH_EXPAND_BUCKETS(tbl)                                                 \
-do {                                                                             \
-    unsigned _he_bkt;                                                            \
-    unsigned _he_bkt_i;                                                          \
-    struct UT_hash_handle *_he_thh, *_he_hh_nxt;                                 \
-    UT_hash_bucket *_he_new_buckets, *_he_newbkt;                                \
-    _he_new_buckets = (UT_hash_bucket*)uthash_malloc(                            \
-             2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));              \
-    if (!_he_new_buckets) { uthash_fatal( "out of memory"); }                    \
-    memset(_he_new_buckets, 0,                                                   \
-            2 * tbl->num_buckets * sizeof(struct UT_hash_bucket));               \
-    tbl->ideal_chain_maxlen =                                                    \
-       (tbl->num_items >> (tbl->log2_num_buckets+1)) +                           \
-       ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0);                    \
-    tbl->nonideal_items = 0;                                                     \
-    for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++)                \
-    {                                                                            \
-        _he_thh = tbl->buckets[ _he_bkt_i ].hh_head;                             \
-        while (_he_thh) {                                                        \
-           _he_hh_nxt = _he_thh->hh_next;                                        \
-           HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt);            \
-           _he_newbkt = &(_he_new_buckets[ _he_bkt ]);                           \
-           if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) {                \
-             tbl->nonideal_items++;                                              \
-             _he_newbkt->expand_mult = _he_newbkt->count /                       \
-                                        tbl->ideal_chain_maxlen;                 \
-           }                                                                     \
-           _he_thh->hh_prev = NULL;                                              \
-           _he_thh->hh_next = _he_newbkt->hh_head;                               \
-           if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev =               \
-                _he_thh;                                                         \
-           _he_newbkt->hh_head = _he_thh;                                        \
-           _he_thh = _he_hh_nxt;                                                 \
-        }                                                                        \
-    }                                                                            \
-    tbl->num_buckets *= 2;                                                       \
-    tbl->log2_num_buckets++;                                                     \
-    uthash_free( tbl->buckets );                                                 \
-    tbl->buckets = _he_new_buckets;                                              \
-    tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ?         \
-        (tbl->ineff_expands+1) : 0;                                              \
-    if (tbl->ineff_expands > 1) {                                                \
-        tbl->noexpand=1;                                                         \
-        uthash_noexpand_fyi(tbl);                                                \
-    }                                                                            \
-    uthash_expand_fyi(tbl);                                                      \
-} while(0)
-
-
-/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
-/* Note that HASH_SORT assumes the hash handle name to be hh. 
- * HASH_SRT was added to allow the hash handle name to be passed in. */
-#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
-#define HASH_SRT(hh,head,cmpfcn)                                                 \
-do {                                                                             \
-  unsigned _hs_i;                                                                \
-  unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize;               \
-  struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail;            \
-  if (head) {                                                                    \
-      _hs_insize = 1;                                                            \
-      _hs_looping = 1;                                                           \
-      _hs_list = &((head)->hh);                                                  \
-      while (_hs_looping) {                                                      \
-          _hs_p = _hs_list;                                                      \
-          _hs_list = NULL;                                                       \
-          _hs_tail = NULL;                                                       \
-          _hs_nmerges = 0;                                                       \
-          while (_hs_p) {                                                        \
-              _hs_nmerges++;                                                     \
-              _hs_q = _hs_p;                                                     \
-              _hs_psize = 0;                                                     \
-              for ( _hs_i = 0; _hs_i  < _hs_insize; _hs_i++ ) {                  \
-                  _hs_psize++;                                                   \
-                  _hs_q = (UT_hash_handle*)((_hs_q->next) ?                      \
-                          ((void*)((char*)(_hs_q->next) +                        \
-                          (head)->hh.tbl->hho)) : NULL);                         \
-                  if (! (_hs_q) ) break;                                         \
-              }                                                                  \
-              _hs_qsize = _hs_insize;                                            \
-              while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) {           \
-                  if (_hs_psize == 0) {                                          \
-                      _hs_e = _hs_q;                                             \
-                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
-                              ((void*)((char*)(_hs_q->next) +                    \
-                              (head)->hh.tbl->hho)) : NULL);                     \
-                      _hs_qsize--;                                               \
-                  } else if ( (_hs_qsize == 0) || !(_hs_q) ) {                   \
-                      _hs_e = _hs_p;                                             \
-                      _hs_p = (UT_hash_handle*)((_hs_p->next) ?                  \
-                              ((void*)((char*)(_hs_p->next) +                    \
-                              (head)->hh.tbl->hho)) : NULL);                     \
-                      _hs_psize--;                                               \
-                  } else if ((                                                   \
-                      cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
-                             DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
-                             ) <= 0) {                                           \
-                      _hs_e = _hs_p;                                             \
-                      _hs_p = (UT_hash_handle*)((_hs_p->next) ?                  \
-                              ((void*)((char*)(_hs_p->next) +                    \
-                              (head)->hh.tbl->hho)) : NULL);                     \
-                      _hs_psize--;                                               \
-                  } else {                                                       \
-                      _hs_e = _hs_q;                                             \
-                      _hs_q = (UT_hash_handle*)((_hs_q->next) ?                  \
-                              ((void*)((char*)(_hs_q->next) +                    \
-                              (head)->hh.tbl->hho)) : NULL);                     \
-                      _hs_qsize--;                                               \
-                  }                                                              \
-                  if ( _hs_tail ) {                                              \
-                      _hs_tail->next = ((_hs_e) ?                                \
-                            ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL);          \
-                  } else {                                                       \
-                      _hs_list = _hs_e;                                          \
-                  }                                                              \
-                  _hs_e->prev = ((_hs_tail) ?                                    \
-                     ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL);              \
-                  _hs_tail = _hs_e;                                              \
-              }                                                                  \
-              _hs_p = _hs_q;                                                     \
-          }                                                                      \
-          _hs_tail->next = NULL;                                                 \
-          if ( _hs_nmerges <= 1 ) {                                              \
-              _hs_looping=0;                                                     \
-              (head)->hh.tbl->tail = _hs_tail;                                   \
-              DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list));      \
-          }                                                                      \
-          _hs_insize *= 2;                                                       \
-      }                                                                          \
-      HASH_FSCK(hh,head);                                                        \
- }                                                                               \
-} while (0)
-
-/* This function selects items from one hash into another hash. 
- * The end result is that the selected items have dual presence 
- * in both hashes. There is no copy of the items made; rather 
- * they are added into the new hash through a secondary hash 
- * hash handle that must be present in the structure. */
-#define HASH_SELECT(hh_dst, dst, hh_src, src, cond)                              \
-do {                                                                             \
-  unsigned _src_bkt, _dst_bkt;                                                   \
-  void *_last_elt=NULL, *_elt;                                                   \
-  UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL;                         \
-  ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst));                 \
-  if (src) {                                                                     \
-    for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) {     \
-      for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head;                \
-          _src_hh;                                                               \
-          _src_hh = _src_hh->hh_next) {                                          \
-          _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh);                       \
-          if (cond(_elt)) {                                                      \
-            _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho);               \
-            _dst_hh->key = _src_hh->key;                                         \
-            _dst_hh->keylen = _src_hh->keylen;                                   \
-            _dst_hh->hashv = _src_hh->hashv;                                     \
-            _dst_hh->prev = _last_elt;                                           \
-            _dst_hh->next = NULL;                                                \
-            if (_last_elt_hh) { _last_elt_hh->next = _elt; }                     \
-            if (!dst) {                                                          \
-              DECLTYPE_ASSIGN(dst,_elt);                                         \
-              HASH_MAKE_TABLE(hh_dst,dst);                                       \
-            } else {                                                             \
-              _dst_hh->tbl = (dst)->hh_dst.tbl;                                  \
-            }                                                                    \
-            HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt);    \
-            HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh);            \
-            (dst)->hh_dst.tbl->num_items++;                                      \
-            _last_elt = _elt;                                                    \
-            _last_elt_hh = _dst_hh;                                              \
-          }                                                                      \
-      }                                                                          \
-    }                                                                            \
-  }                                                                              \
-  HASH_FSCK(hh_dst,dst);                                                         \
-} while (0)
-
-#define HASH_CLEAR(hh,head)                                                      \
-do {                                                                             \
-  if (head) {                                                                    \
-    uthash_free((head)->hh.tbl->buckets );                                       \
-    uthash_free((head)->hh.tbl);                                                 \
-    (head)=NULL;                                                                 \
-  }                                                                              \
-} while(0)
-
-/* obtain a count of items in the hash */
-#define HASH_COUNT(head) HASH_CNT(hh,head) 
-#define HASH_CNT(hh,head) (head?(head->hh.tbl->num_items):0)
-
-typedef struct UT_hash_bucket {
-   struct UT_hash_handle *hh_head;
-   unsigned count;
-
-   /* expand_mult is normally set to 0. In this situation, the max chain length
-    * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
-    * the bucket's chain exceeds this length, bucket expansion is triggered). 
-    * However, setting expand_mult to a non-zero value delays bucket expansion
-    * (that would be triggered by additions to this particular bucket)
-    * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
-    * (The multiplier is simply expand_mult+1). The whole idea of this
-    * multiplier is to reduce bucket expansions, since they are expensive, in
-    * situations where we know that a particular bucket tends to be overused.
-    * It is better to let its chain length grow to a longer yet-still-bounded
-    * value, than to do an O(n) bucket expansion too often. 
-    */
-   unsigned expand_mult;
-
-} UT_hash_bucket;
-
-/* random signature used only to find hash tables in external analysis */
-#define HASH_SIGNATURE 0xa0111fe1
-#define HASH_BLOOM_SIGNATURE 0xb12220f2
-
-typedef struct UT_hash_table {
-   UT_hash_bucket *buckets;
-   unsigned num_buckets, log2_num_buckets;
-   unsigned num_items;
-   struct UT_hash_handle *tail; /* tail hh in app order, for fast append    */
-   ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
-
-   /* in an ideal situation (all buckets used equally), no bucket would have
-    * more than ceil(#items/#buckets) items. that's the ideal chain length. */
-   unsigned ideal_chain_maxlen;
-
-   /* nonideal_items is the number of items in the hash whose chain position
-    * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
-    * hash distribution; reaching them in a chain traversal takes >ideal steps */
-   unsigned nonideal_items;
-
-   /* ineffective expands occur when a bucket doubling was performed, but 
-    * afterward, more than half the items in the hash had nonideal chain
-    * positions. If this happens on two consecutive expansions we inhibit any
-    * further expansion, as it's not helping; this happens when the hash
-    * function isn't a good fit for the key domain. When expansion is inhibited
-    * the hash will still work, albeit no longer in constant time. */
-   unsigned ineff_expands, noexpand;
-
-   uint32_t signature; /* used only to find hash tables in external analysis */
-#ifdef HASH_BLOOM
-   uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
-   uint8_t *bloom_bv;
-   char bloom_nbits;
-#endif
-
-} UT_hash_table;
-
-typedef struct UT_hash_handle {
-   struct UT_hash_table *tbl;
-   void *prev;                       /* prev element in app order      */
-   void *next;                       /* next element in app order      */
-   struct UT_hash_handle *hh_prev;   /* previous hh in bucket order    */
-   struct UT_hash_handle *hh_next;   /* next hh in bucket order        */
-   void *key;                        /* ptr to enclosing struct's key  */
-   unsigned keylen;                  /* enclosing struct's key len     */
-   unsigned hashv;                   /* result of hash-fcn(key)        */
-} UT_hash_handle;
-
-#endif /* UTHASH_H */
diff --git a/external/KTX-Software-master/lib/vk_format.h b/external/KTX-Software-master/lib/vk_format.h
deleted file mode 100644
index a13b705..0000000
--- a/external/KTX-Software-master/lib/vk_format.h
+++ /dev/null
@@ -1,1371 +0,0 @@
-/*
-================================================================================================
-
-Description	:	Vulkan format properties and conversion from OpenGL.
-Author		:	J.M.P. van Waveren
-Date		:	07/17/2016
-Language	:	C99
-Format		:	Real tabs with the tab size equal to 4 spaces.
-Copyright	:	Copyright (c) 2016 Oculus VR, LLC. All Rights reserved.
-
-
-LICENSE
-=======
-
-Copyright (c) 2016 Oculus VR, LLC.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-DESCRIPTION
-===========
-
-This header implements several support routines to convert OpenGL formats/types
-to Vulkan formats. These routines are particularly useful for loading file
-formats that store OpenGL formats/types such as KTX and glTF.
-
-The functions in this header file convert the format, internalFormat and type
-that are used as parameters to the following OpenGL functions:
-
-void glTexImage2D( GLenum target, GLint level, GLint internalFormat,
-	GLsizei width, GLsizei height, GLint border,
-	GLenum format, GLenum type, const GLvoid * data );
-void glTexImage3D( GLenum target, GLint level, GLint internalFormat,
-	GLsizei width, GLsizei height, GLsizei depth, GLint border,
-	GLenum format, GLenum type, const GLvoid * data );
-void glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat,
-	GLsizei width, GLsizei height, GLint border,
-	GLsizei imageSize, const GLvoid * data );
-void glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat,
-	GLsizei width, GLsizei height, GLsizei depth, GLint border,
-	GLsizei imageSize, const GLvoid * data );
-void glTexStorage2D( GLenum target, GLsizei levels, GLenum internalformat,
-	GLsizei width, GLsizei height );
-void glTexStorage3D( GLenum target, GLsizei levels, GLenum internalformat,
-	GLsizei width, GLsizei height, GLsizei depth );
-void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized,
-	GLsizei stride, const GLvoid * pointer);
-
-
-IMPLEMENTATION
-==============
-
-This file does not include OpenGL / OpenGL ES headers because:
-
-  1. Including OpenGL / OpenGL ES headers is platform dependent and
-     may require a separate installation of an OpenGL SDK.
-  2. The OpenGL format/type constants are the same between extensions and core.
-  3. The OpenGL format/type constants are the same between OpenGL and OpenGL ES.
-  4. File formats like KTX and glTF may use OpenGL formats and types that
-     are not supported by the OpenGL implementation on the platform but are
-     supported by the Vulkan implementation.
-
-
-ENTRY POINTS
-============
-
-static inline VkFormat vkGetFormatFromOpenGLFormat( const GLenum format, const GLenum type );
-static inline VkFormat vkGetFormatFromOpenGLType( const GLenum type, const GLuint numComponents, const GLboolean normalized );
-static inline VkFormat vkGetFormatFromOpenGLInternalFormat( const GLenum internalFormat );
-static inline void vkGetFormatSize( const VkFormat format, VkFormatSize * pFormatSize );
-
-================================================================================================
-*/
-
-#if !defined( VK_FORMAT_H )
-#define VK_FORMAT_H
-
-#include "gl_format.h"
-
-static inline VkFormat vkGetFormatFromOpenGLFormat( const GLenum format, const GLenum type )
-{
-	switch ( type )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_UNSIGNED_BYTE:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R8_UNORM;
-				case GL_RG:						return VK_FORMAT_R8G8_UNORM;
-				case GL_RGB:					return VK_FORMAT_R8G8B8_UNORM;
-				case GL_BGR:					return VK_FORMAT_B8G8R8_UNORM;
-				case GL_RGBA:					return VK_FORMAT_R8G8B8A8_UNORM;
-				case GL_BGRA:					return VK_FORMAT_B8G8R8A8_UNORM;
-				case GL_RED_INTEGER:			return VK_FORMAT_R8_UINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R8G8_UINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R8G8B8_UINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_B8G8R8_UINT;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R8G8B8A8_UINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_B8G8R8A8_UINT;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_S8_UINT;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-		case GL_BYTE:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R8_SNORM;
-				case GL_RG:						return VK_FORMAT_R8G8_SNORM;
-				case GL_RGB:					return VK_FORMAT_R8G8B8_SNORM;
-				case GL_BGR:					return VK_FORMAT_B8G8R8_SNORM;
-				case GL_RGBA:					return VK_FORMAT_R8G8B8A8_SNORM;
-				case GL_BGRA:					return VK_FORMAT_B8G8R8A8_SNORM;
-				case GL_RED_INTEGER:			return VK_FORMAT_R8_SINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R8G8_SINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R8G8B8_SINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_B8G8R8_SINT;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R8G8B8A8_SINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_B8G8R8A8_SINT;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-
-		//
-		// 16 bits per component
-		//
-		case GL_UNSIGNED_SHORT:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R16_UNORM;
-				case GL_RG:						return VK_FORMAT_R16G16_UNORM;
-				case GL_RGB:					return VK_FORMAT_R16G16B16_UNORM;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R16G16B16A16_UNORM;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R16_UINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R16G16_UINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R16G16B16_UINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R16G16B16A16_UINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_D16_UNORM;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_D16_UNORM_S8_UINT;
-			}
-			break;
-		}
-		case GL_SHORT:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R16_SNORM;
-				case GL_RG:						return VK_FORMAT_R16G16_SNORM;
-				case GL_RGB:					return VK_FORMAT_R16G16B16_SNORM;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R16G16B16A16_SNORM;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R16_SINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R16G16_SINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R16G16B16_SINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R16G16B16A16_SINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-		case GL_HALF_FLOAT:
-		case GL_HALF_FLOAT_OES:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R16_SFLOAT;
-				case GL_RG:						return VK_FORMAT_R16G16_SFLOAT;
-				case GL_RGB:					return VK_FORMAT_R16G16B16_SFLOAT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R16G16B16A16_SFLOAT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RG_INTEGER:				return VK_FORMAT_UNDEFINED;
-				case GL_RGB_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-
-		//
-		// 32 bits per component
-		//
-		case GL_UNSIGNED_INT:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R32_UINT;
-				case GL_RG:						return VK_FORMAT_R32G32_UINT;
-				case GL_RGB:					return VK_FORMAT_R32G32B32_UINT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R32G32B32A32_UINT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R32_UINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R32G32_UINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R32G32B32_UINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R32G32B32A32_UINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_X8_D24_UNORM_PACK32;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_D24_UNORM_S8_UINT;
-			}
-			break;
-		}
-		case GL_INT:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R32_SINT;
-				case GL_RG:						return VK_FORMAT_R32G32_SINT;
-				case GL_RGB:					return VK_FORMAT_R32G32B32_SINT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R32G32B32A32_SINT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R32_SINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R32G32_SINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R32G32B32_SINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R32G32B32A32_SINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-		case GL_FLOAT:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R32_SFLOAT;
-				case GL_RG:						return VK_FORMAT_R32G32_SFLOAT;
-				case GL_RGB:					return VK_FORMAT_R32G32B32_SFLOAT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R32G32B32A32_SFLOAT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RG_INTEGER:				return VK_FORMAT_UNDEFINED;
-				case GL_RGB_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_D32_SFLOAT;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_D32_SFLOAT_S8_UINT;
-			}
-			break;
-		}
-
-		//
-		// 64 bits per component
-		//
-		case GL_UNSIGNED_INT64:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R64_UINT;
-				case GL_RG:						return VK_FORMAT_R64G64_UINT;
-				case GL_RGB:					return VK_FORMAT_R64G64B64_UINT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R64G64B64A64_UINT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RG_INTEGER:				return VK_FORMAT_UNDEFINED;
-				case GL_RGB_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-		case GL_INT64:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R64_SINT;
-				case GL_RG:						return VK_FORMAT_R64G64_SINT;
-				case GL_RGB:					return VK_FORMAT_R64G64B64_SINT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R64G64B64A64_SINT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R64_SINT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R64G64_SINT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R64G64B64_SINT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R64G64B64A64_SINT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-		case GL_DOUBLE:
-		{
-			switch ( format )
-			{
-				case GL_RED:					return VK_FORMAT_R64_SFLOAT;
-				case GL_RG:						return VK_FORMAT_R64G64_SFLOAT;
-				case GL_RGB:					return VK_FORMAT_R64G64B64_SFLOAT;
-				case GL_BGR:					return VK_FORMAT_UNDEFINED;
-				case GL_RGBA:					return VK_FORMAT_R64G64B64A64_SFLOAT;
-				case GL_BGRA:					return VK_FORMAT_UNDEFINED;
-				case GL_RED_INTEGER:			return VK_FORMAT_R64_SFLOAT;
-				case GL_RG_INTEGER:				return VK_FORMAT_R64G64_SFLOAT;
-				case GL_RGB_INTEGER:			return VK_FORMAT_R64G64B64_SFLOAT;
-				case GL_BGR_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_RGBA_INTEGER:			return VK_FORMAT_R64G64B64A64_SFLOAT;
-				case GL_BGRA_INTEGER:			return VK_FORMAT_UNDEFINED;
-				case GL_STENCIL_INDEX:			return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_COMPONENT:		return VK_FORMAT_UNDEFINED;
-				case GL_DEPTH_STENCIL:			return VK_FORMAT_UNDEFINED;
-			}
-			break;
-		}
-
-		//
-		// Packed
-		//
-		case GL_UNSIGNED_BYTE_3_3_2:
-			assert( format == GL_RGB || format == GL_RGB_INTEGER );
-			return VK_FORMAT_UNDEFINED;
-		case GL_UNSIGNED_BYTE_2_3_3_REV:
-			assert( format == GL_BGR || format == GL_BGR_INTEGER );
-			return VK_FORMAT_UNDEFINED;
-		case GL_UNSIGNED_SHORT_5_6_5:
-			assert( format == GL_RGB || format == GL_RGB_INTEGER );
-			return VK_FORMAT_R5G6B5_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_5_6_5_REV:
-			assert( format == GL_BGR || format == GL_BGR_INTEGER );
-			return VK_FORMAT_B5G6R5_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_4_4_4_4:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return VK_FORMAT_R4G4B4A4_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_4_4_4_4_REV:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return VK_FORMAT_B4G4R4A4_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_5_5_5_1:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return VK_FORMAT_R5G5B5A1_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_1_5_5_5_REV:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return VK_FORMAT_A1R5G5B5_UNORM_PACK16;
-		case GL_UNSIGNED_INT_8_8_8_8:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return ( format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER ) ? VK_FORMAT_R8G8B8A8_UINT : VK_FORMAT_R8G8B8A8_UNORM;
-		case GL_UNSIGNED_INT_8_8_8_8_REV:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return ( format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER ) ? VK_FORMAT_A8B8G8R8_UINT_PACK32 : VK_FORMAT_A8B8G8R8_UNORM_PACK32;
-		case GL_UNSIGNED_INT_10_10_10_2:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return ( format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER ) ? VK_FORMAT_A2R10G10B10_UINT_PACK32 : VK_FORMAT_A2R10G10B10_UNORM_PACK32;
-		case GL_UNSIGNED_INT_2_10_10_10_REV:
-			assert( format == GL_RGB || format == GL_BGRA || format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER );
-			return ( format == GL_RGB_INTEGER || format == GL_BGRA_INTEGER ) ? VK_FORMAT_A2B10G10R10_UINT_PACK32 : VK_FORMAT_A2B10G10R10_UNORM_PACK32;
-		case GL_UNSIGNED_INT_10F_11F_11F_REV:
-			assert( format == GL_RGB || format == GL_BGR );
-			return VK_FORMAT_B10G11R11_UFLOAT_PACK32;
-		case GL_UNSIGNED_INT_5_9_9_9_REV:
-			assert( format == GL_RGB || format == GL_BGR );
-			return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
-		case GL_UNSIGNED_INT_24_8:
-			assert( format == GL_DEPTH_STENCIL );
-			return VK_FORMAT_D24_UNORM_S8_UINT;
-		case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
-			assert( format == GL_DEPTH_STENCIL );
-			return VK_FORMAT_D32_SFLOAT_S8_UINT;
-	}
-
-	return VK_FORMAT_UNDEFINED;
-}
-
-static inline VkFormat vkGetFormatFromOpenGLType( const GLenum type, const GLuint numComponents, const GLboolean normalized )
-{
-	switch ( type )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_UNSIGNED_BYTE:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return normalized ? VK_FORMAT_R8_UNORM : VK_FORMAT_R8_UINT;
-				case 2:							return normalized ? VK_FORMAT_R8G8_UNORM : VK_FORMAT_R8G8_UINT;
-				case 3:							return normalized ? VK_FORMAT_R8G8B8_UNORM : VK_FORMAT_R8G8B8_UINT;
-				case 4:							return normalized ? VK_FORMAT_R8G8B8A8_UNORM : VK_FORMAT_R8G8B8A8_UINT;
-			}
-			break;
-		}
-		case GL_BYTE:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return normalized ? VK_FORMAT_R8_SNORM : VK_FORMAT_R8_SINT;
-				case 2:							return normalized ? VK_FORMAT_R8G8_SNORM : VK_FORMAT_R8G8_SINT;
-				case 3:							return normalized ? VK_FORMAT_R8G8B8_SNORM : VK_FORMAT_R8G8B8_SINT;
-				case 4:							return normalized ? VK_FORMAT_R8G8B8A8_SNORM : VK_FORMAT_R8G8B8A8_SINT;
-			}
-			break;
-		}
-
-		//
-		// 16 bits per component
-		//
-		case GL_UNSIGNED_SHORT:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return normalized ? VK_FORMAT_R16_UNORM : VK_FORMAT_R16_UINT;
-				case 2:							return normalized ? VK_FORMAT_R16G16_UNORM : VK_FORMAT_R16G16_UINT;
-				case 3:							return normalized ? VK_FORMAT_R16G16B16_UNORM : VK_FORMAT_R16G16B16_UINT;
-				case 4:							return normalized ? VK_FORMAT_R16G16B16A16_UNORM : VK_FORMAT_R16G16B16A16_UINT;
-			}
-			break;
-		}
-		case GL_SHORT:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return normalized ? VK_FORMAT_R16_SNORM : VK_FORMAT_R16_SINT;
-				case 2:							return normalized ? VK_FORMAT_R16G16_SNORM : VK_FORMAT_R16G16_SINT;
-				case 3:							return normalized ? VK_FORMAT_R16G16B16_SNORM : VK_FORMAT_R16G16B16_SINT;
-				case 4:							return normalized ? VK_FORMAT_R16G16B16A16_SNORM : VK_FORMAT_R16G16B16A16_SINT;
-			}
-			break;
-		}
-		case GL_HALF_FLOAT:
-		case GL_HALF_FLOAT_OES:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R16_SFLOAT;
-				case 2:							return VK_FORMAT_R16G16_SFLOAT;
-				case 3:							return VK_FORMAT_R16G16B16_SFLOAT;
-				case 4:							return VK_FORMAT_R16G16B16A16_SFLOAT;
-			}
-			break;
-		}
-
-		//
-		// 32 bits per component
-		//
-		case GL_UNSIGNED_INT:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R32_UINT;
-				case 2:							return VK_FORMAT_R32G32_UINT;
-				case 3:							return VK_FORMAT_R32G32B32_UINT;
-				case 4:							return VK_FORMAT_R32G32B32A32_UINT;
-			}
-			break;
-		}
-		case GL_INT:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R32_SINT;
-				case 2:							return VK_FORMAT_R32G32_SINT;
-				case 3:							return VK_FORMAT_R32G32B32_SINT;
-				case 4:							return VK_FORMAT_R32G32B32A32_SINT;
-			}
-			break;
-		}
-		case GL_FLOAT:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R32_SFLOAT;
-				case 2:							return VK_FORMAT_R32G32_SFLOAT;
-				case 3:							return VK_FORMAT_R32G32B32_SFLOAT;
-				case 4:							return VK_FORMAT_R32G32B32A32_SFLOAT;
-			}
-			break;
-		}
-
-		//
-		// 64 bits per component
-		//
-		case GL_UNSIGNED_INT64:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R64_UINT;
-				case 2:							return VK_FORMAT_R64G64_UINT;
-				case 3:							return VK_FORMAT_R64G64B64_UINT;
-				case 4:							return VK_FORMAT_R64G64B64A64_UINT;
-			}
-			break;
-		}
-		case GL_INT64:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R64_SINT;
-				case 2:							return VK_FORMAT_R64G64_SINT;
-				case 3:							return VK_FORMAT_R64G64B64_SINT;
-				case 4:							return VK_FORMAT_R64G64B64A64_SINT;
-			}
-			break;
-		}
-		case GL_DOUBLE:
-		{
-			switch ( numComponents )
-			{
-				case 1:							return VK_FORMAT_R64_SFLOAT;
-				case 2:							return VK_FORMAT_R64G64_SFLOAT;
-				case 3:							return VK_FORMAT_R64G64B64_SFLOAT;
-				case 4:							return VK_FORMAT_R64G64B64A64_SFLOAT;
-			}
-			break;
-		}
-
-		//
-		// Packed
-		//
-		case GL_UNSIGNED_BYTE_3_3_2:			return VK_FORMAT_UNDEFINED;
-		case GL_UNSIGNED_BYTE_2_3_3_REV:		return VK_FORMAT_UNDEFINED;
-		case GL_UNSIGNED_SHORT_5_6_5:			return VK_FORMAT_R5G6B5_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_5_6_5_REV:		return VK_FORMAT_B5G6R5_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_4_4_4_4:			return VK_FORMAT_R4G4B4A4_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_4_4_4_4_REV:		return VK_FORMAT_B4G4R4A4_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_5_5_5_1:			return VK_FORMAT_R5G5B5A1_UNORM_PACK16;
-		case GL_UNSIGNED_SHORT_1_5_5_5_REV:		return VK_FORMAT_A1R5G5B5_UNORM_PACK16;
-		case GL_UNSIGNED_INT_8_8_8_8:			return normalized ? VK_FORMAT_R8G8B8A8_UNORM : VK_FORMAT_R8G8B8A8_UINT;
-		case GL_UNSIGNED_INT_8_8_8_8_REV:		return normalized ? VK_FORMAT_A8B8G8R8_UNORM_PACK32 : VK_FORMAT_A8B8G8R8_UINT_PACK32;
-		case GL_UNSIGNED_INT_10_10_10_2:		return normalized ? VK_FORMAT_A2R10G10B10_UNORM_PACK32 : VK_FORMAT_A2R10G10B10_UINT_PACK32;
-		case GL_UNSIGNED_INT_2_10_10_10_REV:	return normalized ? VK_FORMAT_A2B10G10R10_UNORM_PACK32 : VK_FORMAT_A2B10G10R10_UINT_PACK32;
-		case GL_UNSIGNED_INT_10F_11F_11F_REV:	return VK_FORMAT_B10G11R11_UFLOAT_PACK32;
-		case GL_UNSIGNED_INT_5_9_9_9_REV:		return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
-		case GL_UNSIGNED_INT_24_8:				return VK_FORMAT_D24_UNORM_S8_UINT;
-		case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:	return VK_FORMAT_D32_SFLOAT_S8_UINT;
-	}
-
-	return VK_FORMAT_UNDEFINED;
-}
-
-static inline VkFormat vkGetFormatFromOpenGLInternalFormat( const GLenum internalFormat )
-{
-	switch ( internalFormat )
-	{
-		//
-		// 8 bits per component
-		//
-		case GL_R8:												return VK_FORMAT_R8_UNORM;					// 1-component, 8-bit unsigned normalized
-		case GL_RG8:											return VK_FORMAT_R8G8_UNORM;				// 2-component, 8-bit unsigned normalized
-		case GL_RGB8:											return VK_FORMAT_R8G8B8_UNORM;				// 3-component, 8-bit unsigned normalized
-		case GL_RGBA8:											return VK_FORMAT_R8G8B8A8_UNORM;			// 4-component, 8-bit unsigned normalized
-
-		case GL_R8_SNORM:										return VK_FORMAT_R8_SNORM;					// 1-component, 8-bit signed normalized
-		case GL_RG8_SNORM:										return VK_FORMAT_R8G8_SNORM;				// 2-component, 8-bit signed normalized
-		case GL_RGB8_SNORM:										return VK_FORMAT_R8G8B8_SNORM;				// 3-component, 8-bit signed normalized
-		case GL_RGBA8_SNORM:									return VK_FORMAT_R8G8B8A8_SNORM;			// 4-component, 8-bit signed normalized
-
-		case GL_R8UI:											return VK_FORMAT_R8_UINT;					// 1-component, 8-bit unsigned integer
-		case GL_RG8UI:											return VK_FORMAT_R8G8_UINT;					// 2-component, 8-bit unsigned integer
-		case GL_RGB8UI:											return VK_FORMAT_R8G8B8_UINT;				// 3-component, 8-bit unsigned integer
-		case GL_RGBA8UI:										return VK_FORMAT_R8G8B8A8_UINT;				// 4-component, 8-bit unsigned integer
-
-		case GL_R8I:											return VK_FORMAT_R8_SINT;					// 1-component, 8-bit signed integer
-		case GL_RG8I:											return VK_FORMAT_R8G8_SINT;					// 2-component, 8-bit signed integer
-		case GL_RGB8I:											return VK_FORMAT_R8G8B8_SINT;				// 3-component, 8-bit signed integer
-		case GL_RGBA8I:											return VK_FORMAT_R8G8B8A8_SINT;				// 4-component, 8-bit signed integer
-
-		case GL_SR8:											return VK_FORMAT_R8_SRGB;					// 1-component, 8-bit sRGB
-		case GL_SRG8:											return VK_FORMAT_R8G8_SRGB;					// 2-component, 8-bit sRGB
-		case GL_SRGB8:											return VK_FORMAT_R8G8B8_SRGB;				// 3-component, 8-bit sRGB
-		case GL_SRGB8_ALPHA8:									return VK_FORMAT_R8G8B8A8_SRGB;				// 4-component, 8-bit sRGB
-
-		//
-		// 16 bits per component
-		//
-		case GL_R16:											return VK_FORMAT_R16_UNORM;					// 1-component, 16-bit unsigned normalized
-		case GL_RG16:											return VK_FORMAT_R16G16_UNORM;				// 2-component, 16-bit unsigned normalized
-		case GL_RGB16:											return VK_FORMAT_R16G16B16_UNORM;			// 3-component, 16-bit unsigned normalized
-		case GL_RGBA16:											return VK_FORMAT_R16G16B16A16_UNORM;		// 4-component, 16-bit unsigned normalized
-
-		case GL_R16_SNORM:										return VK_FORMAT_R16_SNORM;					// 1-component, 16-bit signed normalized
-		case GL_RG16_SNORM:										return VK_FORMAT_R16G16_SNORM;				// 2-component, 16-bit signed normalized
-		case GL_RGB16_SNORM:									return VK_FORMAT_R16G16B16_SNORM;			// 3-component, 16-bit signed normalized
-		case GL_RGBA16_SNORM:									return VK_FORMAT_R16G16B16A16_SNORM;		// 4-component, 16-bit signed normalized
-
-		case GL_R16UI:											return VK_FORMAT_R16_UINT;					// 1-component, 16-bit unsigned integer
-		case GL_RG16UI:											return VK_FORMAT_R16G16_UINT;				// 2-component, 16-bit unsigned integer
-		case GL_RGB16UI:										return VK_FORMAT_R16G16B16_UINT;			// 3-component, 16-bit unsigned integer
-		case GL_RGBA16UI:										return VK_FORMAT_R16G16B16A16_UINT;			// 4-component, 16-bit unsigned integer
-
-		case GL_R16I:											return VK_FORMAT_R16_SINT;					// 1-component, 16-bit signed integer
-		case GL_RG16I:											return VK_FORMAT_R16G16_SINT;				// 2-component, 16-bit signed integer
-		case GL_RGB16I:											return VK_FORMAT_R16G16B16_SINT;			// 3-component, 16-bit signed integer
-		case GL_RGBA16I:										return VK_FORMAT_R16G16B16A16_SINT;			// 4-component, 16-bit signed integer
-
-		case GL_R16F:											return VK_FORMAT_R16_SFLOAT;				// 1-component, 16-bit floating-point
-		case GL_RG16F:											return VK_FORMAT_R16G16_SFLOAT;				// 2-component, 16-bit floating-point
-		case GL_RGB16F:											return VK_FORMAT_R16G16B16_SFLOAT;			// 3-component, 16-bit floating-point
-		case GL_RGBA16F:										return VK_FORMAT_R16G16B16A16_SFLOAT;		// 4-component, 16-bit floating-point
-
-		//
-		// 32 bits per component
-		//
-		case GL_R32UI:											return VK_FORMAT_R32_UINT;					// 1-component, 32-bit unsigned integer
-		case GL_RG32UI:											return VK_FORMAT_R32G32_UINT;				// 2-component, 32-bit unsigned integer
-		case GL_RGB32UI:										return VK_FORMAT_R32G32B32_UINT;			// 3-component, 32-bit unsigned integer
-		case GL_RGBA32UI:										return VK_FORMAT_R32G32B32A32_UINT;			// 4-component, 32-bit unsigned integer
-
-		case GL_R32I:											return VK_FORMAT_R32_SINT;					// 1-component, 32-bit signed integer
-		case GL_RG32I:											return VK_FORMAT_R32G32_SINT;				// 2-component, 32-bit signed integer
-		case GL_RGB32I:											return VK_FORMAT_R32G32B32_SINT;			// 3-component, 32-bit signed integer
-		case GL_RGBA32I:										return VK_FORMAT_R32G32B32A32_SINT;			// 4-component, 32-bit signed integer
-
-		case GL_R32F:											return VK_FORMAT_R32_SFLOAT;				// 1-component, 32-bit floating-point
-		case GL_RG32F:											return VK_FORMAT_R32G32_SFLOAT;				// 2-component, 32-bit floating-point
-		case GL_RGB32F:											return VK_FORMAT_R32G32B32_SFLOAT;			// 3-component, 32-bit floating-point
-		case GL_RGBA32F:										return VK_FORMAT_R32G32B32A32_SFLOAT;		// 4-component, 32-bit floating-point
-
-		//
-		// Packed
-		//
-		case GL_R3_G3_B2:										return VK_FORMAT_UNDEFINED;					// 3-component 3:3:2,       unsigned normalized
-		case GL_RGB4:											return VK_FORMAT_UNDEFINED;					// 3-component 4:4:4,       unsigned normalized
-		case GL_RGB5:											return VK_FORMAT_R5G5B5A1_UNORM_PACK16;		// 3-component 5:5:5,       unsigned normalized
-		case GL_RGB565:											return VK_FORMAT_R5G6B5_UNORM_PACK16;		// 3-component 5:6:5,       unsigned normalized
-		case GL_RGB10:											return VK_FORMAT_A2R10G10B10_UNORM_PACK32;	// 3-component 10:10:10,    unsigned normalized
-		case GL_RGB12:											return VK_FORMAT_UNDEFINED;					// 3-component 12:12:12,    unsigned normalized
-		case GL_RGBA2:											return VK_FORMAT_UNDEFINED;					// 4-component 2:2:2:2,     unsigned normalized
-		case GL_RGBA4:											return VK_FORMAT_R4G4B4A4_UNORM_PACK16;		// 4-component 4:4:4:4,     unsigned normalized
-		case GL_RGBA12:											return VK_FORMAT_UNDEFINED;					// 4-component 12:12:12:12, unsigned normalized
-		case GL_RGB5_A1:										return VK_FORMAT_A1R5G5B5_UNORM_PACK16;		// 4-component 5:5:5:1,     unsigned normalized
-		case GL_RGB10_A2:										return VK_FORMAT_A2R10G10B10_UNORM_PACK32;	// 4-component 10:10:10:2,  unsigned normalized
-		case GL_RGB10_A2UI:										return VK_FORMAT_A2R10G10B10_UINT_PACK32;	// 4-component 10:10:10:2,  unsigned integer
-		case GL_R11F_G11F_B10F:									return VK_FORMAT_B10G11R11_UFLOAT_PACK32;	// 3-component 11:11:10,    floating-point
-		case GL_RGB9_E5:										return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;	// 3-component/exp 9:9:9/5, floating-point
-
-		//
-		// S3TC/DXT/BC
-		//
-
-		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:					return VK_FORMAT_BC1_RGB_UNORM_BLOCK;		// line through 3D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:					return VK_FORMAT_BC1_RGBA_UNORM_BLOCK;		// line through 3D space plus 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:					return VK_FORMAT_BC2_UNORM_BLOCK;			// line through 3D space plus line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:					return VK_FORMAT_BC3_UNORM_BLOCK;			// line through 3D space plus 4-bit alpha, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:					return VK_FORMAT_BC1_RGB_SRGB_BLOCK;		// line through 3D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:			return VK_FORMAT_BC1_RGBA_SRGB_BLOCK;		// line through 3D space plus 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:			return VK_FORMAT_BC2_SRGB_BLOCK;			// line through 3D space plus line through 1D space, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:			return VK_FORMAT_BC3_SRGB_BLOCK;			// line through 3D space plus 4-bit alpha, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_LUMINANCE_LATC1_EXT:					return VK_FORMAT_BC4_UNORM_BLOCK;			// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT:			return VK_FORMAT_BC5_UNORM_BLOCK;			// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT:			return VK_FORMAT_BC4_SNORM_BLOCK;			// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT:	return VK_FORMAT_BC5_SNORM_BLOCK;			// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RED_RGTC1:							return VK_FORMAT_BC4_UNORM_BLOCK;			// line through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG_RGTC2:							return VK_FORMAT_BC5_UNORM_BLOCK;			// two lines through 1D space, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_RED_RGTC1:					return VK_FORMAT_BC4_SNORM_BLOCK;			// line through 1D space, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG_RGTC2:						return VK_FORMAT_BC5_SNORM_BLOCK;			// two lines through 1D space, 4x4 blocks, signed normalized
-
-		case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:				return VK_FORMAT_BC6H_UFLOAT_BLOCK;			// 3-component, 4x4 blocks, unsigned floating-point
-		case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:				return VK_FORMAT_BC6H_SFLOAT_BLOCK;			// 3-component, 4x4 blocks, signed floating-point
-		case GL_COMPRESSED_RGBA_BPTC_UNORM:						return VK_FORMAT_BC7_UNORM_BLOCK;			// 4-component, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:				return VK_FORMAT_BC7_SRGB_BLOCK;			// 4-component, 4x4 blocks, sRGB
-
-		//
-		// ETC
-		//
-		case GL_ETC1_RGB8_OES:									return VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;	// 3-component ETC1, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_RGB8_ETC2:							return VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;	// 3-component ETC2, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;	// 4-component ETC2 with 1-bit alpha, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA8_ETC2_EAC:						return VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;	// 4-component ETC2, 4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ETC2:							return VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;	// 3-component ETC2, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:		return VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;	// 4-component ETC2 with 1-bit alpha, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:				return VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;	// 4-component ETC2, 4x4 blocks, sRGB
-
-		case GL_COMPRESSED_R11_EAC:								return VK_FORMAT_EAC_R11_UNORM_BLOCK;		// 1-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RG11_EAC:							return VK_FORMAT_EAC_R11G11_UNORM_BLOCK;	// 2-component ETC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_SIGNED_R11_EAC:						return VK_FORMAT_EAC_R11_SNORM_BLOCK;		// 1-component ETC, 4x4 blocks, signed normalized
-		case GL_COMPRESSED_SIGNED_RG11_EAC:						return VK_FORMAT_EAC_R11G11_SNORM_BLOCK;	// 2-component ETC, 4x4 blocks, signed normalized
-
-		//
-		// PVRTC
-		//
-		case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:				return VK_FORMAT_UNDEFINED;					// 3-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:				return VK_FORMAT_UNDEFINED;					// 3-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:				return VK_FORMAT_UNDEFINED;					// 4-component PVRTC, 16x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:				return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG:				return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  8x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG:				return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  4x4 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:				return VK_FORMAT_UNDEFINED;					// 3-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:				return VK_FORMAT_UNDEFINED;					// 3-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:			return VK_FORMAT_UNDEFINED;					// 4-component PVRTC, 16x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:			return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG:			return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  8x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG:			return VK_FORMAT_UNDEFINED;					// 4-component PVRTC,  4x4 blocks, sRGB
-
-		//
-		// ASTC
-		//
-		case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:					return VK_FORMAT_ASTC_4x4_UNORM_BLOCK;		// 4-component ASTC, 4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:					return VK_FORMAT_ASTC_5x4_UNORM_BLOCK;		// 4-component ASTC, 5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:					return VK_FORMAT_ASTC_5x5_UNORM_BLOCK;		// 4-component ASTC, 5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:					return VK_FORMAT_ASTC_6x5_UNORM_BLOCK;		// 4-component ASTC, 6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:					return VK_FORMAT_ASTC_6x6_UNORM_BLOCK;		// 4-component ASTC, 6x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:					return VK_FORMAT_ASTC_8x5_UNORM_BLOCK;		// 4-component ASTC, 8x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:					return VK_FORMAT_ASTC_8x6_UNORM_BLOCK;		// 4-component ASTC, 8x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:					return VK_FORMAT_ASTC_8x8_UNORM_BLOCK;		// 4-component ASTC, 8x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:					return VK_FORMAT_ASTC_10x5_UNORM_BLOCK;		// 4-component ASTC, 10x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:					return VK_FORMAT_ASTC_10x6_UNORM_BLOCK;		// 4-component ASTC, 10x6 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:					return VK_FORMAT_ASTC_10x8_UNORM_BLOCK;		// 4-component ASTC, 10x8 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:					return VK_FORMAT_ASTC_10x10_UNORM_BLOCK;	// 4-component ASTC, 10x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:					return VK_FORMAT_ASTC_12x10_UNORM_BLOCK;	// 4-component ASTC, 12x10 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:					return VK_FORMAT_ASTC_12x12_UNORM_BLOCK;	// 4-component ASTC, 12x12 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:			return VK_FORMAT_ASTC_4x4_SRGB_BLOCK;		// 4-component ASTC, 4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:			return VK_FORMAT_ASTC_5x4_SRGB_BLOCK;		// 4-component ASTC, 5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:			return VK_FORMAT_ASTC_5x5_SRGB_BLOCK;		// 4-component ASTC, 5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:			return VK_FORMAT_ASTC_6x5_SRGB_BLOCK;		// 4-component ASTC, 6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:			return VK_FORMAT_ASTC_6x6_SRGB_BLOCK;		// 4-component ASTC, 6x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:			return VK_FORMAT_ASTC_8x5_SRGB_BLOCK;		// 4-component ASTC, 8x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:			return VK_FORMAT_ASTC_8x6_SRGB_BLOCK;		// 4-component ASTC, 8x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:			return VK_FORMAT_ASTC_8x8_SRGB_BLOCK;		// 4-component ASTC, 8x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:			return VK_FORMAT_ASTC_10x5_SRGB_BLOCK;		// 4-component ASTC, 10x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:			return VK_FORMAT_ASTC_10x6_SRGB_BLOCK;		// 4-component ASTC, 10x6 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:			return VK_FORMAT_ASTC_10x8_SRGB_BLOCK;		// 4-component ASTC, 10x8 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:			return VK_FORMAT_ASTC_10x10_SRGB_BLOCK;		// 4-component ASTC, 10x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:			return VK_FORMAT_ASTC_12x10_SRGB_BLOCK;		// 4-component ASTC, 12x10 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:			return VK_FORMAT_ASTC_12x12_SRGB_BLOCK;		// 4-component ASTC, 12x12 blocks, sRGB
-
-		case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 3x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x3x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x4x3 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x4x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x5x4 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x5x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x6x5 blocks, unsigned normalized
-		case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:					return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x6x6 blocks, unsigned normalized
-
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 3x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x3x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x4x3 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 4x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x4x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x5x4 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 5x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x5x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x6x5 blocks, sRGB
-		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:			return VK_FORMAT_UNDEFINED;					// 4-component ASTC, 6x6x6 blocks, sRGB
-
-		//
-		// ATC
-		//
-		case GL_ATC_RGB_AMD:									return VK_FORMAT_UNDEFINED;					// 3-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_EXPLICIT_ALPHA_AMD:					return VK_FORMAT_UNDEFINED;					// 4-component, 4x4 blocks, unsigned normalized
-		case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD:				return VK_FORMAT_UNDEFINED;					// 4-component, 4x4 blocks, unsigned normalized
-
-		//
-		// Palletized
-		//
-		case GL_PALETTE4_RGB8_OES:								return VK_FORMAT_UNDEFINED;					// 3-component 8:8:8,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA8_OES:								return VK_FORMAT_UNDEFINED;					// 4-component 8:8:8:8, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_R5_G6_B5_OES:							return VK_FORMAT_UNDEFINED;					// 3-component 5:6:5,   4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGBA4_OES:								return VK_FORMAT_UNDEFINED;					// 4-component 4:4:4:4, 4-bit palette, unsigned normalized
-		case GL_PALETTE4_RGB5_A1_OES:							return VK_FORMAT_UNDEFINED;					// 4-component 5:5:5:1, 4-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB8_OES:								return VK_FORMAT_UNDEFINED;					// 3-component 8:8:8,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA8_OES:								return VK_FORMAT_UNDEFINED;					// 4-component 8:8:8:8, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_R5_G6_B5_OES:							return VK_FORMAT_UNDEFINED;					// 3-component 5:6:5,   8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGBA4_OES:								return VK_FORMAT_UNDEFINED;					// 4-component 4:4:4:4, 8-bit palette, unsigned normalized
-		case GL_PALETTE8_RGB5_A1_OES:							return VK_FORMAT_UNDEFINED;					// 4-component 5:5:5:1, 8-bit palette, unsigned normalized
-
-		//
-		// Depth/stencil
-		//
-		case GL_DEPTH_COMPONENT16:								return VK_FORMAT_D16_UNORM;
-		case GL_DEPTH_COMPONENT24:								return VK_FORMAT_X8_D24_UNORM_PACK32;
-		case GL_DEPTH_COMPONENT32:								return VK_FORMAT_UNDEFINED;
-		case GL_DEPTH_COMPONENT32F:								return VK_FORMAT_D32_SFLOAT;
-		case GL_DEPTH_COMPONENT32F_NV:							return VK_FORMAT_D32_SFLOAT;
-		case GL_STENCIL_INDEX1:									return VK_FORMAT_UNDEFINED;
-		case GL_STENCIL_INDEX4:									return VK_FORMAT_UNDEFINED;
-		case GL_STENCIL_INDEX8:									return VK_FORMAT_S8_UINT;
-		case GL_STENCIL_INDEX16:								return VK_FORMAT_UNDEFINED;
-		case GL_DEPTH24_STENCIL8:								return VK_FORMAT_D24_UNORM_S8_UINT;
-		case GL_DEPTH32F_STENCIL8:								return VK_FORMAT_D32_SFLOAT_S8_UINT;
-		case GL_DEPTH32F_STENCIL8_NV:							return VK_FORMAT_D32_SFLOAT_S8_UINT;
-
-		default:												return VK_FORMAT_UNDEFINED;
-	}
-}
-
-typedef enum VkFormatSizeFlagBits {
-	VK_FORMAT_SIZE_PACKED_BIT				= 0x00000001,
-	VK_FORMAT_SIZE_COMPRESSED_BIT			= 0x00000002,
-	VK_FORMAT_SIZE_PALETTIZED_BIT			= 0x00000004,
-	VK_FORMAT_SIZE_DEPTH_BIT				= 0x00000008,
-	VK_FORMAT_SIZE_STENCIL_BIT				= 0x00000010,
-} VkFormatSizeFlagBits;
-
-typedef VkFlags VkFormatSizeFlags;
-
-typedef struct VkFormatSize {
-	VkFormatSizeFlags	flags;
-	unsigned int		paletteSizeInBits;
-	unsigned int		blockSizeInBits;
-	unsigned int		blockWidth;			// in texels
-	unsigned int		blockHeight;		// in texels
-	unsigned int		blockDepth;			// in texels
-} VkFormatSize;
-
-static inline void vkGetFormatSize( const VkFormat format, VkFormatSize * pFormatSize )
-{
-	switch ( format )
-	{
-		case VK_FORMAT_R4G4_UNORM_PACK8:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 1 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:
-		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
-		case VK_FORMAT_R5G6B5_UNORM_PACK16:
-		case VK_FORMAT_B5G6R5_UNORM_PACK16:
-		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
-		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:
-		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R8_UNORM:
-		case VK_FORMAT_R8_SNORM:
-		case VK_FORMAT_R8_USCALED:
-		case VK_FORMAT_R8_SSCALED:
-		case VK_FORMAT_R8_UINT:
-		case VK_FORMAT_R8_SINT:
-		case VK_FORMAT_R8_SRGB:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 1 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R8G8_UNORM:
-		case VK_FORMAT_R8G8_SNORM:
-		case VK_FORMAT_R8G8_USCALED:
-		case VK_FORMAT_R8G8_SSCALED:
-		case VK_FORMAT_R8G8_UINT:
-		case VK_FORMAT_R8G8_SINT:
-		case VK_FORMAT_R8G8_SRGB:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R8G8B8_UNORM:
-		case VK_FORMAT_R8G8B8_SNORM:
-		case VK_FORMAT_R8G8B8_USCALED:
-		case VK_FORMAT_R8G8B8_SSCALED:
-		case VK_FORMAT_R8G8B8_UINT:
-		case VK_FORMAT_R8G8B8_SINT:
-		case VK_FORMAT_R8G8B8_SRGB:
-		case VK_FORMAT_B8G8R8_UNORM:
-		case VK_FORMAT_B8G8R8_SNORM:
-		case VK_FORMAT_B8G8R8_USCALED:
-		case VK_FORMAT_B8G8R8_SSCALED:
-		case VK_FORMAT_B8G8R8_UINT:
-		case VK_FORMAT_B8G8R8_SINT:
-		case VK_FORMAT_B8G8R8_SRGB:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 3 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R8G8B8A8_UNORM:
-		case VK_FORMAT_R8G8B8A8_SNORM:
-		case VK_FORMAT_R8G8B8A8_USCALED:
-		case VK_FORMAT_R8G8B8A8_SSCALED:
-		case VK_FORMAT_R8G8B8A8_UINT:
-		case VK_FORMAT_R8G8B8A8_SINT:
-		case VK_FORMAT_R8G8B8A8_SRGB:
-		case VK_FORMAT_B8G8R8A8_UNORM:
-		case VK_FORMAT_B8G8R8A8_SNORM:
-		case VK_FORMAT_B8G8R8A8_USCALED:
-		case VK_FORMAT_B8G8R8A8_SSCALED:
-		case VK_FORMAT_B8G8R8A8_UINT:
-		case VK_FORMAT_B8G8R8A8_SINT:
-		case VK_FORMAT_B8G8R8A8_SRGB:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:
-		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:
-		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:
-		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:
-		case VK_FORMAT_A8B8G8R8_UINT_PACK32:
-		case VK_FORMAT_A8B8G8R8_SINT_PACK32:
-		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
-		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:
-		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:
-		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:
-		case VK_FORMAT_A2R10G10B10_UINT_PACK32:
-		case VK_FORMAT_A2R10G10B10_SINT_PACK32:
-		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
-		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:
-		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:
-		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:
-		case VK_FORMAT_A2B10G10R10_UINT_PACK32:
-		case VK_FORMAT_A2B10G10R10_SINT_PACK32:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R16_UNORM:
-		case VK_FORMAT_R16_SNORM:
-		case VK_FORMAT_R16_USCALED:
-		case VK_FORMAT_R16_SSCALED:
-		case VK_FORMAT_R16_UINT:
-		case VK_FORMAT_R16_SINT:
-		case VK_FORMAT_R16_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R16G16_UNORM:
-		case VK_FORMAT_R16G16_SNORM:
-		case VK_FORMAT_R16G16_USCALED:
-		case VK_FORMAT_R16G16_SSCALED:
-		case VK_FORMAT_R16G16_UINT:
-		case VK_FORMAT_R16G16_SINT:
-		case VK_FORMAT_R16G16_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R16G16B16_UNORM:
-		case VK_FORMAT_R16G16B16_SNORM:
-		case VK_FORMAT_R16G16B16_USCALED:
-		case VK_FORMAT_R16G16B16_SSCALED:
-		case VK_FORMAT_R16G16B16_UINT:
-		case VK_FORMAT_R16G16B16_SINT:
-		case VK_FORMAT_R16G16B16_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 6 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R16G16B16A16_UNORM:
-		case VK_FORMAT_R16G16B16A16_SNORM:
-		case VK_FORMAT_R16G16B16A16_USCALED:
-		case VK_FORMAT_R16G16B16A16_SSCALED:
-		case VK_FORMAT_R16G16B16A16_UINT:
-		case VK_FORMAT_R16G16B16A16_SINT:
-		case VK_FORMAT_R16G16B16A16_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R32_UINT:
-		case VK_FORMAT_R32_SINT:
-		case VK_FORMAT_R32_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R32G32_UINT:
-		case VK_FORMAT_R32G32_SINT:
-		case VK_FORMAT_R32G32_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R32G32B32_UINT:
-		case VK_FORMAT_R32G32B32_SINT:
-		case VK_FORMAT_R32G32B32_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 12 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R32G32B32A32_UINT:
-		case VK_FORMAT_R32G32B32A32_SINT:
-		case VK_FORMAT_R32G32B32A32_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R64_UINT:
-		case VK_FORMAT_R64_SINT:
-		case VK_FORMAT_R64_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R64G64_UINT:
-		case VK_FORMAT_R64G64_SINT:
-		case VK_FORMAT_R64G64_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R64G64B64_UINT:
-		case VK_FORMAT_R64G64B64_SINT:
-		case VK_FORMAT_R64G64B64_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 24 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_R64G64B64A64_UINT:
-		case VK_FORMAT_R64G64B64A64_SINT:
-		case VK_FORMAT_R64G64B64A64_SFLOAT:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 32 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
-		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_D16_UNORM:
-			pFormatSize->flags = VK_FORMAT_SIZE_DEPTH_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 2 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_X8_D24_UNORM_PACK32:
-			pFormatSize->flags = VK_FORMAT_SIZE_PACKED_BIT | VK_FORMAT_SIZE_DEPTH_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_D32_SFLOAT:
-			pFormatSize->flags = VK_FORMAT_SIZE_DEPTH_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_S8_UINT:
-			pFormatSize->flags = VK_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 1 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_D16_UNORM_S8_UINT:
-			pFormatSize->flags = VK_FORMAT_SIZE_DEPTH_BIT | VK_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 3 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_D24_UNORM_S8_UINT:
-			pFormatSize->flags = VK_FORMAT_SIZE_DEPTH_BIT | VK_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 4 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_D32_SFLOAT_S8_UINT:
-			pFormatSize->flags = VK_FORMAT_SIZE_DEPTH_BIT | VK_FORMAT_SIZE_STENCIL_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:
-		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
-		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:
-		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_BC2_UNORM_BLOCK:
-		case VK_FORMAT_BC2_SRGB_BLOCK:
-		case VK_FORMAT_BC3_UNORM_BLOCK:
-		case VK_FORMAT_BC3_SRGB_BLOCK:
-		case VK_FORMAT_BC4_UNORM_BLOCK:
-		case VK_FORMAT_BC4_SNORM_BLOCK:
-		case VK_FORMAT_BC5_UNORM_BLOCK:
-		case VK_FORMAT_BC5_SNORM_BLOCK:
-		case VK_FORMAT_BC6H_UFLOAT_BLOCK:
-		case VK_FORMAT_BC6H_SFLOAT_BLOCK:
-		case VK_FORMAT_BC7_UNORM_BLOCK:
-		case VK_FORMAT_BC7_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
-		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
-		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
-		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 8 * 8;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
-		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
-		case VK_FORMAT_EAC_R11_UNORM_BLOCK:
-		case VK_FORMAT_EAC_R11_SNORM_BLOCK:
-		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
-		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 4;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 4;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 5;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 6;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 8;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 5;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 6;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK: 
-		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 8;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 10;
-			pFormatSize->blockHeight = 10;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 12;
-			pFormatSize->blockHeight = 10;
-			pFormatSize->blockDepth = 1;
-			break;
-		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
-		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
-			pFormatSize->flags = VK_FORMAT_SIZE_COMPRESSED_BIT;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 16 * 8;
-			pFormatSize->blockWidth = 12;
-			pFormatSize->blockHeight = 12;
-			pFormatSize->blockDepth = 1;
-			break;
-		default:
-			pFormatSize->flags = 0;
-			pFormatSize->paletteSizeInBits = 0;
-			pFormatSize->blockSizeInBits = 0 * 8;
-			pFormatSize->blockWidth = 1;
-			pFormatSize->blockHeight = 1;
-			pFormatSize->blockDepth = 1;
-			break;
-	}
-}
-
-#endif // !VK_FORMAT_H
diff --git a/external/KTX-Software-master/lib/vk_funclist.inl b/external/KTX-Software-master/lib/vk_funclist.inl
deleted file mode 100644
index 80c23c9..0000000
--- a/external/KTX-Software-master/lib/vk_funclist.inl
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab textwidth=70: */
-
-/*
- * ©2017 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file vk_funclist.h
- * @~English
- *
- * @brief List of Vulkan functions used by libktx.
- */
-
-VK_FUNCTION(vkAllocateCommandBuffers)
-VK_FUNCTION(vkAllocateMemory)
-VK_FUNCTION(vkBeginCommandBuffer)
-VK_FUNCTION(vkBindBufferMemory)
-VK_FUNCTION(vkBindImageMemory)
-VK_FUNCTION(vkCmdBlitImage)
-VK_FUNCTION(vkCmdCopyBufferToImage)
-VK_FUNCTION(vkCmdPipelineBarrier)
-VK_FUNCTION(vkCreateBuffer)
-VK_FUNCTION(vkCreateFence)
-VK_FUNCTION(vkCreateImage)
-VK_FUNCTION(vkDestroyBuffer)
-VK_FUNCTION(vkDestroyFence)
-VK_FUNCTION(vkDestroyImage)
-VK_FUNCTION(vkEndCommandBuffer)
-VK_FUNCTION(vkFreeCommandBuffers)
-VK_FUNCTION(vkFreeMemory)
-VK_FUNCTION(vkGetBufferMemoryRequirements)
-VK_FUNCTION(vkGetImageMemoryRequirements)
-VK_FUNCTION(vkGetImageSubresourceLayout)
-VK_FUNCTION(vkGetPhysicalDeviceImageFormatProperties)
-VK_FUNCTION(vkGetPhysicalDeviceFormatProperties)
-VK_FUNCTION(vkGetPhysicalDeviceMemoryProperties)
-VK_FUNCTION(vkMapMemory)
-VK_FUNCTION(vkQueueSubmit)
-VK_FUNCTION(vkQueueWaitIdle)
-VK_FUNCTION(vkUnmapMemory)
-VK_FUNCTION(vkWaitForFences)
diff --git a/external/KTX-Software-master/lib/vk_funcs.c b/external/KTX-Software-master/lib/vk_funcs.c
deleted file mode 100644
index 7d75053..0000000
--- a/external/KTX-Software-master/lib/vk_funcs.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab textwidth=70: */
-
-/*
- * ©2017 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file vk_funcs.c
- * @~English
- *
- * @brief Retrieve Vulkan function pointers needed by libktx
- */
-
-#if defined(KTX_USE_FUNCPTRS_FOR_VULKAN)
-
-#define UNIX 0
-#define MACOS 0
-#define WINDOWS 0
-
-#if defined(_WIN32)
-#undef WINDOWS
-#define WINDOWS 1
-#endif
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__)
-#undef UNIX
-#define UNIX 1
-#endif
-#if defined(linux) || defined(__linux) || defined(__linux__)
-#undef UNIX
-#define UNIX 1
-#endif
-#if defined(__APPLE__) && defined(__x86_64__)
-#undef MACOS
-#define MACOS 1
-#endif
-
-#if (IOS + MACOS + UNIX + WINDOWS) > 1
-#error "Multiple OS\'s defined"
-#endif 
-
-#if WINDOWS
-#define WINDOWS_LEAN_AND_MEAN
-#include <windows.h>
-#else
-#include <dlfcn.h>
-#endif
-#include "ktx.h"
-#include "vk_funcs.h"
-
-#if WINDOWS
-HMODULE ktxVulkanLibary;
-#define LoadLibrary LoadLibrary
-#define LoadProcAddr GetProcAddress
-#elif MACOS || UNIX
-#define LoadLibrary dlopen
-#define LoadProcAddr dlsym
-void* ktxVulkanLibrary;
-#else
-#error "Don\'t know how to load symbols on this OS."
-#endif
-
-#if WINDOWS
-#define VULKANLIB "vulkan-1.dll"
-#elif MACOS
-#define VULKANLIB "vulkan.framework/vulkan"
-#elif UNIX
-#define VULKANLIB "libvulkan.so"
-#endif
-
-static PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
-
-/* Define pointers for functions libktx is using. */
-#define VK_FUNCTION(fun) PFN_##fun ktx_##fun;
-
-#include "vk_funclist.inl"
-
-#undef VK_FUNCTION
-
-#if 0
-// The Vulkan spec. recommends using vkGetInstanceProcAddr over dlsym
-// (or whatever). Doing so would require a backward incompatible
-// change to the libktx API to provide the VkInstance. We have no
-// choice but dlsym. We can't use vkGetDeviceProcAddr because libktx
-// also uses none-device-level functions.
-#define VK_FUNCTION(fun)                                                     \
-  if ( !(ktx_##fun = (PFN_##fun)vkGetInstanceProcAddr(instance, #fun )) ) {  \
-    fprintf(stderr, "Could not load Vulkan command: %s!\n", #fun);          \
-    return KTX_FALSE;                                             \
-  }
-#else
-#if defined(__GNUC__)
-// This strange casting is because dlsym returns a void* thus is not
-// compatible with ISO C which forbids conversion of object pointers
-// to function pointers. The cast masks the conversion from the
-// compiler thus no warning even though -pedantic is set. Since the
-// platform supports dlsym, conversion to function pointers must
-// work, despite the mandated ISO C warning.
-#define VK_FUNCTION(fun)                                                   \
-  if ( !(*(void **)(&ktx_##fun) = LoadProcAddr(ktxVulkanLibrary, #fun)) ) {\
-    fprintf(stderr, "Could not load Vulkan command: %s!\n", #fun);         \
-    return KTX_FALSE;                                                      \
-  }
-#else
-#define VK_FUNCTION(fun)                                                   \
-  if ( !(ktx_##fun = (PFN_##fun)LoadProcAddr(ktxVulkanLibrary, #fun)) ) {  \
-    fprintf(stderr, "Could not load Vulkan command: %s!\n", #fun);         \
-    return KTX_FALSE;                                                      \
-  }
-#endif
-#endif
-
-ktx_bool_t
-ktxVulkanLoadLibrary(void)
-{
-    if (ktxVulkanLibrary)
-        return KTX_TRUE;
-
-    ktxVulkanLibrary = LoadLibrary(VULKANLIB, RTLD_LAZY);
-    if (ktxVulkanLibrary == NULL) {
-        fprintf(stderr, "Could not load Vulkan library.\n");
-        return(KTX_FALSE);
-    }
-
-#if 0
-    vkGetInstanceProcAddr =
-            (PFN_vkGetInstanceProcAddr)LoadProcAddr(ktxVulkanLibrary,
-                                                  "vkGetInstanceProcAddr");
-    if (!vkGetInstanceProcAddr) {
-       fprintf(stderr, "Could not load Vulkan command: %s!\n",
-               "vkGetInstanceProcAddr");
-       return(KTX_FALSE);
-    }
-#endif
-
-#include "vk_funclist.inl"
-
-    return KTX_TRUE;
-}
-
-#undef VK_FUNCTION
-
-#else
-
-extern
-#if defined(__GNUC__)
-__attribute__((unused))
-#endif
-int keepISOCompilersHappy;
-
-#endif /* KTX_USE_FUNCPTRS_FOR_VULKAN */
diff --git a/external/KTX-Software-master/lib/vk_funcs.h b/external/KTX-Software-master/lib/vk_funcs.h
deleted file mode 100644
index 07ea0c2..0000000
--- a/external/KTX-Software-master/lib/vk_funcs.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab textwidth=70: */
-
-/*
- * ©2017 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file vk_funcs.h
- * @~English
- *
- * @brief Declare pointers for Vulkan functions.
- *
- * Dynamically retrieving pointers avoids apps having to make sure a
- * Vulkan library is availablei when using a shared libktx, even if
- * not using libktx's Vulkan loader.
- */
-
-#ifndef _VK_FUNCS_H_
-#define _VK_FUNCS_H_
-
-#if defined(KTX_USE_FUNCPTRS_FOR_VULKAN)
-#define VK_NO_PROTOTYPES
-#endif
-
-#include <vulkan/vulkan.h>
-#include "ktx.h"
-
-#if defined(KTX_USE_FUNCPTRS_FOR_VULKAN)
-
-#if defined(_WIN32)
-extern HMODULE ktxVulkanLibary;
-#else
-extern void* ktxVulkanLibrary;
-#endif
-
-extern ktx_bool_t ktxVulkanLoadLibrary(void);
-
-/* Declare pointers for functions libktx is using. */
-#define VK_FUNCTION(fun) extern PFN_##fun ktx_##fun;
-
-#include "vk_funclist.inl"
-
-#undef VK_FUNCTION
-
-/*
- * Define prefixed names to prevent collisions with other libraries or apps
- * finding our pointers when searching the module for function addresses.
- */
-#define vkAllocateCommandBuffers ktx_vkAllocateCommandBuffers
-#define vkAllocateMemory ktx_vkAllocateMemory
-#define vkBeginCommandBuffer ktx_vkBeginCommandBuffer
-#define vkBindBufferMemory ktx_vkBindBufferMemory
-#define vkBindImageMemory ktx_vkBindImageMemory
-#define vkCmdBlitImage ktx_vkCmdBlitImage
-#define vkCmdCopyBufferToImage ktx_vkCmdCopyBufferToImage
-#define vkCmdPipelineBarrier ktx_vkCmdPipelineBarrier
-#define vkCreateBuffer ktx_vkCreateBuffer
-#define vkCreateFence ktx_vkCreateFence
-#define vkCreateImage ktx_vkCreateImage
-#define vkDestroyBuffer ktx_vkDestroyBuffer
-#define vkDestroyFence ktx_vkDestroyFence
-#define vkDestroyImage ktx_vkDestroyImage
-#define vkEndCommandBuffer ktx_vkEndCommandBuffer
-#define vkFreeCommandBuffers ktx_vkFreeCommandBuffers
-#define vkFreeMemory ktx_vkFreeMemory
-#define vkGetBufferMemoryRequirements ktx_vkGetBufferMemoryRequirements
-#define vkGetImageMemoryRequirements ktx_vkGetImageMemoryRequirements
-#define vkGetImageSubresourceLayout ktx_vkGetImageSubresourceLayout
-#define vkGetPhysicalDeviceImageFormatProperties ktx_vkGetPhysicalDeviceImageFormatProperties
-#define vkGetPhysicalDeviceFormatProperties ktx_vkGetPhysicalDeviceFormatProperties
-#define vkGetPhysicalDeviceMemoryProperties ktx_vkGetPhysicalDeviceMemoryProperties
-#define vkMapMemory ktx_vkMapMemory
-#define vkQueueSubmit ktx_vkQueueSubmit
-#define vkQueueWaitIdle ktx_vkQueueWaitIdle
-#define vkUnmapMemory ktx_vkUnmapMemory
-#define vkWaitForFences ktx_vkWaitForFences
-
-#undef VK_FUNCTION
-
-#endif /* KTX_USE_FUNCPTRS_FOR_VULKAN */
-
-#endif /* _VK_FUNCS_H_ */
-
diff --git a/external/KTX-Software-master/lib/vkloader.c b/external/KTX-Software-master/lib/vkloader.c
deleted file mode 100644
index 9916ce2..0000000
--- a/external/KTX-Software-master/lib/vkloader.c
+++ /dev/null
@@ -1,1444 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/*
- * ©2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-/**
- * @internal
- * @file
- * @~English
- *
- * @brief Functions for instantiating Vulkan textures from KTX files.
- *
- * @author Mark Callow, Edgewise Consulting
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <assert.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if defined(KTX_USE_FUNCPTRS_FOR_VULKAN)
-#include "vk_funcs.h"   // Must be included before ktxvulkan.h.
-#endif
-#include "ktxvulkan.h"
-#include "ktxint.h"
-#include "vk_format.h"
-
-// Macro to check and display Vulkan return results.
-// Use when the only possible errors are caused by invalid usage by this loader.
-#if defined(_DEBUG)
-#define VK_CHECK_RESULT(f)                                                  \
-{                                                                           \
-    VkResult res = (f);                                                     \
-    if (res != VK_SUCCESS)                                                  \
-    {                                                                       \
-        /* XXX Find an errorString function. */                             \
-        fprintf(stderr, "Fatal error in ktxLoadVkTexture*: "                \
-                "VkResult is \"%d\" in %s at line %d\n",                    \
-                res, __FILE__, __LINE__);                                   \
-        assert(res == VK_SUCCESS);                                          \
-    }                                                                       \
-}
-#else
-#define VK_CHECK_RESULT(f) ((void)f)
-#endif
-
-#define ARRAY_LEN(a) (sizeof(a) / sizeof(a[0]))
-
-#define DEFAULT_FENCE_TIMEOUT 100000000000
-#define VK_FLAGS_NONE 0
-
-static void
-setImageLayout(
-    VkCommandBuffer cmdBuffer,
-    VkImage image,
-    VkImageLayout oldLayout,
-    VkImageLayout newLayout,
-    VkImageSubresourceRange subresourceRange);
-
-static void
-generateMipmaps(ktxVulkanTexture* vkTexture, ktxVulkanDeviceInfo* vdi,
-                VkFilter filter, VkImageLayout initialLayout);
-
-/**
- * @defgroup ktx_vkloader Vulkan Texture Image Loader
- * @brief Create texture images on a Vulkan device.
- * @{
- */
-
-/**
- * @example vkload.cpp
- * This shows how to create and load a Vulkan image using the Vulkan texture
- * image loading functions.
- */
-
-/**
- * @memberof ktxVulkanDeviceInfo
- * @~English
- * @brief Create a ktxVulkanDeviceInfo object.
- * 
- * Allocates CPU memory for a ktxVulkanDeviceInfo object then calls
- * ktxVulkanDeviceInfo_construct(). See it for documentation of the
- * parameters.
- *
- * @return a pointer to the constructed ktxVulkanDeviceInfo.
- *
- * @sa ktxVulkanDeviceInfo_construct(), ktxVulkanDeviceInfo_destroy()
- */
-ktxVulkanDeviceInfo*
-ktxVulkanDeviceInfo_Create(VkPhysicalDevice physicalDevice, VkDevice device,
-                           VkQueue queue, VkCommandPool cmdPool,
-                           const VkAllocationCallbacks* pAllocator)
-{
-    ktxVulkanDeviceInfo* newvdi;
-    newvdi = (ktxVulkanDeviceInfo*)malloc(sizeof(ktxVulkanDeviceInfo));
-    if (newvdi != NULL) {
-        if (ktxVulkanDeviceInfo_Construct(newvdi, physicalDevice, device,
-                                    queue, cmdPool, pAllocator) != KTX_SUCCESS)
-        {
-            free(newvdi);
-            newvdi = 0;
-        }
-    }
-    return newvdi;
-}
-
-/**
- * @memberof ktxVulkanDeviceInfo
- * @~English
- * @brief Construct a ktxVulkanDeviceInfo object.
- *
- * Records the device information, allocates a command buffer that will be
- * used to transfer image data to the Vulkan device and retrieves the physical
- * device memory properties for ease of use when allocating device memory for
- * the images.
- *
- * Pass a valid ktxVulkanDeviceInfo* to any Vulkan KTX image loading
- * function to provide it with the information.
- *
- * @param  This            pointer to the ktxVulkanDeviceInfo object to
- *                        initialize.
- * @param  physicalDevice handle of the Vulkan physical device.
- * @param  device         handle of the Vulkan logical device.
- * @param  queue          handle of the Vulkan queue.
- * @param  cmdPool        handle of the Vulkan command pool.
- * @param  pAllocator     pointer to the allocator to use for the image
- *                        memory. If NULL, the default allocator will be used.
- *
- * @returns KTX_SUCCESS on success, KTX_OUT_OF_MEMORY if a command buffer could
- *          not be allocated.
- *
- * @sa ktxVulkanDeviceInfo_destruct()
- */
-KTX_error_code
-ktxVulkanDeviceInfo_Construct(ktxVulkanDeviceInfo* This,
-                              VkPhysicalDevice physicalDevice, VkDevice device,
-                              VkQueue queue, VkCommandPool cmdPool,
-                              const VkAllocationCallbacks* pAllocator)
-{
-    VkCommandBufferAllocateInfo cmdBufInfo = {
-        .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
-    };
-    VkResult result;
-
-#if defined(KTX_USE_FUNCPTRS_FOR_VULKAN)
-    // Delay loading not supported so must do it ourselves.
-    if (!ktxVulkanLibrary) {
-        if (!ktxVulkanLoadLibrary())
-            // Normal use is for this constructor to be called by an application
-            // that has completed Vulkan initialization. In that case the only
-            // cause for failure would be an incompatible in the version of libvulkan
-            // that is loaded. The only other cause would be an application calling
-            // Vulkan functions without having initialized Vulkan.
-            //
-            // In these cases, an abort along with the messages sent to stderr by
-            // ktxVulkanLoadLibrary is sufficient as released applications should
-            // never suffer these.
-            abort();
-    }
-#endif
-
-    This->physicalDevice = physicalDevice;
-    This->device = device;
-    This->queue = queue;
-    This->cmdPool = cmdPool;
-    This->pAllocator = pAllocator;
-    vkGetPhysicalDeviceMemoryProperties(physicalDevice,
-                                        &This->deviceMemoryProperties);
-
-    // Use a separate command buffer for texture loading. Needed for
-    // submitting image barriers and converting tilings.
-    cmdBufInfo.commandPool = cmdPool;
-    cmdBufInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
-    cmdBufInfo.commandBufferCount = 1;
-    result = vkAllocateCommandBuffers(device, &cmdBufInfo, &This->cmdBuffer);
-    if (result != VK_SUCCESS) {
-        return KTX_OUT_OF_MEMORY; // XXX Consider an equivalent to pGlError
-    }
-    return KTX_SUCCESS;
-}
-
-/**
- * @memberof ktxVulkanDeviceInfo
- * @~English
- * @brief Destruct a ktxVulkanDeviceInfo object.
- *
- * Frees the command buffer.
- *
- * @param This pointer to the ktxVulkanDeviceInfo to destruct.
- */
-void
-ktxVulkanDeviceInfo_Destruct(ktxVulkanDeviceInfo* This)
-{
-    vkFreeCommandBuffers(This->device, This->cmdPool, 1,
-                         &This->cmdBuffer);
-}
-
-/**
- * @memberof ktxVulkanDeviceInfo
- * @~English
- * @brief Destroy a ktxVulkanDeviceInfo object.
- *
- * Calls ktxVulkanDeviceInfo_destruct() then frees the ktxVulkanDeviceInfo.
- *
- * @param This pointer to the ktxVulkanDeviceInfo to destroy.
- */
-void
-ktxVulkanDeviceInfo_Destroy(ktxVulkanDeviceInfo* This)
-{
-    assert(This != NULL);
-    ktxVulkanDeviceInfo_Destruct(This);
-    free(This);
-}
-
-/* Get appropriate memory type index for a memory allocation. */
-static uint32_t
-ktxVulkanDeviceInfo_getMemoryType(ktxVulkanDeviceInfo* This,
-                                  uint32_t typeBits, VkFlags properties)
-{
-    for (uint32_t i = 0; i < 32; i++)
-    {
-        if ((typeBits & 1) == 1)
-        {
-            if ((This->deviceMemoryProperties.memoryTypes[i].propertyFlags & properties) == properties)
-            {
-                return i;
-            }
-        }
-        typeBits >>= 1;
-    }
-
-    // XXX : throw error
-    return 0;
-}
-
-//======================================================================
-//  ReadImages callbacks
-//======================================================================
-
-typedef struct user_cbdata_optimal {
-    VkBufferImageCopy* region; // Specify destination region in final image.
-    VkDeviceSize offset;       // Offset of current level in staging buffer
-    ktx_uint32_t numFaces;
-    ktx_uint32_t numLayers;
-    // The following are used only by optimalTilingPadCallback
-    ktx_uint8_t* dest;         // Pointer to mapped staging buffer.
-    ktx_uint32_t elementSize;
-    ktx_uint32_t numDimensions;
-#if defined(_DEBUG)
-    VkBufferImageCopy* regionsArrayEnd;
-#endif
-} user_cbdata_optimal;
-
-/**
- * @internal
- * @~English
- * @brief Callback for optimally tiled textures with no source row padding.
- *
- * Images must be preloaded into the staging buffer. Each iteration, i.e.
- * the value of @p faceLodSize must be for a complete mip level, regardless of
- * texture type. This should be used only with @c ktx_Texture_IterateLevels.
- *
- * Sets up a region to copy the data from the staging buffer to the final
- * image.
- *
- * @note @p pixels is not used.
- *
- * @copydetails PFNKTXITERCB
- */
-static KTX_error_code KTXAPIENTRY
-optimalTilingCallback(int miplevel, int face,
-                      int width, int height, int depth,
-                      ktx_uint32_t faceLodSize,
-                      void* pixels, void* userdata)
-{
-    user_cbdata_optimal* ud = (user_cbdata_optimal*)userdata;
-
-    // Set up copy to destination region in final image
-    assert(ud->region < ud->regionsArrayEnd);
-    ud->region->bufferOffset = ud->offset;
-    ud->offset += faceLodSize;
-    // These 2 are expressed in texels.
-    ud->region->bufferRowLength = 0;
-    ud->region->bufferImageHeight = 0;
-    ud->region->imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-    ud->region->imageSubresource.mipLevel = miplevel;
-    ud->region->imageSubresource.baseArrayLayer = face;
-    ud->region->imageSubresource.layerCount = ud->numLayers * ud->numFaces;
-    ud->region->imageOffset.x = 0;
-    ud->region->imageOffset.y = 0;
-    ud->region->imageOffset.z = 0;
-    ud->region->imageExtent.width = width;
-    ud->region->imageExtent.height = height;
-    ud->region->imageExtent.depth = depth;
-
-    ud->region += 1;
-
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Callback for optimally tiled textures with possible source row
- *        padding.
- *
- * Copies data to the staging buffer removing row padding, if necessary.
- * Increments the offset for destination of the next copy increasing it to an
- * appropriate common multiple of the element size and 4 to comply with Vulkan
- * valid usage. Finally sets up a region to copy the face/lod from the staging
- * buffer to the final image.
- *
- * This longer method is needed because row padding is different between
- * KTX (pad to 4) and Vulkan (none). Also region->bufferOffset, i.e. the start
- * of each image, has to be a multiple of 4 and also a multiple of the
- * element size.
- *
- * This should be used with @c ktx_Texture_IterateFaceLevels or
- * @c ktx_Texture_IterateLoadFaceLevels. Face-level iteration has been
- * selected to minimize the buffering needed between reading the file and
- * copying the data into the staging buffer. Obviously when
- * @c ktx_Texture_IterateFaceLevels is being used, this is a moot point.
-*
- * @copydetails PFNKTXITERCB
- */
-KTX_error_code KTXAPIENTRY
-optimalTilingPadCallback(int miplevel, int face,
-                         int width, int height, int depth,
-                         ktx_uint32_t faceLodSize,
-                         void* pixels, void* userdata)
-{
-    user_cbdata_optimal* ud = (user_cbdata_optimal*)userdata;
-    ktx_uint32_t rowPitch = width * ud->elementSize;
-
-    // Set bufferOffset in destination region in final image
-    assert(ud->region < ud->regionsArrayEnd);
-    ud->region->bufferOffset = ud->offset;
-
-    // Copy data into staging buffer
-    if (_KTX_PAD_UNPACK_ALIGN_LEN(rowPitch) == 0) {
-        // No padding. Can copy in bulk.
-        memcpy(ud->dest + ud->offset, pixels, faceLodSize);
-        ud->offset += faceLodSize;
-    } else {
-        // Must remove padding. Copy a row at a time.
-		ktx_uint32_t image, imageIterations;
-		ktx_int32_t row;
-        ktx_uint32_t rowPitch, paddedRowPitch;
-
-        if (ud->numDimensions == 3)
-            imageIterations = depth;
-        else if (ud->numLayers > 1)
-            imageIterations = ud->numLayers * ud->numFaces;
-        else
-            imageIterations = 1;
-        rowPitch = paddedRowPitch = width * ud->elementSize;
-        paddedRowPitch = _KTX_PAD_UNPACK_ALIGN(paddedRowPitch);
-        for (image = 0; image < imageIterations; image++) {
-            for (row = 0; row < height; row++) {
-                memcpy(ud->dest + ud->offset, pixels, rowPitch);
-                ud->offset += rowPitch;
-                pixels = (ktx_uint8_t*)pixels + paddedRowPitch;
-            }
-        }
-    }
-
-    // Round to needed multiples for next region, if necessary.
-    if (ud->offset % ud->elementSize != 0 || ud->offset % 4 != 0) {
-        // Only elementSizes of 1,2 and 3 will bring us here.
-        assert(ud->elementSize < 4 && ud->elementSize > 0);
-        ktx_uint32_t lcm = ud->elementSize == 3 ? 12 : 4;
-        // Can't use _KTX_PADN shortcut because 12 is not power of 2.
-        ud->offset = (ktx_uint32_t)(lcm * ceil((float)ud->offset / lcm));
-    }
-    // These 2 are expressed in texels; not suitable for dealing with padding.
-    ud->region->bufferRowLength = 0;
-    ud->region->bufferImageHeight = 0;
-    ud->region->imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-    ud->region->imageSubresource.mipLevel = miplevel;
-    ud->region->imageSubresource.baseArrayLayer = face;
-    ud->region->imageSubresource.layerCount = ud->numLayers * ud->numFaces;
-    ud->region->imageOffset.x = 0;
-    ud->region->imageOffset.y = 0;
-    ud->region->imageOffset.z = 0;
-    ud->region->imageExtent.width = width;
-    ud->region->imageExtent.height = height;
-    ud->region->imageExtent.depth = depth;
-
-    ud->region += 1;
-
-    return KTX_SUCCESS;
-}
-
-typedef struct user_cbdata_linear {
-    VkImage destImage;
-    VkDevice device;
-    uint8_t* dest;   // Pointer to mapped Image memory
-    ktxTexture* texture;
-} user_cbdata_linear;
-
-/**
- * @internal
- * @~English
- * @brief Callback for linear tiled textures with no source row padding.
- *
- * Copy the image data into the mapped Vulkan image.
- */
-KTX_error_code KTXAPIENTRY
-linearTilingCallback(int miplevel, int face,
-                      int width, int height, int depth,
-                      ktx_uint32_t faceLodSize,
-                      void* pixels, void* userdata)
-{
-    user_cbdata_linear* ud = (user_cbdata_linear*)userdata;
-    VkSubresourceLayout subResLayout;
-    VkImageSubresource subRes = {
-      .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-      .mipLevel = miplevel,
-      .arrayLayer = face
-    };
-
-    // Get sub resources layout. Includes row pitch, size,
-    // offsets, etc.
-    vkGetImageSubresourceLayout(ud->device, ud->destImage, &subRes,
-                                &subResLayout);
-    // Copies all images of the miplevel (for array & 3d) or a single face.
-    memcpy(ud->dest + subResLayout.offset, pixels, faceLodSize);
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Callback for linear tiled textures with possible source row
- *        padding.
- *
- * Need to use this long method as row padding is different
- * between KTX (pad to 4) and Vulkan (none).
- *
- * In theory this should work for the no-padding case too but it is much
- * clearer and a bit faster to use the simple callback above. It also avoids
- * potential Vulkan implementation bugs.
- *
- * I have seen weird subResLayout results with a BC2_UNORM texture in the only
- * real Vulkan implementation I have available (Mesa). The reported row & image
- * strides appears to be for an R8G8B8A8_UNORM of the same texel size.
- */
-KTX_error_code KTXAPIENTRY
-linearTilingPadCallback(int miplevel, int face,
-                      int width, int height, int depth,
-                      ktx_uint32_t faceLodSize,
-                      void* pixels, void* userdata)
-{
-    user_cbdata_linear* ud = (user_cbdata_linear*)userdata;
-    VkSubresourceLayout subResLayout;
-    VkImageSubresource subRes = {
-      .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-      .mipLevel = miplevel,
-      .arrayLayer = face
-    };
-    VkDeviceSize offset;
-    ktx_size_t   imageSize = 0;
-    VkDeviceSize imagePitch = 0;
-    ktx_uint32_t srcRowPitch;
-    ktx_uint32_t rowIterations;
-    ktx_uint32_t imageIterations;
-    ktx_uint32_t row, image;
-    ktx_uint8_t* pSrc;
-    ktx_size_t   copySize;
-
-    // Get sub resources layout. Includes row pitch, size,
-    // offsets, etc.
-    vkGetImageSubresourceLayout(ud->device, ud->destImage, &subRes,
-                                &subResLayout);
-
-    srcRowPitch = ktxTexture_GetRowPitch(ud->texture, miplevel);
-
-    if (subResLayout.rowPitch != srcRowPitch)
-        rowIterations = height;
-    else
-        rowIterations = 1;
-
-    // Arrays, including cube map arrays, or 3D textures
-    // Note from the Vulkan spec:
-    //  *  arrayPitch is undefined for images that were not
-    //     created as arrays.
-    //  *  depthPitch is defined only for 3D images.
-    if (ud->texture->numLayers > 1 || ud->texture->numDimensions == 3) {
-        imageSize = ktxTexture_GetImageSize(ud->texture, miplevel);
-        if (ud->texture->numLayers > 1) {
-            imagePitch = subResLayout.arrayPitch;
-            if (imagePitch != imageSize)
-                imageIterations
-                        = ud->texture->numLayers * ud->texture->numFaces;
-        } else {
-            imagePitch = subResLayout.depthPitch;
-            if (imagePitch != imageSize)
-                imageIterations = depth;
-        }
-        assert(imageSize <= imagePitch);
-    } else
-        imageIterations = 1;
-
-    if (rowIterations > 1) {
-        // Copy the minimum of srcRowPitch, the GL_UNPACK_ALIGNMENT padded size,
-        // and subResLayout.rowPitch.
-        if (subResLayout.rowPitch < srcRowPitch)
-            copySize = subResLayout.rowPitch;
-        else
-            copySize = srcRowPitch;
-    } else if (imageIterations > 1)
-        copySize = faceLodSize / imageIterations;
-    else
-        copySize = faceLodSize;
-
-    offset = subResLayout.offset;
-    // Copy image data to destImage via its mapped memory.
-    for (image = 0; image < imageIterations; image++) {
-        pSrc = (ktx_uint8_t*)pixels + imageSize * image;
-        for (row = 0; row < rowIterations; row++) {
-            memcpy(ud->dest + offset, pSrc, copySize);
-            offset += subResLayout.rowPitch;
-            pSrc += srcRowPitch;
-          }
-        offset += imagePitch;
-    }
-    return KTX_SUCCESS;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Create a Vulkan image object from a ktxTexture object.
- *
- * Creates a VkImage with @c VkFormat etc. matching the KTX data and uploads
- * the images. Also creates a VkImageView object for accessing the image.
- * Mipmaps will be generated if the @c ktxTexture's @c generateMipmaps
- * flag is set. Returns the handles of the created objects and information
- * about the texture in the @c ktxVulkanTexture pointed at by @p vkTexture.
- *
- * @p usageFlags and thus acceptable usage of the created image may be
- * augmented as follows:
- * - with @c VK_IMAGE_USAGE_TRANSFER_DST_BIT if @p tiling is
- *   @c VK_IMAGE_TILING_OPTIMAL
- * - with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>
- *   if @c generateMipmaps is set in the @c ktxTexture.
- *
- * Most Vulkan implementations support VK_IMAGE_TILING_LINEAR only for a very
- * limited number of formats and features. Generally VK_IMAGE_TILING_OPTIMAL is
- * preferred. The latter requires a staging buffer so will use more memory
- * during loading.
- *
- * @param[in] This          pointer to the ktxTexture from which to upload.
- * @param [in] vdi          pointer to a ktxVulkanDeviceInfo structure providing
- *                          information about the Vulkan device onto which to
- *                          load the texture.
- * @param [in,out] vkTexture pointer to a ktxVulkanTexture structure into which
- *                           the function writes information about the created
- *                           VkImage.
- * @param [in] tiling       type of tiling to use in the destination image
- *                          on the Vulkan device.
- * @param [in] usageFlags   a set of VkImageUsageFlags bits indicating the
- *                          intended usage of the destination image.
- * @param [in] finalLayout  a VkImageLayout value indicating the desired
- *                          final layout of the created image.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This, @p vdi or @p vkTexture is @c NULL.
- * @exception KTX_INVALID_OPERATION The ktxTexture contains neither images nor
- *                                  an active stream from which to read them.
- * @exception KTX_INVALID_OPERATION The combination of the ktxTexture's format,
- *                                  @p tiling and @p usageFlags is not supported
- *                                  by the physical device.
- * @exception KTX_INVALID_OPERATION Requested mipmap generation is not supported
- *                                  by the physical device for the combination
- *                                  of the ktxTexture's format and @p tiling.
- * @exception KTX_OUT_OF_MEMORY Sufficient memory could not be allocated
- *                              on either the CPU or the Vulkan device.
- */
-KTX_error_code
-ktxTexture_VkUploadEx(ktxTexture* This, ktxVulkanDeviceInfo* vdi,
-                      ktxVulkanTexture* vkTexture,
-                      VkImageTiling tiling,
-                      VkImageUsageFlags usageFlags,
-                      VkImageLayout finalLayout)
-{
-    KTX_error_code           kResult;
-    VkFilter                 blitFilter;
-    VkFormat                 vkFormat;
-    VkImageType              imageType;
-    VkImageViewType          viewType;
-    VkImageCreateFlags       createFlags = 0;
-    VkImageFormatProperties  imageFormatProperties;
-    VkResult                 vResult;
-    VkCommandBufferBeginInfo cmdBufBeginInfo = {
-        .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
-        .pNext = NULL
-    };
-    VkImageCreateInfo        imageCreateInfo = {
-         .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
-         .pNext = NULL
-    };
-    VkMemoryAllocateInfo     memAllocInfo = {
-        .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
-        .pNext = NULL,
-        .allocationSize = 0,
-        .memoryTypeIndex = 0
-    };
-    VkMemoryRequirements     memReqs;
-    ktx_uint32_t             numImageLayers, numImageLevels;
-    ktx_uint32_t elementSize = ktxTexture_GetElementSize(This);
-    ktx_bool_t               canUseFasterPath;
-
-    if (!vdi || !This || !vkTexture) {
-        return KTX_INVALID_VALUE;
-    }
-
-    if (!This->pData && !ktxTexture_isActiveStream(This)) {
-        /* Nothing to upload. */
-        return KTX_INVALID_OPERATION;
-    }
-
-    /* _ktxCheckHeader should have caught this. */
-    assert(This->numFaces == 6 ? This->numDimensions == 2 : VK_TRUE);
-
-    numImageLayers = This->numLayers;
-    if (This->isCubemap) {
-        numImageLayers *= 6;
-        createFlags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
-    }
-
-    switch (This->numDimensions) {
-      case 1:
-        imageType = VK_IMAGE_TYPE_1D;
-        viewType = This->isArray ?
-                        VK_IMAGE_VIEW_TYPE_1D_ARRAY : VK_IMAGE_VIEW_TYPE_1D;
-        break;
-      case 2:
-        imageType = VK_IMAGE_TYPE_2D;
-        if (This->isCubemap)
-            viewType = This->isArray ?
-                        VK_IMAGE_VIEW_TYPE_CUBE_ARRAY : VK_IMAGE_VIEW_TYPE_CUBE;
-        else
-            viewType = This->isArray ?
-                        VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
-        break;
-      case 3:
-        imageType = VK_IMAGE_TYPE_3D;
-        /* 3D array textures not supported in Vulkan. Attempts to create or
-         * load them should have been trapped long before this.
-         */
-        assert(!This->isArray);
-        viewType = VK_IMAGE_VIEW_TYPE_3D;
-        break;
-    }
-
-    vkFormat = vkGetFormatFromOpenGLInternalFormat(This->glInternalformat);
-    if (vkFormat == VK_FORMAT_UNDEFINED)
-        vkFormat = vkGetFormatFromOpenGLFormat(This->glFormat, This->glType);
-    if (vkFormat == VK_FORMAT_UNDEFINED) {
-        return KTX_INVALID_OPERATION;
-    }
-
-    /* Get device properties for the requested image format */
-    if (tiling == VK_IMAGE_TILING_OPTIMAL) {
-        // Ensure we can copy from staging buffer to image.
-        usageFlags |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-    }
-    if (This->generateMipmaps) {
-        // Ensure we can blit between levels.
-        usageFlags |= (VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
-    }
-    vResult = vkGetPhysicalDeviceImageFormatProperties(vdi->physicalDevice,
-                                                      vkFormat,
-                                                      imageType,
-                                                      tiling,
-                                                      usageFlags,
-                                                      createFlags,
-                                                      &imageFormatProperties);
-    if (vResult == VK_ERROR_FORMAT_NOT_SUPPORTED) {
-        return KTX_INVALID_OPERATION;
-    }
-
-    if (This->generateMipmaps) {
-        uint32_t max_dim;
-        VkFormatProperties    formatProperties;
-        VkFormatFeatureFlags  formatFeatureFlags;
-        VkFormatFeatureFlags  neededFeatures
-            = VK_FORMAT_FEATURE_BLIT_DST_BIT | VK_FORMAT_FEATURE_BLIT_SRC_BIT;
-        vkGetPhysicalDeviceFormatProperties(vdi->physicalDevice,
-                                            vkFormat,
-                                            &formatProperties);
-        assert(vResult == VK_SUCCESS);
-        if (tiling == VK_IMAGE_TILING_OPTIMAL)
-            formatFeatureFlags = formatProperties.optimalTilingFeatures;
-        else
-            formatFeatureFlags = formatProperties.linearTilingFeatures;
-
-        if ((formatFeatureFlags & neededFeatures) != neededFeatures)
-            return KTX_INVALID_OPERATION;
-
-        if (formatFeatureFlags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)
-            blitFilter = VK_FILTER_LINEAR;
-        else
-            blitFilter = VK_FILTER_NEAREST; // XXX INVALID_OP?
-
-        max_dim = MAX(MAX(This->baseWidth, This->baseHeight), This->baseDepth);
-        numImageLevels = (uint32_t)floor(log2(max_dim)) + 1;
-    } else {
-        numImageLevels = This->numLevels;
-    }
-
-    {
-        ktx_uint32_t actualRowPitch = ktxTexture_GetRowPitch(This, 0);
-        ktx_uint32_t tightRowPitch = elementSize * This->baseWidth;
-        // If the texture's images do not have any row padding, we can use a
-        // faster path. Only uncompressed textures might have padding.
-        //
-        // The first test in the if will match compressed textures, because
-        // they all have a block size that is a multiple of 4, as well as
-        // a class of uncompressed textures that will never need padding.
-        //
-        // The second test matches textures whose level 0 has no padding. Any
-        // texture whose block size is not a multiple of 4 will need padding
-        // at some miplevel even if level 0 does not. So, if more than 1 level
-        // exists, we must use the slower path.
-        //
-        // Note all elementSizes > 4 Will be a multiple of 4, so only
-        // elementSizes of 1, 2 & 3 are a concern here.
-        if (elementSize % 4 == 0  /* There'll be no padding at any level. */
-               /* There is no padding at level 0 and no other levels. */
-            || (This->numLevels == 1 && actualRowPitch == tightRowPitch))
-            canUseFasterPath = KTX_TRUE;
-        else
-            canUseFasterPath = KTX_FALSE;
-    }
-
-    vkTexture->width = This->baseWidth;
-    vkTexture->height = This->baseHeight;
-    vkTexture->depth = This->baseDepth;
-    vkTexture->imageLayout = finalLayout;
-    vkTexture->imageFormat = vkFormat;
-    vkTexture->levelCount = numImageLevels;
-    vkTexture->layerCount = numImageLayers;
-    vkTexture->viewType = viewType;
-
-    VK_CHECK_RESULT(vkBeginCommandBuffer(vdi->cmdBuffer, &cmdBufBeginInfo));
-
-    if (tiling == VK_IMAGE_TILING_OPTIMAL)
-    {
-        // Create a host-visible staging buffer that contains the raw image data
-        VkBuffer stagingBuffer;
-        VkDeviceMemory stagingMemory;
-        VkBufferImageCopy* copyRegions;
-        VkDeviceSize textureSize;
-        VkBufferCreateInfo bufferCreateInfo = {
-          .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
-          .pNext = NULL
-        };
-        VkImageSubresourceRange subresourceRange;
-        VkFence copyFence;
-        VkFenceCreateInfo fenceCreateInfo = {
-            .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
-            .pNext = NULL,
-            .flags = VK_FLAGS_NONE
-        };
-        VkSubmitInfo submitInfo = {
-            .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
-            .pNext = NULL
-        };
-        ktx_uint8_t* pMappedStagingBuffer;
-        ktx_uint32_t numCopyRegions;
-        user_cbdata_optimal cbData;
-
-
-        textureSize = ktxTexture_GetSize(This);
-        bufferCreateInfo.size = textureSize;
-        if (canUseFasterPath) {
-            /*
-             * Because all array layers and faces are the same size they can
-             * be copied in a single operation so there'll be 1 copy per mip
-             * level.
-             */
-            numCopyRegions = This->numLevels;
-        } else {
-            /*
-             * Have to copy all images individually into the staging
-             * buffer so we can place them at correct multiples of
-             * elementSize and 4 and also need a copy region per image
-             * in case they end up with padding between them.
-             */
-            numCopyRegions = This->isArray ? This->numLevels
-                                  : This->numLevels * This->numFaces;
-            /* 
-             * Add extra space to allow for possible padding described
-             * above. A bit ad-hoc but it's only a small amount of
-             * memory.
-             */
-            bufferCreateInfo.size += numCopyRegions * elementSize * 4;
-        }
-        copyRegions = (VkBufferImageCopy*)malloc(sizeof(VkBufferImageCopy)
-                                                   * numCopyRegions);
-        if (copyRegions == NULL) {
-            return KTX_OUT_OF_MEMORY;
-        }
-
-        // This buffer is used as a transfer source for the buffer copy
-        bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
-        bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-
-        VK_CHECK_RESULT(vkCreateBuffer(vdi->device, &bufferCreateInfo,
-                                       vdi->pAllocator, &stagingBuffer));
-
-        // Get memory requirements for the staging buffer (alignment,
-        // memory type bits)
-        vkGetBufferMemoryRequirements(vdi->device, stagingBuffer, &memReqs);
-
-        memAllocInfo.allocationSize = memReqs.size;
-        // Get memory type index for a host visible buffer
-        memAllocInfo.memoryTypeIndex = ktxVulkanDeviceInfo_getMemoryType(
-                vdi,
-                memReqs.memoryTypeBits,
-                VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
-              | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
-        );
-
-        vResult = vkAllocateMemory(vdi->device, &memAllocInfo,
-                                  vdi->pAllocator, &stagingMemory);
-        if (vResult != VK_SUCCESS) {
-            return KTX_OUT_OF_MEMORY;
-        }
-        VK_CHECK_RESULT(vkBindBufferMemory(vdi->device, stagingBuffer,
-                                           stagingMemory, 0));
-
-        VK_CHECK_RESULT(vkMapMemory(vdi->device, stagingMemory, 0,
-                                    memReqs.size, 0,
-                                    (void **)&pMappedStagingBuffer));
-
-        cbData.offset = 0;
-        cbData.region = copyRegions;
-        cbData.numFaces = This->numFaces;
-        cbData.numLayers = This->numLayers;
-        cbData.dest = pMappedStagingBuffer;
-        cbData.elementSize = elementSize;
-        cbData.numDimensions = This->numDimensions;
-#if defined(_DEBUG)
-        cbData.regionsArrayEnd = copyRegions + numCopyRegions;
-#endif
-        if (canUseFasterPath) {
-            // Bulk load the data to the staging buffer and iterate
-            // over levels.
-
-            if (This->pData) {
-                // Image data has already been loaded. Copy to staging
-                // buffer.
-                assert(This->dataSize <= memAllocInfo.allocationSize);
-                memcpy(pMappedStagingBuffer, This->pData, This->dataSize);
-            } else {
-                /* Load the image data directly into the staging buffer. */
-                /* The strange cast quiets an Xcode warning when building
-                 * for the Generic iOS Device where size_t is 32-bit even
-                 * when building for arm64. */
-                kResult = ktxTexture_LoadImageData(This,
-                                      pMappedStagingBuffer,
-                                      (ktx_size_t)memAllocInfo.allocationSize);
-                if (kResult != KTX_SUCCESS)
-                    return kResult;
-            }
-
-            // Iterate over mip levels to set up the copy regions.
-            kResult = ktxTexture_IterateLevels(This,
-                                               optimalTilingCallback,
-                                               &cbData);
-            // XXX Check for possible errors.
-        } else {
-            // Iterate over face-levels with callback that copies the
-            // face-levels to Vulkan-valid offsets in the staging buffer while
-            // removing padding. Using face-levels minimizes pre-staging-buffer
-            // buffering, in the event the data is not already loaded.
-            if (This->pData) {
-                kResult = ktxTexture_IterateLevelFaces(
-                                            This,
-                                            optimalTilingPadCallback,
-                                            &cbData);
-            } else {
-                kResult = ktxTexture_IterateLoadLevelFaces(
-                                            This,
-                                            optimalTilingPadCallback,
-                                            &cbData);
-                // XXX Check for possible errors.
-            }
-        }
-
-        vkUnmapMemory(vdi->device, stagingMemory);
-
-        // Create optimal tiled target image
-        imageCreateInfo.imageType = imageType;
-        imageCreateInfo.flags = createFlags;
-        imageCreateInfo.format = vkFormat;
-        // numImageLevels ensures enough levels for generateMipmaps.
-        imageCreateInfo.mipLevels = numImageLevels;
-        imageCreateInfo.arrayLayers = numImageLayers;
-        imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
-        imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
-        imageCreateInfo.usage = usageFlags;
-        imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-        imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
-        imageCreateInfo.extent.width = vkTexture->width;
-        imageCreateInfo.extent.height = vkTexture->height;
-        imageCreateInfo.extent.depth = vkTexture->depth;
-
-        VK_CHECK_RESULT(vkCreateImage(vdi->device, &imageCreateInfo,
-                                      vdi->pAllocator, &vkTexture->image));
-
-        vkGetImageMemoryRequirements(vdi->device, vkTexture->image, &memReqs);
-
-        memAllocInfo.allocationSize = memReqs.size;
-
-        memAllocInfo.memoryTypeIndex = ktxVulkanDeviceInfo_getMemoryType(
-                                          vdi, memReqs.memoryTypeBits,
-                                          VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
-        VK_CHECK_RESULT(vkAllocateMemory(vdi->device, &memAllocInfo,
-                                         vdi->pAllocator,
-                                         &vkTexture->deviceMemory));
-        VK_CHECK_RESULT(vkBindImageMemory(vdi->device, vkTexture->image,
-                                          vkTexture->deviceMemory, 0));
-
-        subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-        subresourceRange.baseMipLevel = 0;
-        subresourceRange.levelCount = This->numLevels;
-        subresourceRange.baseArrayLayer = 0;
-        subresourceRange.layerCount = numImageLayers;
-
-        // Image barrier to transition, possibly only the base level, image
-        // layout to TRANSFER_DST_OPTIMAL so it can be used as the copy
-        // destination.
-        setImageLayout(
-            vdi->cmdBuffer,
-            vkTexture->image,
-            VK_IMAGE_LAYOUT_UNDEFINED,
-            VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-            subresourceRange);
-
-        // Copy mip levels from staging buffer
-        vkCmdCopyBufferToImage(
-            vdi->cmdBuffer, stagingBuffer,
-            vkTexture->image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-            numCopyRegions, copyRegions
-            );
-
-        if (This->generateMipmaps) {
-            generateMipmaps(vkTexture, vdi,
-                            blitFilter, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
-        } else {
-            // Transition image layout to finalLayout after all mip levels
-            // have been copied.
-            // In this case numImageLevels == This->numLevels
-            //subresourceRange.levelCount = numImageLevels;
-            setImageLayout(
-                vdi->cmdBuffer,
-                vkTexture->image,
-                VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-                finalLayout,
-                subresourceRange);
-        }
-
-        // Submit command buffer containing copy and image layout commands
-        VK_CHECK_RESULT(vkEndCommandBuffer(vdi->cmdBuffer));
-
-        // Create a fence to make sure that the copies have finished before
-        // continuing
-        VK_CHECK_RESULT(vkCreateFence(vdi->device, &fenceCreateInfo,
-                                      vdi->pAllocator, &copyFence));
-
-        submitInfo.commandBufferCount = 1;
-        submitInfo.pCommandBuffers = &vdi->cmdBuffer;
-
-        VK_CHECK_RESULT(vkQueueSubmit(vdi->queue, 1, &submitInfo, copyFence));
-
-        VK_CHECK_RESULT(vkWaitForFences(vdi->device, 1, &copyFence,
-                                        VK_TRUE, DEFAULT_FENCE_TIMEOUT));
-
-        vkDestroyFence(vdi->device, copyFence, vdi->pAllocator);
-
-        // Clean up staging resources
-        vkFreeMemory(vdi->device, stagingMemory, vdi->pAllocator);
-        vkDestroyBuffer(vdi->device, stagingBuffer, vdi->pAllocator);
-    }
-    else
-    {
-        VkImage mappableImage;
-        VkDeviceMemory mappableMemory;
-        VkFence nullFence = { VK_NULL_HANDLE };
-        VkSubmitInfo submitInfo = {
-            .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
-            .pNext = NULL
-        };
-        user_cbdata_linear cbData;
-        PFNKTXITERCB callback;
-
-        imageCreateInfo.imageType = imageType;
-        imageCreateInfo.flags = createFlags;
-        imageCreateInfo.format = vkFormat;
-        imageCreateInfo.extent.width = vkTexture->width;
-        imageCreateInfo.extent.height = vkTexture->height;
-        imageCreateInfo.extent.depth = vkTexture->depth;
-        // numImageLevels ensures enough levels for generateMipmaps.
-        imageCreateInfo.mipLevels = numImageLevels;
-        imageCreateInfo.arrayLayers = numImageLayers;
-        imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
-        imageCreateInfo.tiling = VK_IMAGE_TILING_LINEAR;
-        imageCreateInfo.usage = usageFlags;
-        imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
-        imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED;
-
-        // Load mip map level 0 to linear tiling image
-        VK_CHECK_RESULT(vkCreateImage(vdi->device, &imageCreateInfo,
-                                      vdi->pAllocator, &mappableImage));
-
-        // Get memory requirements for this image
-        // like size and alignment
-        vkGetImageMemoryRequirements(vdi->device, mappableImage, &memReqs);
-        // Set memory allocation size to required memory size
-        memAllocInfo.allocationSize = memReqs.size;
-
-        // Get memory type that can be mapped to host memory
-        memAllocInfo.memoryTypeIndex = ktxVulkanDeviceInfo_getMemoryType(
-                vdi,
-                memReqs.memoryTypeBits,
-                VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
-
-        // Allocate host memory
-        vResult = vkAllocateMemory(vdi->device, &memAllocInfo, vdi->pAllocator,
-                                  &mappableMemory);
-        if (vResult != VK_SUCCESS) {
-            return KTX_OUT_OF_MEMORY;
-        }
-        VK_CHECK_RESULT(vkBindImageMemory(vdi->device, mappableImage,
-                                          mappableMemory, 0));
-
-        cbData.destImage = mappableImage;
-        cbData.device = vdi->device;
-        cbData.texture = This;
-        callback = canUseFasterPath ?
-                         linearTilingCallback : linearTilingPadCallback;
-
-        // Map image memory
-        VK_CHECK_RESULT(vkMapMemory(vdi->device, mappableMemory, 0,
-                        memReqs.size, 0, (void **)&cbData.dest));
-
-        // Iterate over images to copy texture data into mapped image memory.
-        if (ktxTexture_isActiveStream(This)) {
-            kResult = ktxTexture_IterateLoadLevelFaces(This,
-                                                       callback,
-                                                       &cbData);
-        } else {
-            kResult = ktxTexture_IterateLevelFaces(This,
-                                                   callback,
-                                                   &cbData);
-        }
-        // XXX Check for possible errors
-
-        vkUnmapMemory(vdi->device, mappableMemory);
-
-        // Linear tiled images can be directly used as textures.
-        vkTexture->image = mappableImage;
-        vkTexture->deviceMemory = mappableMemory;
-
-        if (This->generateMipmaps) {
-            generateMipmaps(vkTexture, vdi,
-                            blitFilter,
-                            VK_IMAGE_LAYOUT_PREINITIALIZED);
-        } else {
-            VkImageSubresourceRange subresourceRange;
-            subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-            subresourceRange.baseMipLevel = 0;
-            subresourceRange.levelCount = numImageLevels;
-            subresourceRange.baseArrayLayer = 0;
-            subresourceRange.layerCount = numImageLayers;
-
-           // Transition image layout to finalLayout.
-            setImageLayout(
-                vdi->cmdBuffer,
-                vkTexture->image,
-                VK_IMAGE_LAYOUT_PREINITIALIZED,
-                finalLayout,
-                subresourceRange);
-        }
-
-        // Submit command buffer containing image layout commands
-        VK_CHECK_RESULT(vkEndCommandBuffer(vdi->cmdBuffer));
-
-        submitInfo.waitSemaphoreCount = 0;
-        submitInfo.commandBufferCount = 1;
-        submitInfo.pCommandBuffers = &vdi->cmdBuffer;
-
-        VK_CHECK_RESULT(vkQueueSubmit(vdi->queue, 1, &submitInfo, nullFence));
-        VK_CHECK_RESULT(vkQueueWaitIdle(vdi->queue));
-    }
-    return KTX_SUCCESS;
-}
-
-/** @memberof ktxTexture
- * @~English
- * @brief Create a Vulkan image object from a ktxTexture object.
- *
- * Calls ktxTexture_VkUploadEx() with the most commonly used options:
- * VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_SAMPLED_BIT and
- * VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL.
- * 
- * @sa ktxTexture_VkUploadEx() for details and use that for complete
- *     control.
- */
-KTX_error_code
-ktxTexture_VkUpload(ktxTexture* texture, ktxVulkanDeviceInfo* vdi,
-                    ktxVulkanTexture *vkTexture)
-{
-    return ktxTexture_VkUploadEx(texture, vdi, vkTexture,
-                                 VK_IMAGE_TILING_OPTIMAL,
-                                 VK_IMAGE_USAGE_SAMPLED_BIT,
-                                 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
-}
-
-/** @memberof ktxTexture
- * @~English
- * @brief Return the VkFormat enum of a ktxTexture object.
- *
- * @return The VkFormat of the ktxTexture. May return VK_FORMAT_UNDEFINED if
- *         there is no mapping from the GL internalformat and format.
- */
-VkFormat
-ktxTexture_GetVkFormat(ktxTexture* This)
-{
-    VkFormat vkFormat;
-
-    vkFormat = vkGetFormatFromOpenGLInternalFormat(This->glInternalformat);
-    if (vkFormat == VK_FORMAT_UNDEFINED)
-        vkFormat = vkGetFormatFromOpenGLFormat(This->glFormat, This->glType);
-    return vkFormat;
-}
-
-//======================================================================
-//  Utilities
-//======================================================================
-
-/**
- * @internal
- * @~English
- * @brief Create an image memory barrier for changing the layout of an image.
- *
- * The barrier is placed in the passed command buffer. See the Vulkan spec.
- * chapter 11.4 "Image Layout" for details.
- */
-static void
-setImageLayout(
-    VkCommandBuffer cmdBuffer,
-    VkImage image,
-    VkImageLayout oldLayout,
-    VkImageLayout newLayout,
-    VkImageSubresourceRange subresourceRange)
-{
-    // Create an image barrier object
-    VkImageMemoryBarrier imageMemoryBarrier = {
-        .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-        .pNext = NULL,
-         // Some default values
-        .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-        .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED
-    };
-
-    imageMemoryBarrier.oldLayout = oldLayout;
-    imageMemoryBarrier.newLayout = newLayout;
-    imageMemoryBarrier.image = image;
-    imageMemoryBarrier.subresourceRange = subresourceRange;
-
-    // Source layouts (old)
-    // The source access mask controls actions to be finished on the old
-    // layout before it will be transitioned to the new layout.
-    switch (oldLayout)
-    {
-    case VK_IMAGE_LAYOUT_UNDEFINED:
-        // Image layout is undefined (or does not matter).
-        // Only valid as initial layout. No flags required.
-        imageMemoryBarrier.srcAccessMask = 0;
-        break;
-
-    case VK_IMAGE_LAYOUT_PREINITIALIZED:
-        // Image is preinitialized.
-        // Only valid as initial layout for linear images; preserves memory
-        // contents. Make sure host writes have finished.
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
-        // Image is a color attachment.
-        // Make sure writes to the color buffer have finished
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
-        // Image is a depth/stencil attachment.
-        // Make sure any writes to the depth/stencil buffer have finished.
-        imageMemoryBarrier.srcAccessMask
-                                = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
-        // Image is a transfer source.
-        // Make sure any reads from the image have finished
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
-        // Image is a transfer destination.
-        // Make sure any writes to the image have finished.
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
-        // Image is read by a shader.
-        // Make sure any shader reads from the image have finished
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT;
-        break;
-
-    default:
-        /* Value not used by callers, so not supported. */
-        assert(KTX_FALSE);
-    }
-
-    // Target layouts (new)
-    // The destination access mask controls the dependency for the new image
-    // layout.
-    switch (newLayout)
-    {
-    case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
-        // Image will be used as a transfer destination.
-        // Make sure any writes to the image have finished.
-        imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
-        // Image will be used as a transfer source.
-        // Make sure any reads from and writes to the image have finished.
-        imageMemoryBarrier.srcAccessMask |= VK_ACCESS_TRANSFER_READ_BIT;
-        imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
-        // Image will be used as a color attachment.
-        // Make sure any writes to the color buffer have finished.
-        imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
-        imageMemoryBarrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
-        // Image layout will be used as a depth/stencil attachment.
-        // Make sure any writes to depth/stencil buffer have finished.
-        imageMemoryBarrier.dstAccessMask
-                                = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
-        break;
-
-    case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
-        // Image will be read in a shader (sampler, input attachment).
-        // Make sure any writes to the image have finished.
-        if (imageMemoryBarrier.srcAccessMask == 0)
-        {
-            imageMemoryBarrier.srcAccessMask
-                    = VK_ACCESS_HOST_WRITE_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
-        }
-        imageMemoryBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
-        break;
-    default:
-        /* Value not used by callers, so not supported. */
-        assert(KTX_FALSE);
-    }
-
-    // Put barrier on top of pipeline.
-    VkPipelineStageFlags srcStageFlags = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
-    VkPipelineStageFlags destStageFlags = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
-
-    // Add the barrier to the passed command buffer
-    vkCmdPipelineBarrier(
-        cmdBuffer,
-        srcStageFlags,
-        destStageFlags,
-        0,
-        0, NULL,
-        0, NULL,
-        1, &imageMemoryBarrier);
-}
-
-/** @internal
- * @~English
- * @brief Generate mipmaps from base using @c VkCmdBlitImage.
- *
- * Mipmaps are generated by blitting level n from level n-1 as it should
- * be faster than the alternative of blitting all levels from the base level.
- *
- * After generation, the image is transitioned to the layout indicated by
- * @c vkTexture->imageLayout.
- *
- * @param[in] vkTexture     pointer to an object with information about the
- *                          image for which to generate mipmaps.
- * @param[in] vdi           pointer to an object with information about the
- *                          Vulkan device and command buffer to use.
- * @param[in] blitFilter    the type of filter to use in the @c VkCmdBlitImage.
- * @param[in] initialLayout the layout of the image on entry to the function.
- */
-static void
-generateMipmaps(ktxVulkanTexture* vkTexture, ktxVulkanDeviceInfo* vdi,
-                VkFilter blitFilter, VkImageLayout initialLayout)
-{
-    VkImageSubresourceRange subresourceRange;
-    memset(&subresourceRange, 0, sizeof(subresourceRange));
-    subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-    subresourceRange.baseMipLevel = 0;
-    subresourceRange.levelCount = 1;
-    subresourceRange.baseArrayLayer = 0;
-    subresourceRange.layerCount = vkTexture->layerCount;
-
-    // Transition base level to SRC_OPTIMAL for blitting.
-    setImageLayout(
-        vdi->cmdBuffer,
-        vkTexture->image,
-        initialLayout,
-        VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-        subresourceRange);
-
-    // Generate the mip chain
-    // ----------------------
-    // Blit level n from level n-1.
-    for (uint32_t i = 1; i < vkTexture->levelCount; i++)
-    {
-        VkImageBlit imageBlit;
-        memset(&imageBlit, 0, sizeof(imageBlit));
-
-        // Source
-        imageBlit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-        imageBlit.srcSubresource.layerCount = vkTexture->layerCount;
-        imageBlit.srcSubresource.mipLevel = i-1;
-        imageBlit.srcOffsets[1].x = MAX(1, vkTexture->width >> (i - 1));
-        imageBlit.srcOffsets[1].y = MAX(1, vkTexture->height >> (i - 1));
-        imageBlit.srcOffsets[1].z = MAX(1, vkTexture->depth >> (i - 1));;
-
-        // Destination
-        imageBlit.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-        imageBlit.dstSubresource.layerCount = 1;
-        imageBlit.dstSubresource.mipLevel = i;
-        imageBlit.dstOffsets[1].x = MAX(1, vkTexture->width >> i);
-        imageBlit.dstOffsets[1].y = MAX(1, vkTexture->height >> i);
-        imageBlit.dstOffsets[1].z = MAX(1, vkTexture->depth >> i);
-
-        VkImageSubresourceRange mipSubRange;
-        memset(&mipSubRange, 0, sizeof(mipSubRange));
-
-        mipSubRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-        mipSubRange.baseMipLevel = i;
-        mipSubRange.levelCount = 1;
-        mipSubRange.layerCount = vkTexture->layerCount;
-
-        // Transiton current mip level to transfer dest
-        setImageLayout(
-            vdi->cmdBuffer,
-            vkTexture->image,
-            VK_IMAGE_LAYOUT_UNDEFINED,
-            VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-            mipSubRange);
-
-        // Blit from previous level
-        vkCmdBlitImage(
-            vdi->cmdBuffer,
-            vkTexture->image,
-            VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-            vkTexture->image,
-            VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-            1,
-            &imageBlit,
-            blitFilter);
-
-        // Transiton current mip level to transfer source for read in
-        // next iteration.
-        setImageLayout(
-            vdi->cmdBuffer,
-            vkTexture->image,
-            VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-            VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-            mipSubRange);
-    }
-
-    // After the loop, all mip layers are in TRANSFER_SRC layout.
-    // Transition all to final layout.
-    subresourceRange.levelCount = vkTexture->levelCount;
-    setImageLayout(
-        vdi->cmdBuffer,
-        vkTexture->image,
-        VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-        vkTexture->imageLayout,
-        subresourceRange);
-}
-
-//======================================================================
-//  ktxVulkanTexture utilities
-//======================================================================
-
-/**
- * @memberof ktxVulkanTexture
- * @~English
- * @brief Destructor for the object returned when loading a texture image.
- *
- * Frees the Vulkan resources created when the texture image was loaded.
- *
- * @param vkTexture  pointer to the ktxVulkanTexture to be destructed.
- * @param device     handle to the Vulkan logical device to which the texture was
- *                   loaded.
- * @param pAllocator pointer to the allocator used during loading.
- */
-void
-ktxVulkanTexture_Destruct(ktxVulkanTexture* vkTexture, VkDevice device,
-                          const VkAllocationCallbacks* pAllocator)
-{
-    vkDestroyImage(device, vkTexture->image, pAllocator);
-    vkFreeMemory(device, vkTexture->deviceMemory, pAllocator);
-}
-
-/** @} */
diff --git a/external/KTX-Software-master/lib/writer.c b/external/KTX-Software-master/lib/writer.c
deleted file mode 100644
index 6c5166e..0000000
--- a/external/KTX-Software-master/lib/writer.c
+++ /dev/null
@@ -1,477 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/**
- * @internal
- * @file writer.c
- * @~English
- *
- * @brief Functions for creating KTX-format files from a set of images.
- *
- * @author Mark Callow, HI Corporation
- */
-
-/*
- * ©2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "ktx.h"
-#include "ktxint.h"
-#include "stream.h"
-#include "filestream.h"
-#include "memstream.h"
-
-/**
- * @defgroup writer Writer
- * @brief Write KTX-formatted data.
- * @{
- */
-
-/**
- * @internal
- * @memberof ktxTexture @private
- * @~English
- * @brief Set image for level, layer, faceSlice from a ktxStream source.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] level     mip level of the image to set.
- * @param[in] layer     array layer of the image to set.
- * @param[in] faceSlice cube map face or depth slice of the image to set.
- * @param[in] src       ktxStream pointer to the source.
- * @param[in] srcSize   size of the source image in bytes.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p src is NULL.
- * @exception KTX_INVALID_VALUE @p srcSize != the expected image size for the
- *                              specified level, layer & faceSlice.
- * @exception KTX_INVALID_OPERATION
- *                              No storage was allocated when the texture was
- *                              created.
- */
-KTX_error_code
-ktxTexture_setImageFromStream(ktxTexture* This, ktx_uint32_t level,
-                              ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                              ktxStream* src, ktx_size_t srcSize)
-{
-    ktx_uint32_t packedRowBytes, rowBytes, rowPadding, numRows;
-    ktx_size_t packedBytes, unpackedBytes;
-    ktx_size_t imageOffset;
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-    ktx_uint32_t faceLodPadding;
-#endif
-    
-    if (!This || !src)
-        return KTX_INVALID_VALUE;
-    
-    if (!This->pData)
-        return KTX_INVALID_OPERATION;
-    
-    ktxTexture_GetImageOffset(This, level, layer, faceSlice, &imageOffset);
-
-    if (This->isCompressed) {
-        packedBytes = ktxTexture_GetImageSize(This, level);
-        rowPadding = 0;
-        // These 2 are not used when rowPadding == 0. Quiets compiler warning.
-        packedRowBytes = 0;
-        rowBytes = 0;
-    } else {
-        ktxTexture_rowInfo(This, level, &numRows, &rowBytes, &rowPadding);
-        unpackedBytes = rowBytes * numRows;
-        if (rowPadding) {
-            packedRowBytes = rowBytes - rowPadding;
-            packedBytes = packedRowBytes * numRows;
-        } else {
-            packedRowBytes = rowBytes;
-            packedBytes = unpackedBytes;
-        }
-    }
-    
-    if (srcSize != packedBytes)
-        return KTX_INVALID_OPERATION;
-    // The above will catch a flagrantly invalid srcSize. This is an
-    // additional check of the internal calculations.
-    assert (imageOffset + srcSize <= This->dataSize);
-    
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-    faceLodPadding = _KTX_PAD4_LEN(faceLodSize);
-#endif
-    
-    if (rowPadding == 0) {
-        /* Can copy whole image at once */
-        src->read(src, This->pData + imageOffset, srcSize);
-    } else {
-        /* Copy the rows individually, padding each one */
-        ktx_uint32_t row;
-        ktx_uint8_t* dst = This->pData + imageOffset;
-        ktx_uint8_t pad[4] = { 0, 0, 0, 0 };
-        for (row = 0; row < numRows; row++) {
-            ktx_uint32_t rowOffset = rowBytes * row;
-            src->read(src, dst + rowOffset, packedRowBytes);
-            memcpy(dst + rowOffset + packedRowBytes, pad, rowPadding);
-        }
-    }
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-    /*
-     * When KTX_GL_UNPACK_ALIGNMENT == 4, rows, and therefore everything else,
-     * are always 4-byte aligned and faceLodPadding is always 0. It is always
-     * 0 for compressed formats too because they all have multiple-of-4 block
-     * sizes.
-     */
-    if (faceLodPadding)
-        memcpy(This->pData + faceLodSize, pad, faceLodPadding);
-#endif
-    return KTX_SUCCESS;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Set image for level, layer, faceSlice from a stdio stream source.
- *
- * Uncompressed images read from the stream are expected to have their rows
- * tightly packed as is the norm for most image file formats. The copied image
- * is padded as necessary to achieve the KTX-specified row alignment. No
- * padding is done if the ktxTexture's @c isCompressed field is @c KTX_TRUE.
- *
- * Level, layer, faceSlice rather than offset are specified to enable some
- * validation.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] level     mip level of the image to set.
- * @param[in] layer     array layer of the image to set.
- * @param[in] faceSlice cube map face or depth slice of the image to set.
- * @param[in] src       stdio stream pointer to the source.
- * @param[in] srcSize   size of the source image in bytes.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p src is NULL.
- * @exception KTX_INVALID_VALUE @p srcSize != the expected image size for the
- *                              specified level, layer & faceSlice.
- * @exception KTX_INVALID_OPERATION
- *                              No storage was allocated when the texture was
- *                              created.
- */
-KTX_error_code
-ktxTexture_SetImageFromStdioStream(ktxTexture* This, ktx_uint32_t level,
-                                   ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                                   FILE* src, ktx_size_t srcSize)
-{
-    ktxStream srcstr;
-    KTX_error_code result;
-    
-    result = ktxFileStream_construct(&srcstr, src, KTX_FALSE);
-    if (result != KTX_SUCCESS)
-        return result;
-    result = ktxTexture_setImageFromStream(This, level, layer, faceSlice,
-                                           &srcstr, srcSize);
-    ktxFileStream_destruct(&srcstr);
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Set image for level, layer, faceSlice from an image in memory.
- *
- * Uncompressed images in memory are expected to have their rows tightly packed
- * as is the norm for most image file formats. The copied image is padded as
- * necessary to achieve the KTX-specified row alignment. No padding is done if
- * the ktxTexture's @c isCompressed field is @c KTX_TRUE.
- *
- * Level, layer, faceSlice rather than offset are specified to enable some
- * validation.
- *
- * @warning Do not use @c memcpy for this as it will not pad when necessary.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] level     mip level of the image to set.
- * @param[in] layer     array layer of the image to set.
- * @param[in] faceSlice cube map face or depth slice of the image to set.
- * @param[in] src       pointer to the image source in memory.
- * @param[in] srcSize   size of the source image in bytes.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p src is NULL.
- * @exception KTX_INVALID_VALUE @p srcSize != the expected image size for the
- *                              specified level, layer & faceSlice.
- * @exception KTX_INVALID_OPERATION
- *                              No storage was allocated when the texture was
- *                              created.
- */
-KTX_error_code
-ktxTexture_SetImageFromMemory(ktxTexture* This, ktx_uint32_t level,
-                              ktx_uint32_t layer, ktx_uint32_t faceSlice,
-                              const ktx_uint8_t* src, ktx_size_t srcSize)
-{
-    ktxStream srcstr;
-    KTX_error_code result;
-    
-    result = ktxMemStream_construct_ro(&srcstr, src, srcSize);
-    if (result != KTX_SUCCESS)
-        return result;
-    result = ktxTexture_setImageFromStream(This, level, layer, faceSlice,
-                                           &srcstr, srcSize);
-    ktxMemStream_destruct(&srcstr);
-    return result;
-}
-
-/**
- * @internal
- * @memberof ktxTexture @private
- * @~English
- * @brief Write a ktxTexture object to a ktxStream in KTX format.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] dststr    destination ktxStream.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p dststr is NULL.
- * @exception KTX_INVALID_OPERATION
- *                              The ktxTexture does not contain any image data.
- * @exception KTX_FILE_OVERFLOW The file exceeded the maximum size supported by
- *                              the system.
- * @exception KTX_FILE_WRITE_ERROR
- *                              An error occurred while writing the file.
- */
-static KTX_error_code
-ktxTexture_writeToStream(ktxTexture* This, ktxStream* dststr)
-{
-    KTX_header header = KTX_IDENTIFIER_REF;
-    KTX_error_code result = KTX_SUCCESS;
-    ktx_uint32_t kvdLen;
-    ktx_uint8_t* pKvd;
-    ktx_uint32_t level, levelOffset;
-    
-    if (!dststr) {
-        return KTX_INVALID_VALUE;
-    }
-    
-    if (This->pData == NULL)
-        return KTX_INVALID_OPERATION;
-
-    //endianess int.. if this comes out reversed, all of the other ints will too.
-    header.endianness = KTX_ENDIAN_REF;
-    header.glInternalformat = This->glInternalformat;
-    header.glFormat = This->glFormat;
-    header.glBaseInternalformat = This->glBaseInternalformat;
-    header.glType = This->glType;
-    header.glTypeSize = ktxTexture_glTypeSize(This);
-    header.pixelWidth = This->baseWidth;
-    header.pixelHeight = This->baseHeight;
-    header.pixelDepth = This->baseDepth;
-    header.numberOfArrayElements = This->isArray ? This->numLayers : 0;
-    assert (This->isCubemap ? This->numFaces == 6 : This->numFaces == 1);
-    header.numberOfFaces = This->numFaces;
-    assert (This->generateMipmaps ? This->numLevels == 1 : This->numLevels >= 1);
-    header.numberOfMipmapLevels = This->generateMipmaps ? 0 : This->numLevels;
-    
-    ktxHashList_Serialize(&This->kvDataHead, &kvdLen, &pKvd);
-    header.bytesOfKeyValueData = kvdLen;
-
-    //write header
-    result = dststr->write(dststr, &header, sizeof(KTX_header), 1);
-    if (result != KTX_SUCCESS)
-        return result;
-    
-    //write keyValueData
-    if (kvdLen != 0) {
-        assert(pKvd != NULL);
-
-        result = dststr->write(dststr, pKvd, 1, kvdLen);
-        free(pKvd);
-        if (result != KTX_SUCCESS)
-            return result;
-    }
-    
-    /* Write the image data */
-    for (level = 0, levelOffset=0; level < This->numLevels; ++level)
-    {
-        ktx_uint32_t faceLodSize, layer, levelDepth, numImages;
-        ktx_size_t imageSize;
-        
-        faceLodSize = (ktx_uint32_t)ktxTexture_faceLodSize(This, level);
-        imageSize = ktxTexture_GetImageSize(This, level);
-        levelDepth = MAX(1, This->baseDepth >> level);
-        if (This->isCubemap && !This->isArray)
-            numImages = This->numFaces;
-        else
-            numImages = This->isCubemap ? This->numFaces : levelDepth;
-        
-        result = dststr->write(dststr, &faceLodSize, sizeof(faceLodSize), 1);
-        if (result != KTX_SUCCESS)
-            goto cleanup;
-
-        for (layer = 0; layer < This->numLayers; layer++) {
-            ktx_uint32_t faceSlice;
-            
-            for (faceSlice = 0; faceSlice < numImages; faceSlice++) {
-                result = dststr->write(dststr, This->pData + levelOffset,
-                                       imageSize, 1);
-                levelOffset += (ktx_uint32_t)imageSize;
-            }
-        }
-    }
-    
-cleanup:
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Write a ktxTexture object to a stdio stream in KTX format.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] dstsstr   destination stdio stream.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p dstsstr is NULL.
- * @exception KTX_INVALID_OPERATION
- *                              The ktxTexture does not contain any image data.
- * @exception KTX_FILE_OVERFLOW The file exceeded the maximum size supported by
- *                              the system.
- * @exception KTX_FILE_WRITE_ERROR
- *                              An error occurred while writing the file.
- */
-KTX_error_code
-ktxTexture_WriteToStdioStream(ktxTexture* This, FILE* dstsstr)
-{
-    ktxStream stream;
-    KTX_error_code result = KTX_SUCCESS;
-    
-    if (!This)
-        return KTX_INVALID_VALUE;
-    
-    result = ktxFileStream_construct(&stream, dstsstr, KTX_FALSE);
-    if (result != KTX_SUCCESS)
-        return result;
-    
-    return ktxTexture_writeToStream(This, &stream);
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Write a ktxTexture object to a named file in KTX format.
- *
- * @param[in] This      pointer to the target ktxTexture object.
- * @param[in] dstname   destination file name.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This or @p dstname is NULL.
- * @exception KTX_INVALID_OPERATION
- *                              The ktxTexture does not contain any image data.
- * @exception KTX_FILE_OVERFLOW The file exceeded the maximum size supported by
- *                              the system.
- * @exception KTX_FILE_WRITE_ERROR
- *                              An error occurred while writing the file.
- */
-KTX_error_code
-ktxTexture_WriteToNamedFile(ktxTexture* This, const char* const dstname)
-{
-    KTX_error_code result;
-    FILE* dst;
-
-    if (!This)
-        return KTX_INVALID_VALUE;
-
-    dst = fopen(dstname, "wb");
-    if (dst) {
-        result = ktxTexture_WriteToStdioStream(This, dst);
-        fclose(dst);
-    } else
-        result = KTX_FILE_OPEN_FAILED;
-    
-    return result;
-}
-
-/**
- * @memberof ktxTexture
- * @~English
- * @brief Write a ktxTexture object to block of memory in KTX format.
- *
- * Memory is allocated by the function and the caller is responsible for
- * freeing it.
- *
- * @param[in]     This       pointer to the target ktxTexture object.
- * @param[in,out] ppDstBytes pointer to location to write the address of
- *                           the destination memory. The Application is
- *                           responsible for freeing this memory.
- * @param[in,out] pSize      pointer to location to write the size in bytes of
- *                           the KTX data.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p This, @p ppDstBytes or @p pSize is NULL.
- * @exception KTX_INVALID_OPERATION
- *                              The ktxTexture does not contain any image data.
- * @exception KTX_FILE_OVERFLOW The file exceeded the maximum size supported by
- *                              the system.
- * @exception KTX_FILE_WRITE_ERROR
- *                              An error occurred while writing the file.
- */
-KTX_error_code
-ktxTexture_WriteToMemory(ktxTexture* This,
-                         ktx_uint8_t** ppDstBytes, ktx_size_t* pSize)
-{
-    struct ktxStream dststr;
-    KTX_error_code result;
-    ktx_size_t strSize;
-
-    if (!This || !ppDstBytes || !pSize)
-        return KTX_INVALID_VALUE;
-
-    *ppDstBytes = NULL;
-    
-    result = ktxMemStream_construct(&dststr, KTX_FALSE);
-    if (result != KTX_SUCCESS)
-        return result;
-    
-    result = ktxTexture_writeToStream(This, &dststr);
-    if(result != KTX_SUCCESS)
-    {
-        ktxMemStream_destruct(&dststr);
-        return result;
-    }
-    
-    ktxMemStream_getdata(&dststr, ppDstBytes);
-    dststr.getsize(&dststr, &strSize);
-    *pSize = (GLsizei)strSize;
-    /* This function does not free the memory pointed at by the
-     * value obtained from ktxMemStream_getdata() thanks to the
-     * KTX_FALSE passed to the constructor above.
-     */
-    ktxMemStream_destruct(&dststr);
-    return KTX_SUCCESS;
-
-}
-
-/** @} */
-
diff --git a/external/KTX-Software-master/lib/writer_v1.c b/external/KTX-Software-master/lib/writer_v1.c
deleted file mode 100644
index 5085658..0000000
--- a/external/KTX-Software-master/lib/writer_v1.c
+++ /dev/null
@@ -1,708 +0,0 @@
-/* -*- tab-width: 4; -*- */
-/* vi: set sw=2 ts=4 expandtab: */
-
-/* $Id: 687889ad2b1bee58a6d439ef4d6c10830a733418 $ */
-
-/*
- * ©2010-2018 Mark Callow.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @internal
- * @file writer.c
- * @~English
- *
- * @brief V1 API functions for creating KTX-format files from a set of images.
- *
- * Keep the v1 API implementation as is because reimplementing it in terms
- * of the v2 API would use too much memory. This is because this API expects
- * all the images to already be loaded in memory and the v2 api would load
- * them into another memory buffer prior to writing the file.
- *
- * @author Mark Callow, when at HI Corporation
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <assert.h>
-#include <limits.h>
-
-#include "GL/glcorearb.h"
-#include "ktx.h"
-#include "ktxint.h"
-#include "stream.h"
-#include "filestream.h"
-#include "memstream.h"
-#include "gl_format.h"
-
-static GLenum getFormatFromInternalFormatLegacy(GLenum internalFormat);
-static GLenum getTypeFromInternalFormatLegacy(GLenum internalFormat);
-static void getFormatSizeLegacy(GLenum internalFormat,
-                                GlFormatSize* formatSize);
-
-/**
- * @internal
- * @ingroup writer
- * @~English
- * @deprecated Use ktxTexture_writeToStream().
- * @brief Write image(s) in a KTX-format to a ktxStream.
- *
- * @param [in] stream       pointer to the ktxStream from which to load.
- * @param [in] textureInfo  pointer to a KTX_texture_info structure providing
- *                          information about the images to be included in
- *                          the KTX file.
- * @param [in] bytesOfKeyValueData
- *                          specifies the number of bytes of key-value data.
- * @param [in] keyValueData a pointer to the keyValue data.
- * @param [in] numImages    number of images in the following array
- * @param [in] images       array of KTX_image_info providing image size and
- *                          data.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @c glTypeSize in @p textureInfo is not 1, 2, or
- *                              4 or is different from the size of the type
- *                              specified in @c glType.
- * @exception KTX_INVALID_VALUE @c pixelWidth in @p textureInfo is 0 or
- *                              pixelDepth != 0 && pixelHeight == 0.
- * @exception KTX_INVALID_VALUE In @p textureInfo, @c numberOfFaces != 1 or
- *                              numberOfFaces != 6 or numberOfArrayElements
- *                              or numberOfMipmapLevels are < 0.
- * @exception KTX_INVALID_VALUE @c glType in @p textureInfo is an unrecognized
- *                              type.
- * @exception KTX_INVALID_OPERATION
- *                              In @p textureInfo, numberOfFaces == 6 and
- *                              images are either not 2D or are not square.
- * @exception KTX_INVALID_OPERATION
- *                              @p numImages is insufficient for the specified
- *                              number of mipmap levels and faces.
- * @exception KTX_INVALID_OPERATION
- *                              The size of a provided image is different than
- *                              that required for the specified width, height
- *                              or depth or for the mipmap level being
- *                              processed.
- * @exception KTX_INVALID_OPERATION
- *                              @c glType and @c glFormat in @p textureInfo are
- *                              mismatched. See OpenGL 4.4 specification
- *                              section 8.4.4 and table 8.5.
- * @exception KTX_FILE_WRITE_ERROR
- *                              A system error occurred while writing the file.
- * @exception KTX_OUT_OF_MEMORY System failed to allocate sufficient memory.
- */
-static
-KTX_error_code
-ktxWriteKTXS(struct ktxStream *stream, const KTX_texture_info* textureInfo,
-             GLsizei bytesOfKeyValueData, const void* keyValueData,
-             GLuint numImages, KTX_image_info images[])
-{
-    KTX_header header = KTX_IDENTIFIER_REF;
-    GLuint i, level, dimension, cubemap = 0;
-    GLuint numMipmapLevels, numArrayElements;
-    GLbyte pad[4] = { 0, 0, 0, 0 };
-    KTX_error_code result = KTX_SUCCESS;
-    GLboolean compressed = GL_FALSE;
-    GLuint groupBytes;
-
-    if (!stream) {
-        return KTX_INVALID_VALUE;
-    }
-
-    /* endianess int.. if this comes out reversed, all of the other ints will
-     * too.
-     */
-    header.endianness = KTX_ENDIAN_REF;
-    header.glType = textureInfo->glType;
-    header.glTypeSize = textureInfo->glTypeSize;
-    header.glFormat = textureInfo->glFormat;
-    header.glInternalformat = textureInfo->glInternalFormat;
-    header.glBaseInternalformat = textureInfo->glBaseInternalFormat;
-    header.pixelWidth = textureInfo->pixelWidth;
-    header.pixelHeight = textureInfo->pixelHeight;
-    header.pixelDepth = textureInfo->pixelDepth;
-    header.numberOfArrayElements = textureInfo->numberOfArrayElements;
-    header.numberOfFaces = textureInfo->numberOfFaces;
-    header.numberOfMipmapLevels = textureInfo->numberOfMipmapLevels;
-    header.bytesOfKeyValueData = bytesOfKeyValueData;
-
-    /* Do some sanity checking */
-    if (header.glTypeSize != 1 &&
-        header.glTypeSize != 2 &&
-        header.glTypeSize != 4)
-    {
-        /* Only 8, 16, and 32-bit types are supported for byte-swapping.
-         * See UNPACK_SWAP_BYTES & table 8.4 in the OpenGL 4.4 spec.
-         */
-        return KTX_INVALID_VALUE;
-    }
-
-    if (header.glType == 0 || header.glFormat == 0)
-    {
-        if (header.glType + header.glFormat != 0) {
-            /* either both or neither of glType & glFormat must be zero */
-            return KTX_INVALID_VALUE;
-        } else
-            compressed = GL_TRUE;
-    }
-    else
-    {
-        GlFormatSize formatInfo;
-        GLenum expectedFormat, expectedType;
-        
-        expectedFormat = getFormatFromInternalFormatLegacy(header.glInternalformat);
-        if (expectedFormat == GL_INVALID_VALUE
-            || expectedFormat != header.glFormat)
-            return KTX_INVALID_OPERATION;
-        expectedType = getTypeFromInternalFormatLegacy(header.glInternalformat);
-        if (expectedType == GL_INVALID_VALUE
-            || expectedType != header.glType)
-            return KTX_INVALID_OPERATION;
-        getFormatSizeLegacy(header.glInternalformat, &formatInfo);
-        groupBytes = formatInfo.blockSizeInBits / CHAR_BIT;
-    }
-
-
-    /* Check texture dimensions. KTX files can store 8 types of textures:
-     * 1D, 2D, 3D, cube, and array variants of these. There is currently
-     * no GL extension that would accept 3D array array textures but we'll
-     * let such files be created.
-     */
-    if ((header.pixelWidth == 0) ||
-        (header.pixelDepth > 0 && header.pixelHeight == 0))
-    {
-        /* texture must have width */
-        /* texture must have height if it has depth */
-        return KTX_INVALID_VALUE;
-    }
-    if (header.pixelHeight > 0 && header.pixelDepth > 0)
-        dimension = 3;
-    else if (header.pixelHeight > 0)
-        dimension = 2;
-    else
-        dimension = 1;
-
-    if (header.numberOfFaces != 1 && header.pixelDepth != 0)
-    {
-        /* No 3D cubemaps so either faces or depth must be 1. */
-            return KTX_INVALID_OPERATION;
-    }
-
-    if (header.numberOfFaces == 6)
-    {
-        if (dimension != 2)
-        {
-            /* cube map needs 2D faces */
-            return KTX_INVALID_OPERATION;
-        }
-        if (header.pixelWidth != header.pixelHeight)
-        {
-            /* cube maps require square images */
-            return KTX_INVALID_OPERATION;
-        }
-    }
-    else if (header.numberOfFaces != 1)
-    {
-        /* numberOfFaces must be either 1 or 6 */
-        return KTX_INVALID_VALUE;
-    }
- 
-    if (header.numberOfArrayElements == 0)
-        numArrayElements = 1;
-    else
-        numArrayElements = header.numberOfArrayElements;
-    
-    if (header.numberOfFaces == 6)
-        cubemap = 1;
-
-    /* Check number of mipmap levels */
-    if (header.numberOfMipmapLevels == 0)
-    {
-        numMipmapLevels = 1;
-    }
-    else
-        numMipmapLevels = header.numberOfMipmapLevels;
-    if (numMipmapLevels > 1) {
-        GLuint max_dim = MAX(MAX(header.pixelWidth, header.pixelHeight), header.pixelDepth);
-        if (max_dim < ((GLuint)1 << (header.numberOfMipmapLevels - 1)))
-        {
-            /* Can't have more mip levels than 1 + log2(max(width, height, depth)) */
-            return KTX_INVALID_VALUE;
-        }
-    }
-
-    if (numImages < numMipmapLevels * header.numberOfFaces)
-    {
-        /* Not enough images */
-        return KTX_INVALID_OPERATION;
-    }
-
-    //write header
-    result = stream->write(stream, &header, sizeof(KTX_header), 1);
-    if (result != KTX_SUCCESS)
-        return result;
-
-    //write keyValueData
-    if (bytesOfKeyValueData != 0) {
-        if (keyValueData == NULL)
-            return KTX_INVALID_OPERATION;
-
-        result = stream->write(stream, keyValueData, 1, bytesOfKeyValueData);
-        if (result != KTX_SUCCESS)
-            return result;
-    }
-
-    /* Write the image data */
-    for (level = 0, i = 0; level < numMipmapLevels; ++level)
-    {
-        GLuint faceSlice, faceLodSize;
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        GLuint faceLodPadding;
-#endif
-        GLuint pixelWidth, pixelHeight, pixelDepth;
-        GLsizei imageBytes, packedImageBytes;
-        GLsizei packedRowBytes, rowBytes, rowPadding;
-        GLuint numImages;
-
-        pixelWidth  = MAX(1, header.pixelWidth  >> level);
-        pixelHeight = MAX(1, header.pixelHeight >> level);
-        pixelDepth  = MAX(1, header.pixelDepth  >> level);
-
-        /* Calculate face sizes for this LoD based on glType, glFormat, width & height */
-        packedImageBytes = groupBytes
-                           * pixelWidth
-                           * pixelHeight;
-
-        rowPadding = 0;
-        packedRowBytes = groupBytes * pixelWidth;
-        /* KTX format specifies UNPACK_ALIGNMENT==4 */
-        /* GL spec: rows are not to be padded when elementBytes != 1, 2, 4 or 8.
-         * As GL currently has no such elements, no test is necessary.
-         */
-        if (!compressed) {
-            rowBytes = _KTX_PAD_UNPACK_ALIGN(packedRowBytes);
-            rowPadding = rowBytes - packedRowBytes;
-        }
-        if (rowPadding == 0) {
-            imageBytes = packedImageBytes;
-        } else {
-            /* Need to pad the rows to meet the required UNPACK_ALIGNMENT */
-            imageBytes = rowBytes * pixelHeight;
-        }
-
-        if (textureInfo->numberOfArrayElements == 0 && cubemap) {
-            /* Non-array cubemap. */
-            numImages = 6;
-            faceLodSize = imageBytes;
-        } else {
-            numImages = cubemap ? 6 : pixelDepth;
-            numImages *= numArrayElements;
-            faceLodSize = imageBytes * numImages;
-        }
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-        faceLodPadding = _KTX_PAD4_LEN(faceLodSize);
-#endif
- 
-        result = stream->write(stream, &faceLodSize, sizeof(faceLodSize), 1);
-        if (result != KTX_SUCCESS)
-            goto cleanup;
-
-        for (faceSlice = 0; faceSlice < numImages; ++faceSlice, ++i) {
-            if (!compressed) {
-                /* Sanity check. */
-                if (images[i].size != packedImageBytes) {
-                    result = KTX_INVALID_OPERATION;
-                    goto cleanup;
-                }
-            }
-            if (rowPadding == 0) {
-                /* Can write whole face at once */
-                result = stream->write(stream, images[i].data, images[i].size,
-                                       1);
-                if (result != KTX_SUCCESS)
-                    goto cleanup;
-            } else {
-                /* Write the rows individually, padding each one */
-                GLuint row;
-                GLuint numRows = pixelHeight;
-                for (row = 0; row < numRows; row++) {
-                    result = stream->write(stream,
-                                            &images[i].data[row*packedRowBytes],
-                                            packedRowBytes, 1);
-                    if (result != KTX_SUCCESS)
-                        goto cleanup;
-
-                    result = stream->write(stream, pad, sizeof(GLbyte),
-                                              rowPadding);
-                    if (result != KTX_SUCCESS)
-                        goto cleanup;
-                }
-            }
-#if (KTX_GL_UNPACK_ALIGNMENT != 4)
-            /*
-             * When KTX_GL_UNPACK_ALIGNMENT == 4, rows, and therefore everything
-             * else, are always 4-byte aligned and faceLodPadding is always 0.
-             * It is always 0 for compressed formats too because they all have
-             * multiple-of-4 block sizes.
-             */
-            if (faceLodPadding) {
-                result = stream->write(stream, pad, sizeof(GLbyte),
-                                       faceLodPadding);
-                if (result != KTX_SUCCESS)
-                    goto cleanup;
-            }
-#endif
-        }
-    }
-
-cleanup:
-    return result;
-}
-
-/**
- * @~English
- * @ingroup writer
- * @deprecated Use ktxTexture_WriteToStdioStream().
- * @brief Write image(s) in KTX format to a stdio FILE stream.
- *
- * @note textureInfo directly reflects what is written to the KTX file
- *       header. That is @c numberOfArrayElements should be 0 for non arrays;
- *       @c numMipmapLevels should be 0 to request generateMipmaps and @c type,
- *       @c format & @c typesize should be 0 for compressed textures.
- *
- * @param[in] file         pointer to the FILE stream to write to.
- * @param[in] textureInfo  pointer to a KTX_texture_info structure providing
- *                         information about the images to be included in
- *                         the KTX file.
- * @param[in] bytesOfKeyValueData
- *                         specifies the number of bytes of key-value data.
- * @param[in] keyValueData a pointer to the keyValue data.
- * @param[in] numImages    number of images in the following array
- * @param[in] images       array of KTX_image_info providing image size and
- *                         data.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @c glTypeSize in @p textureInfo is not 1, 2, or
- *                              4 or is different from the size of the type
- *                              specified in @c glType.
- * @exception KTX_INVALID_VALUE @c pixelWidth in @p textureInfo is 0 or
- *                              pixelDepth != 0 && pixelHeight == 0.
- * @exception KTX_INVALID_VALUE In @p textureInfo, @c numberOfFaces != 1 or
- *                              numberOfFaces != 6 or numberOfArrayElements
- *                              or numberOfMipmapLevels are < 0.
- * @exception KTX_INVALID_VALUE @c glType in @p textureInfo is an unrecognized
- *                              type.
- * @exception KTX_INVALID_OPERATION
- *                              In @p textureInfo, numberOfFaces == 6 and
- *                              images are either not 2D or are not square.
- * @exception KTX_INVALID_OPERATION
- *                              @p numImages is insufficient for the specified
- *                              number of mipmap levels and faces.
- * @exception KTX_INVALID_OPERATION
- *                              The size of a provided image is different than
- *                              that required for the specified width, height
- *                              or depth or for the mipmap level being
- *                              processed.
- * @exception KTX_INVALID_OPERATION
- *                              @c glType and @c glFormat in @p textureInfo are
- *                              mismatched. See OpenGL 4.4 specification
- *                              section 8.4.4 and table 8.5.
- * @exception KTX_FILE_WRITE_ERROR
- *                              A system error occurred while writing the file.
- * @exception KTX_OUT_OF_MEMORY System failed to allocate sufficient memory.
- */
-KTX_error_code
-ktxWriteKTXF(FILE *file, const KTX_texture_info* textureInfo,
-                         GLsizei bytesOfKeyValueData, const void* keyValueData,
-                         GLuint numImages, KTX_image_info images[])
-{
-    struct ktxStream stream;
-    KTX_error_code result;
-    
-    result = ktxFileStream_construct(&stream, file, KTX_FALSE);
-    if (result != KTX_SUCCESS)
-        return result;
-    result = ktxWriteKTXS(&stream, textureInfo, bytesOfKeyValueData, keyValueData,
-                          numImages, images);
-    stream.destruct(&stream);
-    return result;
-}
-
-/**
- * @~English
- * @ingroup writer
- * @deprecated Use ktxTexture_WriteToNamedFile().
- * @brief Write image(s) in KTX format to a file on disk.
- *
- * @note textureInfo directly reflects what is written to the KTX file
- *       header. That is @c numberOfArrayElements should be 0 for non arrays;
- *       @c numMipmapLevels should be 0 to request generateMipmaps and @c type,
- *       @c format & @c typesize should be 0 for compressed textures.
- *
- * @param[in] dstname      pointer to a C string that contains the path of
- *                         the file to load.
- * @param[in] textureInfo  pointer to a KTX_texture_info structure providing
- *                         information about the images to be included in
- *                         the KTX file.
- * @param[in] bytesOfKeyValueData
- *                         specifies the number of bytes of key-value data.
- * @param[in] keyValueData a pointer to the keyValue data.
- * @param[in] numImages    number of images in the following array.
- * @param[in] images       array of KTX_image_info providing image size and
- *                         data.
- *
- * @return  KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_FILE_OPEN_FAILED Unable to open the specified file for
- *                                 writing.
- *
- * For other exceptions, see ktxWriteKTXF().
- */
-KTX_error_code
-ktxWriteKTXN(const char* dstname, const KTX_texture_info* textureInfo,
-             GLsizei bytesOfKeyValueData, const void* keyValueData,
-             GLuint numImages, KTX_image_info images[])
-{
-    struct ktxStream stream;
-    KTX_error_code result;
-    FILE* dst = fopen(dstname, "wb");
-
-    if (dst) {
-        result = ktxWriteKTXS(&stream, textureInfo, bytesOfKeyValueData,
-                              keyValueData, numImages, images);
-        fclose(dst);
-    } else
-        result = KTX_FILE_OPEN_FAILED;
-
-    return result;
-}
-
-/**
- * @~English
- * @ingroup writer
- * @deprecated Use ktxTexture_WriteToMemory().
- * @brief Write image(s) in KTX format to memory.
- *
- * Memory is allocated by the function and the caller is responsible for
- * freeing it.
- *
- * @note textureInfo directly reflects what is written to the KTX file
- *       header. That is @c numberOfArrayElements should be 0 for non arrays;
- *       @c numMipmapLevels should be 0 to request generateMipmaps and @c type,
- *       @c format & @c typesize should be 0 for compressed textures.
- *
- * @param[out] ppDstBytes  pointer to location to write the address of
- *                         the destination memory. The Application is
-                           responsible for freeing this memory.
- * @param[out] pSize       pointer to location to write the size in bytes of
- *                         the KTX data.
- * @param[in] textureInfo  pointer to a KTX_texture_info structure providing
- *                         information about the images to be included in
- *                         the KTX file.
- * @param[in] bytesOfKeyValueData
- *                         specifies the number of bytes of key-value data.
- * @param[in] keyValueData a pointer to the keyValue data.
- * @param[in] numImages    number of images in the following array.
- * @param[in] images       array of KTX_image_info providing image size and
- *                         data.
- *
- * @return      KTX_SUCCESS on success, other KTX_* enum values on error.
- *
- * @exception KTX_INVALID_VALUE @p dst or @p size is NULL.
- * @exception KTX_INVALID_VALUE @c glTypeSize in @p textureInfo is not 1, 2, or
- *                              4 or is different from the size of the type
- *                              specified in @c glType.
- * @exception KTX_INVALID_VALUE @c pixelWidth in @p textureInfo is 0 or
- *                              pixelDepth != 0 && pixelHeight == 0.
- * @exception KTX_INVALID_VALUE In @p textureInfo, @c numberOfFaces != 1 or
- *                              numberOfFaces != 6 or numberOfArrayElements
- *                              or numberOfMipmapLevels are < 0.
- * @exception KTX_INVALID_VALUE @c glType in @p textureInfo is an unrecognized
- *                              type.
- * @exception KTX_INVALID_OPERATION
- *                              In @p textureInfo, numberOfFaces == 6 and
- *                              images are either not 2D or are not square.
- * @exception KTX_INVALID_OPERATION
- *                              @p numImages is insufficient for the specified
- *                              number of mipmap levels and faces.
- * @exception KTX_INVALID_OPERATION
- *                              The size of a provided image is different than
- *                              that required for the specified width, height
- *                              or depth or for the mipmap level being
- *                              processed.
- * @exception KTX_INVALID_OPERATION
- *                              @c glType and @c glFormat in @p textureInfo are
- *                              mismatched. See OpenGL 4.4 specification
- *                              section 8.4.4 and table 8.5.
- * @exception KTX_FILE_WRITE_ERROR
- *                              A system error occurred while writing the file.
- * @exception KTX_OUT_OF_MEMORY System failed to allocate sufficient memory.
- */
-KTX_error_code
-ktxWriteKTXM(unsigned char** ppDstBytes, GLsizei* pSize,
-             const KTX_texture_info* textureInfo,
-             GLsizei bytesOfKeyValueData, const void* keyValueData,
-             GLuint numImages, KTX_image_info images[])
-{
-    struct ktxStream stream;
-    KTX_error_code rc;
-    ktx_size_t strSize;
-
-    if (ppDstBytes == NULL || pSize == NULL)
-        return KTX_INVALID_VALUE;
-
-    *ppDstBytes = NULL;
-
-    rc = ktxMemStream_construct(&stream, KTX_FALSE);
-    if (rc != KTX_SUCCESS)
-        return rc;
-
-    rc = ktxWriteKTXS(&stream, textureInfo, bytesOfKeyValueData, keyValueData,
-                      numImages, images);
-    if(rc != KTX_SUCCESS)
-    {
-        ktxMemStream_destruct(&stream);
-        return rc;
-    }
-
-    ktxMemStream_getdata(&stream, ppDstBytes);
-    stream.getsize(&stream, &strSize);
-    *pSize = (GLsizei)strSize;
-    /* This function does not free the memory pointed at by the
-     * value obtained from ktxMemStream_getdata().
-     */
-    stream.destruct(&stream);
-    return KTX_SUCCESS;
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the matching format for an internalformat.
- *
- * Adds support for deprecated legacy formats needed to create textures for
- * use with OpenGL ES 1 & 2 to glGetFormatFromInternalFormat.
- *
- * @param[in] internalFormat  the internal format of the image data
- *
- * @return    the matching glFormat enum or GL_INVALID_VALUE if format is
- *            unrecognized.
- */
-GLenum
-getFormatFromInternalFormatLegacy(GLenum internalFormat)
-{
-    switch (internalFormat) {
-      case GL_LUMINANCE8:
-      case GL_LUMINANCE16:
-        return GL_LUMINANCE;
-            
-      case GL_ALPHA8:
-      case GL_ALPHA16:
-        return GL_ALPHA;
-            
-      case GL_LUMINANCE8_ALPHA8:
-      case GL_LUMINANCE16_ALPHA16:
-        return GL_LUMINANCE_ALPHA;
-
-      default:
-        return glGetFormatFromInternalFormat(internalFormat);
-    }
-}
-
-/**
- * @internal
- * @~English
- * @brief Get the GL data type for an internalformat.
- *
- * Adds support for deprecated legacy formats needed to create textures for
- * use with OpenGL ES 1 & 2 to glGetTypeFromInternalFormat.
- *
- * @param[in] internalFormat  the internal format of the image data
- *
- * @return    the matching glFormat enum or GL_INVALID_VALUE if format is
- *            unrecognized.
- */
-GLenum
-getTypeFromInternalFormatLegacy(GLenum internalFormat)
-{
-    switch (internalFormat) {
-      case GL_LUMINANCE8:
-      case GL_ALPHA8:
-        return GL_UNSIGNED_BYTE;
-            
-      case GL_LUMINANCE16:
-      case GL_ALPHA16:
-      case GL_LUMINANCE8_ALPHA8:
-        return GL_UNSIGNED_SHORT;
-            
-      case GL_LUMINANCE16_ALPHA16:
-        return GL_UNSIGNED_INT;
-            
-      default:
-        return glGetTypeFromInternalFormat(internalFormat);
-    }
-}
-        
-/**
- * @internal
- * @~English
- * @brief Get size information for an internalformat.
- *
- * Adds support for deprecated legacy formats needed to create textures for
- * use with OpenGL ES 1 & 2 to glGetTypeFromInternalFormat.
- *
- * @param[in] internalFormat  the internal format of the image data
- * @param[in,out] formatSize  pointer to a formatSize struct in which the
- *                            information is returned.
- */
-void
-getFormatSizeLegacy(GLenum internalFormat, GlFormatSize* pFormatSize)
-{
-    switch (internalFormat) {
-      case GL_LUMINANCE8:
-      case GL_ALPHA8:
-        pFormatSize->flags = 0;
-        pFormatSize->paletteSizeInBits = 0;
-        pFormatSize->blockSizeInBits = 1 * 8;
-        pFormatSize->blockWidth = 1;
-        pFormatSize->blockHeight = 1;
-        pFormatSize->blockDepth = 1;
-        break;
-
-      case GL_LUMINANCE16:
-      case GL_ALPHA16:
-      case GL_LUMINANCE8_ALPHA8:
-        pFormatSize->flags = 0;
-        pFormatSize->paletteSizeInBits = 0;
-        pFormatSize->blockSizeInBits = 2 * 8;
-        pFormatSize->blockWidth = 1;
-        pFormatSize->blockHeight = 1;
-        pFormatSize->blockDepth = 1;
-        break;
-
-      case GL_LUMINANCE16_ALPHA16:
-        pFormatSize->flags = 0;
-        pFormatSize->paletteSizeInBits = 0;
-        pFormatSize->blockSizeInBits = 4 * 8;
-        pFormatSize->blockWidth = 1;
-        pFormatSize->blockHeight = 1;
-        pFormatSize->blockDepth = 1;
-        break;
-
-      default:
-        glGetFormatSize(internalFormat, pFormatSize);
-    }
-}
diff --git a/external/KTX-Software-master/other_include/KHR/khrplatform.h b/external/KTX-Software-master/other_include/KHR/khrplatform.h
deleted file mode 100644
index c9e6f17..0000000
--- a/external/KTX-Software-master/other_include/KHR/khrplatform.h
+++ /dev/null
@@ -1,282 +0,0 @@
-#ifndef __khrplatform_h_
-#define __khrplatform_h_
-
-/*
-** Copyright (c) 2008-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-/* Khronos platform-specific types and definitions.
- *
- * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
- *
- * Adopters may modify this file to suit their platform. Adopters are
- * encouraged to submit platform specific modifications to the Khronos
- * group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "Khronos (general)" component "Registry".
- *
- * A predefined template which fills in some of the bug fields can be
- * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
- * must create a Bugzilla login first.
- *
- *
- * See the Implementer's Guidelines for information about where this file
- * should be located on your system and for more details of its use:
- *    http://www.khronos.org/registry/implementers_guide.pdf
- *
- * This file should be included as
- *        #include <KHR/khrplatform.h>
- * by Khronos client API header files that use its types and defines.
- *
- * The types in khrplatform.h should only be used to define API-specific types.
- *
- * Types defined in khrplatform.h:
- *    khronos_int8_t              signed   8  bit
- *    khronos_uint8_t             unsigned 8  bit
- *    khronos_int16_t             signed   16 bit
- *    khronos_uint16_t            unsigned 16 bit
- *    khronos_int32_t             signed   32 bit
- *    khronos_uint32_t            unsigned 32 bit
- *    khronos_int64_t             signed   64 bit
- *    khronos_uint64_t            unsigned 64 bit
- *    khronos_intptr_t            signed   same number of bits as a pointer
- *    khronos_uintptr_t           unsigned same number of bits as a pointer
- *    khronos_ssize_t             signed   size
- *    khronos_usize_t             unsigned size
- *    khronos_float_t             signed   32 bit floating point
- *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
- *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
- *                                         nanoseconds
- *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
- *    khronos_boolean_enum_t      enumerated boolean type. This should
- *      only be used as a base type when a client API's boolean type is
- *      an enum. Client APIs which use an integer or other type for
- *      booleans cannot use this as the base type for their boolean.
- *
- * Tokens defined in khrplatform.h:
- *
- *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
- *
- *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
- *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
- *
- * Calling convention macros defined in this file:
- *    KHRONOS_APICALL
- *    KHRONOS_APIENTRY
- *    KHRONOS_APIATTRIBUTES
- *
- * These may be used in function prototypes as:
- *
- *      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
- *                                  int arg1,
- *                                  int arg2) KHRONOS_APIATTRIBUTES;
- */
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APICALL
- *-------------------------------------------------------------------------
- * This precedes the return type of the function in the function prototype.
- */
-#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
-#   define KHRONOS_APICALL __declspec(dllimport)
-#elif defined (__SYMBIAN32__)
-#   define KHRONOS_APICALL IMPORT_C
-#else
-#   define KHRONOS_APICALL
-#endif
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APIENTRY
- *-------------------------------------------------------------------------
- * This follows the return type of the function  and precedes the function
- * name in the function prototype.
- */
-#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
-    /* Win32 but not WinCE */
-#   define KHRONOS_APIENTRY __stdcall
-#else
-#   define KHRONOS_APIENTRY
-#endif
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APIATTRIBUTES
- *-------------------------------------------------------------------------
- * This follows the closing parenthesis of the function prototype arguments.
- */
-#if defined (__ARMCC_2__)
-#define KHRONOS_APIATTRIBUTES __softfp
-#else
-#define KHRONOS_APIATTRIBUTES
-#endif
-
-/*-------------------------------------------------------------------------
- * basic type definitions
- *-----------------------------------------------------------------------*/
-#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
-
-
-/*
- * Using <stdint.h>
- */
-#include <stdint.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(__VMS ) || defined(__sgi)
-
-/*
- * Using <inttypes.h>
- */
-#include <inttypes.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
-
-/*
- * Win32
- */
-typedef __int32                 khronos_int32_t;
-typedef unsigned __int32        khronos_uint32_t;
-typedef __int64                 khronos_int64_t;
-typedef unsigned __int64        khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(__sun__) || defined(__digital__)
-
-/*
- * Sun or Digital
- */
-typedef int                     khronos_int32_t;
-typedef unsigned int            khronos_uint32_t;
-#if defined(__arch64__) || defined(_LP64)
-typedef long int                khronos_int64_t;
-typedef unsigned long int       khronos_uint64_t;
-#else
-typedef long long int           khronos_int64_t;
-typedef unsigned long long int  khronos_uint64_t;
-#endif /* __arch64__ */
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif 0
-
-/*
- * Hypothetical platform with no float or int64 support
- */
-typedef int                     khronos_int32_t;
-typedef unsigned int            khronos_uint32_t;
-#define KHRONOS_SUPPORT_INT64   0
-#define KHRONOS_SUPPORT_FLOAT   0
-
-#else
-
-/*
- * Generic fallback
- */
-#include <stdint.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#endif
-
-
-/*
- * Types that are (so far) the same on all platforms
- */
-typedef signed   char          khronos_int8_t;
-typedef unsigned char          khronos_uint8_t;
-typedef signed   short int     khronos_int16_t;
-typedef unsigned short int     khronos_uint16_t;
-
-/*
- * Types that differ between LLP64 and LP64 architectures - in LLP64, 
- * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
- * to be the only LLP64 architecture in current use.
- */
-#ifdef _WIN64
-typedef signed   long long int khronos_intptr_t;
-typedef unsigned long long int khronos_uintptr_t;
-typedef signed   long long int khronos_ssize_t;
-typedef unsigned long long int khronos_usize_t;
-#else
-typedef signed   long  int     khronos_intptr_t;
-typedef unsigned long  int     khronos_uintptr_t;
-typedef signed   long  int     khronos_ssize_t;
-typedef unsigned long  int     khronos_usize_t;
-#endif
-
-#if KHRONOS_SUPPORT_FLOAT
-/*
- * Float type
- */
-typedef          float         khronos_float_t;
-#endif
-
-#if KHRONOS_SUPPORT_INT64
-/* Time types
- *
- * These types can be used to represent a time interval in nanoseconds or
- * an absolute Unadjusted System Time.  Unadjusted System Time is the number
- * of nanoseconds since some arbitrary system event (e.g. since the last
- * time the system booted).  The Unadjusted System Time is an unsigned
- * 64 bit value that wraps back to 0 every 584 years.  Time intervals
- * may be either signed or unsigned.
- */
-typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
-typedef khronos_int64_t        khronos_stime_nanoseconds_t;
-#endif
-
-/*
- * Dummy value used to pad enum types to 32 bits.
- */
-#ifndef KHRONOS_MAX_ENUM
-#define KHRONOS_MAX_ENUM 0x7FFFFFFF
-#endif
-
-/*
- * Enumerated boolean type
- *
- * Values other than zero should be considered to be true.  Therefore
- * comparisons should not be made against KHRONOS_TRUE.
- */
-typedef enum {
-    KHRONOS_FALSE = 0,
-    KHRONOS_TRUE  = 1,
-    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
-} khronos_boolean_enum_t;
-
-#endif /* __khrplatform_h_ */
diff --git a/external/Vulkan-Headers b/external/Vulkan-Headers
new file mode 160000
index 0000000..7dbd74f
--- /dev/null
+++ b/external/Vulkan-Headers
@@ -0,0 +1 @@
+Subproject commit 7dbd74f04430f3a811a8fbd3c94f2684e38d9152
diff --git a/src/Engine/Application.hpp b/src/Engine/Application.hpp
index fe15414..391151e 100644
--- a/src/Engine/Application.hpp
+++ b/src/Engine/Application.hpp
@@ -10,7 +10,7 @@ namespace Engine
 {
 	namespace Application
 	{
-		constexpr Utility::ImgDim defaultWindowSize = { 1800, 900 };
+		constexpr Utility::ImgDim defaultWindowSize = { 1900, 1000 };
 		constexpr Utility::ImgDim minimumWindowSize = { 800, 600 };
 		constexpr float narrowestAspectRatio = minimumWindowSize.GetAspectRatio();
 		constexpr std::string_view defaultApplicationName = "VulkanProject1";
diff --git a/src/Engine/AssManRendererConnect.cpp b/src/Engine/AssManRendererConnect.cpp
index ca38cc3..a01e693 100644
--- a/src/Engine/AssManRendererConnect.cpp
+++ b/src/Engine/AssManRendererConnect.cpp
@@ -30,35 +30,4 @@ namespace Engine
 
 		return std::optional<Renderer::MeshDocument>{ Renderer::MeshDocument(std::move(newInfo)) };
 	}
-
-	std::optional<Renderer::TextureDocument> LoadTexture(size_t i)
-	{
-		auto path = AssMan::GetTexturePath(i);
-		if (path == "")
-			return {};
-
-		auto assManTexOpt = AssMan::LoadTextureDocument(path);
-		if (assManTexOpt.has_value() == false)
-			return {};
-
-		auto oldInfo = AssMan::TextureDocument::ToCreateInfo(std::move(assManTexOpt.value()));
-
-		Renderer::TextureDocument::CreateInfo newInfo{};
-
-		newInfo.byteArray = std::move(oldInfo.byteArray);
-
-		newInfo.isCompressed = oldInfo.isCompressed;
-		newInfo.baseInternalFormat = Renderer::TextureDocument::Format(oldInfo.baseInternalFormat);
-		newInfo.internalFormat = Renderer::TextureDocument::Format(oldInfo.internalFormat);
-
-		newInfo.type = Renderer::TextureDocument::Type(oldInfo.type);
-
-		newInfo.numDimensions = oldInfo.numDimensions;
-		newInfo.dimensions = oldInfo.dimensions;
-
-		newInfo.numLayers = oldInfo.numLayers;
-		newInfo.numLevels = oldInfo.numLevels;
-
-		return std::optional<Renderer::TextureDocument>{ Renderer::TextureDocument(std::move(newInfo)) };
-	}
 }
diff --git a/src/Engine/AssManRendererConnect.hpp b/src/Engine/AssManRendererConnect.hpp
index a34d987..c7060cd 100644
--- a/src/Engine/AssManRendererConnect.hpp
+++ b/src/Engine/AssManRendererConnect.hpp
@@ -1,14 +1,10 @@
 #pragma once
 
 #include "AssetManager/MeshDocument.hpp"
-#include "AssetManager/TextureDocument.hpp"
 
 #include "Renderer/MeshDocument.hpp"
-#include "Renderer/TextureDocument.hpp"
 
 namespace Engine
 {
 	std::optional<Renderer::MeshDocument> LoadMesh(size_t i);
-
-	std::optional<Renderer::TextureDocument> LoadTexture(size_t i);
 }
\ No newline at end of file
diff --git a/src/Engine/AssetManager/AssetManager.cpp b/src/Engine/AssetManager/AssetManager.cpp
index 161be7d..3795ea6 100644
--- a/src/Engine/AssetManager/AssetManager.cpp
+++ b/src/Engine/AssetManager/AssetManager.cpp
@@ -1,6 +1,5 @@
 #include "AssetManager.hpp"
 #include "MeshDocument.hpp"
-#include "TextureDocument.hpp"
 
 #include <cassert>
 #include <map>
@@ -16,7 +15,7 @@ struct AssetManagerInfo
 
 static const std::map<size_t, AssetManagerInfo> textureInfos
 {
-	{ size_t(Engine::AssetManager::Sprite::Test), {"Test", "test2.ktx"} },
+	{ size_t(Engine::AssetManager::Sprite::Test), {"Test", "test3.ktx"} },
 };
 
 static const std::map<size_t, AssetManagerInfo> meshInfos
@@ -51,5 +50,4 @@ namespace Engine
 	}
 }
 
-#include "MeshDocument.inl"
-#include "TextureDocument.inl"
\ No newline at end of file
+#include "MeshDocument.inl"
\ No newline at end of file
diff --git a/src/Engine/AssetManager/AssetManager.hpp b/src/Engine/AssetManager/AssetManager.hpp
index 7436825..bdf33ba 100644
--- a/src/Engine/AssetManager/AssetManager.hpp
+++ b/src/Engine/AssetManager/AssetManager.hpp
@@ -2,14 +2,12 @@
 
 #include "Typedefs.hpp"
 #include "MeshDocument.hpp"
-#include "TextureDocument.hpp"
 
 #include <string>
 #include <string_view>
 #include <optional>
 
 #include "../Renderer/MeshDocument.hpp"
-#include "../Renderer/TextureDocument.hpp"
 
 namespace Engine
 {
@@ -22,7 +20,6 @@ namespace Engine
 		std::string GetTexturePath(size_t i);
 
 		std::optional<Renderer::MeshDocument> LoadMesh(size_t i);
-		std::optional<Renderer::TextureDocument> LoadTexture(size_t i);
 	}
 
 	namespace AssMan = AssetManager;
diff --git a/src/Engine/AssetManager/TextureDocument.hpp b/src/Engine/AssetManager/TextureDocument.hpp
deleted file mode 100644
index 0ce9d92..0000000
--- a/src/Engine/AssetManager/TextureDocument.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#pragma once
-
-#include <array>
-#include <vector>
-#include <optional>
-#include <string>
-#include <memory>
-
-namespace Engine
-{
-	namespace AssetManager
-	{
-		class TextureDocument
-		{
-		public:
-			enum class Format;
-			enum class Type;
-			struct CreateInfo;
-
-			TextureDocument() = delete;
-			explicit TextureDocument(CreateInfo&&);
-			explicit TextureDocument(TextureDocument&&) = default;
-			TextureDocument(const TextureDocument&) = delete;
-			~TextureDocument();
-
-			const std::vector<uint8_t>& GetByteArray() const;
-			const uint8_t* GetData() const;
-			size_t GetByteLength() const;
-
-			const std::array<uint32_t, 3>& GetDimensions() const;
-
-			Format GetBaseInternalFormat() const;
-			Format GetInternalFormat() const;
-			Type GetType() const;
-
-			bool IsCompressed() const;
-
-			static CreateInfo ToCreateInfo(TextureDocument&& texDoc);
-
-		private:
-			std::vector<uint8_t> byteArray;
-			Format internalFormat{};
-			Format baseInternalFormat{};
-			Type type{};
-			uint8_t numDimensions = 0;
-			std::array<uint32_t, 3> dimensions{};
-			size_t numLayers = 0;
-			size_t numLevels = 0;
-			bool isCompressed = false;
-		};
-
-		struct TextureDocument::CreateInfo
-		{
-			std::vector<uint8_t> byteArray;
-			Format internalFormat{};
-			Format baseInternalFormat{};
-			Type type{};
-			uint8_t numDimensions = 0;
-			std::array<uint32_t, 3> dimensions{};
-			size_t numLayers = 0;
-			size_t numLevels = 0;
-			bool isCompressed = false;
-		};
-
-		enum class TextureDocument::Format
-		{
-			Invalid,
-			RGBA,
-			RGB,
-			R8G8B8A8,
-			Compressed_RGB_S3TC_DXT1_ANGLE,
-			Compressed_RGBA_S3TC_DXT1_ANGLE,
-			Compressed_RGBA_S3TC_DXT3_ANGLE,
-			Compressed_RGBA_S3TC_DXT5_ANGLE,
-			Compressed_RGBA_BPTC_UNORM,
-			Compressed_SRGB_ALPHA_BPTC_UNORM,
-			Compressed_RGB_BPTC_SIGNED_FLOAT,
-			Compressed_RGB_BPTC_UNSIGNED_FLOAT,
-		};
-
-		enum class TextureDocument::Type
-		{
-			Invalid,
-			UnsignedByte,
-		};
-
-		std::optional<TextureDocument> LoadTextureDocument(std::string path);
-	}
-
-	namespace AssMan = AssetManager;
-}
\ No newline at end of file
diff --git a/src/Engine/AssetManager/TextureDocument.inl b/src/Engine/AssetManager/TextureDocument.inl
deleted file mode 100644
index 1f04cc2..0000000
--- a/src/Engine/AssetManager/TextureDocument.inl
+++ /dev/null
@@ -1,201 +0,0 @@
-#pragma once
-
-#include "TextureDocument.hpp"
-
-#include <string>
-#include <optional>
-
-#include "ktx.h"
-
-namespace Engine
-{
-	namespace AssetManager
-	{
-		TextureDocument::Format ConvertGLFormat(uint32_t glFormat);
-		TextureDocument::Type ConvertGLType(uint32_t glType);
-
-		TextureDocument::TextureDocument(CreateInfo&& info) :
-			byteArray(std::move(info.byteArray)),
-			baseInternalFormat(info.baseInternalFormat),
-			internalFormat(info.internalFormat),
-			type(info.type),
-			numDimensions(info.numDimensions),
-			dimensions(info.dimensions),
-			numLayers(info.numLayers),
-			numLevels(info.numLevels),
-			isCompressed(info.isCompressed)
-		{
-
-		}
-
-		TextureDocument::~TextureDocument()
-		{
-			
-		}
-
-		const std::vector<uint8_t>& TextureDocument::GetByteArray() const
-		{
-			return byteArray;
-		}
-
-		const uint8_t* TextureDocument::GetData() const
-		{
-			return byteArray.data();
-		}
-
-		size_t TextureDocument::GetByteLength() const
-		{
-			return byteArray.size();
-		}
-
-		const std::array<uint32_t, 3>& TextureDocument::GetDimensions() const
-		{
-			return dimensions;
-		}
-
-		bool TextureDocument::IsCompressed() const
-		{
-			return isCompressed;
-		}
-
-		TextureDocument::Format TextureDocument::GetBaseInternalFormat() const
-		{
-			return baseInternalFormat;
-		}
-
-		TextureDocument::Format TextureDocument::GetInternalFormat() const
-		{
-			return internalFormat;
-		}
-
-		TextureDocument::Type TextureDocument::GetType() const
-		{
-			return type;
-		}
-
-		TextureDocument::CreateInfo TextureDocument::ToCreateInfo(TextureDocument&& texDoc)
-		{
-			CreateInfo info{};
-
-			info.byteArray = std::move(texDoc.byteArray);
-			info.isCompressed = texDoc.isCompressed;
-			info.baseInternalFormat = texDoc.baseInternalFormat;
-			info.internalFormat = texDoc.internalFormat;
-			info.type = texDoc.type;
-			info.numDimensions = texDoc.numDimensions;
-			info.dimensions = texDoc.dimensions;
-			info.numLayers = texDoc.numLayers;
-			info.numLevels = texDoc.numLevels;
-
-			return info;
-		}
-
-		std::optional<TextureDocument> LoadTextureDocument(std::string path)
-		{
-			if (path == "")
-				return {};
-
-			ktxTexture* texture = nullptr;
-			KTX_error_code result = ktxTexture_CreateFromNamedFile(path.c_str(), KTX_TEXTURE_CREATE_NO_FLAGS, &texture);
-			if (result != KTX_SUCCESS)
-				return  {};
-
-			TextureDocument::CreateInfo createInfo{};
-
-			createInfo.byteArray.resize(texture->dataSize);
-
-			result = ktxTexture_LoadImageData(texture, createInfo.byteArray.data(), createInfo.byteArray.size());
-
-			createInfo.numDimensions = texture->numDimensions;
-			createInfo.dimensions = { texture->baseWidth, texture->baseHeight, texture->baseDepth };
-
-			createInfo.numLayers = texture->numLayers;
-			createInfo.numLevels = texture->numLevels;
-
-			createInfo.isCompressed = texture->isCompressed;
-			createInfo.type = ConvertGLType(texture->glType);
-			createInfo.baseInternalFormat = ConvertGLFormat(texture->glBaseInternalformat);
-			createInfo.internalFormat = ConvertGLFormat(texture->glInternalformat);
-
-			ktxTexture_Destroy(texture);
-
-			return std::optional<TextureDocument>( std::move(TextureDocument(std::move(createInfo))) );
-		}
-	}
-}
-
-namespace Engine
-{
-	namespace AssetManager
-	{
-		TextureDocument::Type ConvertGLType(uint32_t glType)
-		{
-			using Type = TextureDocument::Type;
-
-			constexpr auto GL_UNSIGNED_BYTE = 0x1401;
-
-			switch (glType)
-			{
-			case GL_UNSIGNED_BYTE:
-				return Type::UnsignedByte;
-			default:
-				return Type::Invalid;
-			}
-		}
-
-		TextureDocument::Format ConvertGLFormat(uint32_t glFormat)
-		{
-			using Format = TextureDocument::Format;
-
-			// Uncompressed
-			constexpr auto GL_RGB = 0x1907;
-			constexpr auto GL_RGBA = 0x1908;
-			constexpr auto GL_RGBA8 = 0x8058;
-			switch (glFormat)
-			{
-			case GL_RGB:
-				return Format::RGB;
-			case GL_RGBA:
-				return Format::RGBA;
-			case GL_RGBA8:
-				return Format::R8G8B8A8;
-			};
-
-			// DXT
-			constexpr auto GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE = 0x83F0;
-			constexpr auto GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE = 0x83F1;
-			constexpr auto GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2;
-			constexpr auto GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3;
-			switch (glFormat)
-			{
-			case GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE:
-				return Format::Compressed_RGB_S3TC_DXT1_ANGLE;
-			case GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE:
-				return Format::Compressed_RGBA_S3TC_DXT1_ANGLE;
-			case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-				return Format::Compressed_RGBA_S3TC_DXT3_ANGLE;
-			case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-				return Format::Compressed_RGBA_S3TC_DXT5_ANGLE;
-			}
-
-			// BPTC
-			constexpr auto GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C;
-			constexpr auto GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D;
-			constexpr auto GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E;
-			constexpr auto GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F;
-			switch (glFormat)
-			{
-			case GL_COMPRESSED_RGBA_BPTC_UNORM:
-				return Format::Compressed_RGBA_BPTC_UNORM;
-			case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:
-				return Format::Compressed_SRGB_ALPHA_BPTC_UNORM;
-			case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:
-				return Format::Compressed_RGB_BPTC_SIGNED_FLOAT;
-			case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:
-				return Format::Compressed_RGB_BPTC_UNSIGNED_FLOAT;
-			}
-
-			return Format::Invalid;
-		}
-	}
-}
\ No newline at end of file
diff --git a/src/Engine/Engine.cpp b/src/Engine/Engine.cpp
index bf310dd..d613028 100644
--- a/src/Engine/Engine.cpp
+++ b/src/Engine/Engine.cpp
@@ -42,7 +42,7 @@ namespace Engine
 		rendererInitInfo.surfaceHandle = Application::Core::GetMainWindowHandle();
 
 		rendererInitInfo.assetLoadCreateInfo.meshLoader = &LoadMesh;
-		rendererInitInfo.assetLoadCreateInfo.textureLoader = &LoadTexture;
+		//rendererInitInfo.assetLoadCreateInfo.textureLoader = &LoadTexture;
 
 		rendererInitInfo.openGLInitInfo.glSwapBuffers = &Application::Core::GL_SwapWindow;
 		Renderer::Core::Initialize(rendererInitInfo);
@@ -106,7 +106,7 @@ void Engine::Core::Run()
 	while (Application::Core::UpdateEvents(), Application::IsRunning())
 	{
 		// Handles origin movement for camera
-		const float speed = 2.5f;
+		const float speed = 5.f;
 		auto cross = Math::Vector3D::Cross(camera.forward, camera.up);
 		if (Input::Raw::GetValue(Input::Raw::Button::A))
 			camera.positionOffset -= cross * speed * scene1.GetTimeData().GetDeltaTime();
diff --git a/src/Engine/Renderer/OpenGL.cpp b/src/Engine/Renderer/OpenGL.cpp
index 3e71b04..945f90b 100644
--- a/src/Engine/Renderer/OpenGL.cpp
+++ b/src/Engine/Renderer/OpenGL.cpp
@@ -1,9 +1,11 @@
 #include "Renderer.hpp"
 #include "RendererData.hpp"
 #include "MeshDocument.hpp"
-#include "TextureDocument.hpp"
 #include "OpenGL.hpp"
 
+#define DTEX_IMPLEMENTATION
+#include "DTex/DTex.hpp"
+
 #include "GL/glew.h"
 
 #include <cassert>
@@ -43,11 +45,9 @@ namespace Engine
 			void LoadSpriteShader(Data& data);
 			void LoadMeshShader(Data& data);
 
-			void GLDebugOutputCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam);
+            void GLAPIENTRY GLDebugOutputCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam);
 
 			GLint ToGLType(MeshDocument::IndexType indexType);
-			GLint ToGLFormat(TextureDocument::Format format);
-			GLint ToGLType(TextureDocument::Type type);
 		}
 	}
 
@@ -264,12 +264,12 @@ namespace Engine
 		glBindBufferRange(GL_UNIFORM_BUFFER, 1, data.lightDataUBO, 0, sizeof(LightDataUBO));
 	}
 
-	void Renderer::OpenGL::GLDebugOutputCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
+	void GLAPIENTRY Renderer::OpenGL::GLDebugOutputCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
 	{
 		LogDebugMessage(message);
 	}
 
-	void Renderer::OpenGL::Initialize(std::any& apiData, const InitInfo& createInfo)
+    void Renderer::OpenGL::Initialize(std::any& apiData, const InitInfo& createInfo)
 	{
 		auto glInitResult = glewInit();
 		assert(glInitResult == 0);
@@ -279,6 +279,7 @@ namespace Engine
 
 		data.glSwapBuffers = std::move(createInfo.glSwapBuffers);
 
+
 		// Initialize debug stuff
 		if constexpr (Setup::enableDebugging)
 		{
@@ -304,8 +305,9 @@ namespace Engine
 		glGenSamplers(1, &data.samplerObject);
 		glSamplerParameteri(data.samplerObject, GL_TEXTURE_WRAP_S, GL_REPEAT);
 		glSamplerParameteri(data.samplerObject, GL_TEXTURE_WRAP_T, GL_REPEAT);
-		glSamplerParameteri(data.samplerObject, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 		glSamplerParameteri(data.samplerObject, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+		glSamplerParameteri(data.samplerObject, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+		glSamplerParameteri(data.samplerObject, GL_TEXTURE_LOD_BIAS, 0);
 		glBindSampler(0, data.samplerObject);
 
 		glEnable(GL_DEPTH_TEST);
@@ -428,7 +430,7 @@ namespace Engine
 			glUseProgram(data.spriteProgram);
 
 			glProgramUniform1ui(data.spriteProgram, data.spriteSamplerUniform, 0);
-			glBindSampler(0, data.samplerObject);
+			glBindSampler(GL_TEXTURE0, data.samplerObject);
 
 			const auto& spriteVBO = data.quadVBO;
 			glBindVertexArray(spriteVBO.vertexArrayObject);
@@ -499,28 +501,39 @@ namespace Engine
 
 	std::optional<Renderer::OpenGL::IBO> Renderer::OpenGL::GetIBOFromID(size_t id)
 	{
-		auto texDocumentOpt = Core::GetData().assetLoadData.textureLoader(id);
-		assert(texDocumentOpt.has_value());
+		//auto texDocumentOpt = Core::GetData().assetLoadData.textureLoader(id);
+		//assert(texDocumentOpt.has_value());
 
-		auto& texDoc = texDocumentOpt.value();
+		auto texDocOpt = DTex::LoadFromFile("Data/Textures/test.ktx");
+		auto& texDoc = texDocOpt.value();
 
 		IBO ibo;
 
 		glGenTextures(1, &ibo.texture);
-		glBindTexture(GL_TEXTURE_2D, ibo.texture);
-
-		GLint internalFormat = ToGLFormat(texDoc.GetInternalFormat());
-		GLint baseInternalFormat = ToGLFormat(texDoc.GetBaseInternalFormat());
-		GLsizei width = texDoc.GetDimensions()[0];
-		GLsizei height = texDoc.GetDimensions()[1];
-		GLint type = ToGLType(texDoc.GetType());
-		GLsizei byteLength = texDoc.GetByteLength();
-		const uint8_t* data = texDoc.GetData();
-
-		if (texDoc.IsCompressed())
-			glCompressedTexImage2D(GL_TEXTURE_2D, 0, internalFormat, width, height, 0, byteLength, data);
-		else
-			glTexImage2D(GL_TEXTURE_2D, 0, baseInternalFormat, width, height, 0, baseInternalFormat, type, data);
+
+		GLenum target = texDoc.GetGLTarget();
+
+		glBindTexture(target, ibo.texture);
+
+
+		GLint format = texDoc.GetGLFormat();
+		GLenum type = texDoc.GetGLType();
+
+		for (size_t level = 0; level < texDoc.GetMipLevels(); level++)
+		{
+			GLsizei width = texDoc.GetDimensions(level)[0];
+			GLsizei height = texDoc.GetDimensions(level)[1];
+			auto data = texDoc.GetData(level);
+			GLsizei dataLength = texDoc.GetByteLength(level);
+
+			if (texDoc.IsCompressed())
+				glCompressedTexImage2D(target, level, format, width, height, 0, dataLength, data);
+			else
+				glTexImage2D(target, level, format, width, height, 0, format, type, data);
+		}
+
+		glTexParameteri(target, GL_TEXTURE_BASE_LEVEL, 0);
+		glTexParameteri(target, GL_TEXTURE_MAX_LEVEL, texDoc.GetMipLevels() - 1);
 
 		return ibo;
 	}
@@ -588,59 +601,4 @@ namespace Engine
 			return 0;
 		}
 	}
-
-	GLint Renderer::OpenGL::ToGLFormat(TextureDocument::Format format)
-	{
-		using Format = TextureDocument::Format;
-
-		// Uncompressed
-		switch (format)
-		{
-		case Format::RGB:
-			return GL_RGB;
-		case Format::RGBA:
-			return GL_RGBA;
-		case Format::R8G8B8A8:
-			return GL_RGBA8;
-		};
-
-		// DXT
-		switch (format)
-		{
-		case Format::Compressed_RGB_S3TC_DXT1_ANGLE:
-			return GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE;
-		case Format::Compressed_RGBA_S3TC_DXT1_ANGLE:
-			return GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE;
-		case Format::Compressed_RGBA_S3TC_DXT3_ANGLE:
-			return GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE;
-		case Format::Compressed_RGBA_S3TC_DXT5_ANGLE:
-			return GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE;
-		}
-
-		switch (format)
-		{
-		case Format::Compressed_RGBA_BPTC_UNORM:
-			return GL_COMPRESSED_RGBA_BPTC_UNORM;
-		case Format::Compressed_SRGB_ALPHA_BPTC_UNORM:
-			return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM;
-		case Format::Compressed_RGB_BPTC_SIGNED_FLOAT:
-			return GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT;
-		case Format::Compressed_RGB_BPTC_UNSIGNED_FLOAT:
-			return GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT;
-		}
-
-		return 0;
-	}
-
-	GLint Renderer::OpenGL::ToGLType(TextureDocument::Type type)
-	{
-		using Type = TextureDocument::Type;
-		switch (type)
-		{
-		case Type::UnsignedByte:
-			return GL_UNSIGNED_BYTE;
-		default:
-			return 0;
-		}
-	}
 }
\ No newline at end of file
diff --git a/src/Engine/Renderer/Renderer.cpp b/src/Engine/Renderer/Renderer.cpp
index 9029ffc..8491096 100644
--- a/src/Engine/Renderer/Renderer.cpp
+++ b/src/Engine/Renderer/Renderer.cpp
@@ -374,5 +374,4 @@ namespace Engine
 	}
 }
 
-#include "MeshDocument.inl"
-#include "TextureDocument.inl"
\ No newline at end of file
+#include "MeshDocument.inl"
\ No newline at end of file
diff --git a/src/Engine/Renderer/TextureDocument.hpp b/src/Engine/Renderer/TextureDocument.hpp
deleted file mode 100644
index fbc3d38..0000000
--- a/src/Engine/Renderer/TextureDocument.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-#pragma once
-
-#include <array>
-#include <vector>
-#include <cstddef>
-
-namespace Engine
-{
-	namespace Renderer
-	{
-		class TextureDocument
-		{
-		public:
-			enum class Format;
-			enum class Type;
-			struct CreateInfo;
-
-			TextureDocument() = delete;
-			explicit TextureDocument(CreateInfo&&);
-			explicit TextureDocument(TextureDocument&&) = default;
-			TextureDocument(const TextureDocument&) = delete;
-			~TextureDocument();
-
-			const std::vector<uint8_t>& GetByteArray() const;
-			const uint8_t* GetData() const;
-			size_t GetByteLength() const;
-
-			const std::array<uint32_t, 3>& GetDimensions() const;
-
-
-			Format GetBaseInternalFormat() const;
-			Format GetInternalFormat() const;
-			Type GetType() const;
-
-			bool IsCompressed() const;
-
-			static CreateInfo ToCreateInfo(TextureDocument&& texDoc);
-
-		private:
-			std::vector<uint8_t> byteArray;
-			Format internalFormat{};
-			Format baseInternalFormat{};
-			Type type{};
-			uint8_t numDimensions = 0;
-			std::array<uint32_t, 3> dimensions{};
-			size_t numLayers = 0;
-			size_t numLevels = 0;
-			bool isCompressed = false;
-		};
-
-		struct TextureDocument::CreateInfo
-		{
-			std::vector<uint8_t> byteArray;
-			Format internalFormat{};
-			Format baseInternalFormat{};
-			Type type{};
-			uint8_t numDimensions = 0;
-			std::array<uint32_t, 3> dimensions{};
-			size_t numLayers = 0;
-			size_t numLevels = 0;
-			bool isCompressed = false;
-		};
-
-		enum class TextureDocument::Format
-		{
-			Invalid,
-			RGBA,
-			RGB,
-			R8G8B8A8,
-			Compressed_RGB_S3TC_DXT1_ANGLE,
-			Compressed_RGBA_S3TC_DXT1_ANGLE,
-			Compressed_RGBA_S3TC_DXT3_ANGLE,
-			Compressed_RGBA_S3TC_DXT5_ANGLE,
-			Compressed_RGBA_BPTC_UNORM,
-			Compressed_SRGB_ALPHA_BPTC_UNORM,
-			Compressed_RGB_BPTC_SIGNED_FLOAT,
-			Compressed_RGB_BPTC_UNSIGNED_FLOAT,
-		};
-
-		enum class TextureDocument::Type
-		{
-			Invalid,
-			UnsignedByte,
-		};
-	}
-}
\ No newline at end of file
diff --git a/src/Engine/Renderer/TextureDocument.inl b/src/Engine/Renderer/TextureDocument.inl
deleted file mode 100644
index c2ebeca..0000000
--- a/src/Engine/Renderer/TextureDocument.inl
+++ /dev/null
@@ -1,85 +0,0 @@
-#pragma once
-
-#include "TextureDocument.hpp"
-
-namespace Engine
-{
-	namespace Renderer
-	{
-		TextureDocument::TextureDocument(CreateInfo&& info) :
-			byteArray(std::move(info.byteArray)),
-			baseInternalFormat(info.baseInternalFormat),
-			internalFormat(info.internalFormat),
-			type(info.type),
-			numDimensions(info.numDimensions),
-			dimensions(info.dimensions),
-			numLayers(info.numLayers),
-			numLevels(info.numLevels),
-			isCompressed(info.isCompressed)
-		{
-
-		}
-
-		TextureDocument::~TextureDocument()
-		{
-
-		}
-
-		const std::vector<uint8_t>& TextureDocument::GetByteArray() const
-		{
-			return byteArray;
-		}
-
-		const uint8_t* TextureDocument::GetData() const
-		{
-			return byteArray.data();
-		}
-
-		size_t TextureDocument::GetByteLength() const
-		{
-			return byteArray.size();
-		}
-
-		const std::array<uint32_t, 3>& TextureDocument::GetDimensions() const
-		{
-			return dimensions;
-		}
-
-		bool TextureDocument::IsCompressed() const
-		{
-			return isCompressed;
-		}
-
-		TextureDocument::Format TextureDocument::GetBaseInternalFormat() const
-		{
-			return baseInternalFormat;
-		}
-
-		TextureDocument::Format TextureDocument::GetInternalFormat() const
-		{
-			return internalFormat;
-		}
-
-		TextureDocument::Type TextureDocument::GetType() const
-		{
-			return type;
-		}
-
-		TextureDocument::CreateInfo TextureDocument::ToCreateInfo(TextureDocument&& texDoc)
-		{
-			CreateInfo info{};
-
-			info.byteArray = std::move(texDoc.byteArray);
-			info.isCompressed = texDoc.isCompressed;
-			info.baseInternalFormat = texDoc.baseInternalFormat;
-			info.internalFormat = texDoc.internalFormat;
-			info.type = texDoc.type;
-			info.numDimensions = texDoc.numDimensions;
-			info.dimensions = texDoc.dimensions;
-			info.numLayers = texDoc.numLayers;
-			info.numLevels = texDoc.numLevels;
-
-			return info;
-		}
-	}
-}
\ No newline at end of file
-- 
GitLab