svn merge -r 20486:20651 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
authorAndre Susano Pinto <andresusanopinto@gmail.com>
Fri, 5 Jun 2009 15:19:13 +0000 (15:19 +0000)
committerAndre Susano Pinto <andresusanopinto@gmail.com>
Fri, 5 Jun 2009 15:19:13 +0000 (15:19 +0000)
187 files changed:
CMakeLists.txt
SConstruct
config/darwin-config.py
config/irix6-config.py
config/linux2-config.py
config/linuxcross-config.py
config/openbsd3-config.py
config/sunos5-config.py
config/win32-mingw-config.py
config/win32-vc-config.py
config/win64-vc-config.py
projectfiles_vc9/blender/blender.sln
projectfiles_vc9/blender/editors/ED_editors.vcproj
release/ui/buttons_data_armature.py
release/ui/buttons_data_bone.py
release/ui/buttons_data_camera.py
release/ui/buttons_data_curve.py
release/ui/buttons_data_empty.py
release/ui/buttons_data_lamp.py
release/ui/buttons_data_lattice.py
release/ui/buttons_data_mesh.py
release/ui/buttons_data_modifier.py
release/ui/buttons_data_text.py
release/ui/buttons_material.py
release/ui/buttons_object_constraint.py
release/ui/buttons_objects.py
release/ui/buttons_particle.py [new file with mode: 0644]
release/ui/buttons_physic_cloth.py
release/ui/buttons_scene.py
release/ui/buttons_texture.py
release/ui/buttons_world.py
release/ui/space_outliner.py
release/windows/installer/00.blender.nsi [deleted file]
release/windows/installer/00.checked.bmp [deleted file]
release/windows/installer/00.header.bmp [deleted file]
release/windows/installer/00.installer.adx [deleted file]
release/windows/installer/00.installer.ico [deleted file]
release/windows/installer/00.sconsblender.nsi [deleted file]
release/windows/installer/00.unchecked.bmp [deleted file]
release/windows/installer/01.installer.bmp [deleted file]
release/windows/installer/01.welcome.rtf [deleted file]
release/windows/installer/02.copyright.txt [deleted file]
release/windows/installer/03.readme.txt [deleted file]
release/windows/installer/04.folder.rtf [deleted file]
release/windows/installer/05.progress.rtf [deleted file]
release/windows/installer/06.complete.rtf [deleted file]
release/windows/installer/input/24bits-image.bmp [deleted file]
release/windows/publ_installer/00.installer.adx [deleted file]
release/windows/publ_installer/00.installer.ico [deleted file]
release/windows/publ_installer/01.installer.bmp [deleted file]
release/windows/publ_installer/01.welcome.rtf [deleted file]
release/windows/publ_installer/02.copyright.txt [deleted file]
release/windows/publ_installer/03.readme.txt [deleted file]
release/windows/publ_installer/04.folder.rtf [deleted file]
release/windows/publ_installer/05.progress.rtf [deleted file]
release/windows/publ_installer/06.complete.rtf [deleted file]
source/Makefile
source/blender/CMakeLists.txt
source/blender/Makefile
source/blender/SConscript
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/displist.c
source/blender/blenkernel/intern/lattice.c
source/blender/blenkernel/intern/modifier.c
source/blender/blenkernel/intern/node.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/datafiles/B.blend.c
source/blender/editors/include/ED_fileselect.h
source/blender/editors/include/ED_object.h
source/blender/editors/include/UI_interface.h
source/blender/editors/include/UI_resources.h
source/blender/editors/include/UI_view2d.h
source/blender/editors/interface/interface.c
source/blender/editors/interface/interface_api.c
source/blender/editors/interface/interface_draw.c
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_intern.h
source/blender/editors/interface/interface_layout.c
source/blender/editors/interface/interface_panel.c
source/blender/editors/interface/interface_regions.c
source/blender/editors/interface/interface_style.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/interface/interface_utils.c
source/blender/editors/interface/interface_widgets.c
source/blender/editors/interface/view2d.c
source/blender/editors/mesh/editmesh_tools.c
source/blender/editors/object/editconstraint.c
source/blender/editors/object/object_intern.h
source/blender/editors/object/object_modifier.c
source/blender/editors/object/object_ops.c
source/blender/editors/preview/previewrender.c
source/blender/editors/screen/area.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/space_buttons/buttons_context.c [new file with mode: 0644]
source/blender/editors/space_buttons/buttons_intern.h
source/blender/editors/space_buttons/space_buttons.c
source/blender/editors/space_file/file_draw.c
source/blender/editors/space_file/file_header.c
source/blender/editors/space_file/filelist.c
source/blender/editors/space_file/filelist.h
source/blender/editors/space_file/filesel.c
source/blender/editors/space_file/space_file.c
source/blender/editors/space_info/info_header.c
source/blender/editors/space_outliner/outliner.c
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/editors/space_view3d/view3d_view.c
source/blender/makesdna/DNA_space_types.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesdna/DNA_view3d_types.h
source/blender/makesrna/RNA_access.h
source/blender/makesrna/RNA_define.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_armature.c
source/blender/makesrna/intern/rna_brush.c
source/blender/makesrna/intern/rna_camera.c
source/blender/makesrna/intern/rna_constraint.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_define.c
source/blender/makesrna/intern/rna_fcurve.c
source/blender/makesrna/intern/rna_group.c
source/blender/makesrna/intern/rna_image.c
source/blender/makesrna/intern/rna_internal.h
source/blender/makesrna/intern/rna_internal_types.h
source/blender/makesrna/intern/rna_key.c
source/blender/makesrna/intern/rna_lamp.c
source/blender/makesrna/intern/rna_lattice.c
source/blender/makesrna/intern/rna_main.c
source/blender/makesrna/intern/rna_material.c
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_meta.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_nodetree.c
source/blender/makesrna/intern/rna_nodetree_types.h
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_object_force.c
source/blender/makesrna/intern/rna_particle.c
source/blender/makesrna/intern/rna_rna.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_screen.c
source/blender/makesrna/intern/rna_scriptlink.c
source/blender/makesrna/intern/rna_sound.c
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_text.c
source/blender/makesrna/intern/rna_texture.c
source/blender/makesrna/intern/rna_ui.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/makesrna/intern/rna_vfont.c
source/blender/makesrna/intern/rna_wm.c
source/blender/makesrna/intern/rna_world.c
source/blender/python/intern/bpy_operator.c
source/blender/python/intern/bpy_operator.h
source/blender/python/intern/bpy_operator_wrap.c
source/blender/python/intern/bpy_rna.c
source/blender/python/intern/bpy_rna.h
source/blender/python/intern/bpy_ui.c
source/blender/render/CMakeLists.txt
source/blender/render/SConscript
source/blender/render/intern/source/Makefile
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/pipeline.c
source/blender/windowmanager/intern/wm.c
source/blender/windowmanager/intern/wm_event_system.c
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_operators.c
source/blender/windowmanager/wm.h
source/blender/windowmanager/wm_event_types.h
source/blender/yafray/CMakeLists.txt [deleted file]
source/blender/yafray/Makefile [deleted file]
source/blender/yafray/SConscript [deleted file]
source/blender/yafray/YafRay_Api.h [deleted file]
source/blender/yafray/intern/Makefile [deleted file]
source/blender/yafray/intern/api.cpp [deleted file]
source/blender/yafray/intern/export_File.cpp [deleted file]
source/blender/yafray/intern/export_File.h [deleted file]
source/blender/yafray/intern/export_Plugin.cpp [deleted file]
source/blender/yafray/intern/export_Plugin.h [deleted file]
source/blender/yafray/intern/yafexternal.cpp [deleted file]
source/blender/yafray/intern/yafexternal.h [deleted file]
source/blender/yafray/intern/yafray_Render.cpp [deleted file]
source/blender/yafray/intern/yafray_Render.h [deleted file]
source/nan_compile.mk
tools/btools.py

index f2bf65dfb57545e1645d3b6077e166625c087c08..3efaa82e1f33d6e0f4b0e3e78b32f43507a2b53c 100644 (file)
@@ -67,7 +67,6 @@ OPTION(WITH_OPENJPEG          "Enable OpenJpeg Support (http://www.openjpeg.org/)"    OFF)
 OPTION(WITH_OPENAL             "Enable OpenAL Support (http://www.openal.org)"         ON)
 OPTION(WITH_OPENMP             "Enable OpenMP (has to be supported by the compiler)"   OFF)
 OPTION(WITH_WEBPLUGIN          "Enable Web Plugin (Unix only)"                         OFF)
-OPTION(WITH_YAFRAY             "Enable Yafray (Renderer)"                              OFF)
 
 IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
   MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
index f7986ec878964704a2d43072b7d328c7cb217b46..125594f69c5c26bbcd1a1ee4369941d8a1079689 100644 (file)
@@ -279,7 +279,6 @@ if 'blenderlite' in B.targets:
        target_env_defs['WITH_BF_OPENJPEG'] = False
        target_env_defs['WITH_BF_FFMPEG'] = False
        target_env_defs['WITH_BF_QUICKTIME'] = False
-       target_env_defs['WITH_BF_YAFRAY'] = False
        target_env_defs['WITH_BF_REDCODE'] = False
        target_env_defs['WITH_BF_DDS'] = False
        target_env_defs['WITH_BF_ZLIB'] = False
index 78a8c71b7ddfe1d665d70f50acdaba4dbae1c58a..080820f885a0b7ecfbc5793ffe303714c2167e42 100644 (file)
@@ -155,8 +155,6 @@ BF_SOLID = '#extern/solid'
 BF_SOLID_INC = '${BF_SOLID}'
 BF_SOLID_LIB = 'extern_solid'
 
-WITH_BF_YAFRAY = True
-
 #WITH_BF_NSPR = True
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index 1ef271b50749ecd528c43546d16fb2c7628a4923..a927dfb12be78f5c83ee8311eafc930a2da2ce7c 100644 (file)
@@ -93,8 +93,6 @@ BF_SOLID = '#extern/solid'
 BF_SOLID_INC = '${BF_SOLID}'
 BF_SOLID_LIB = 'extern_solid'
 
-WITH_BF_YAFRAY = 'true'
-
 #WITH_BF_NSPR = 'true'
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index eb93d8084f172398d80d207d6ab25bf0a95f219f..f57124327940b83f01d415efc68e77e75130ec2b 100644 (file)
@@ -87,8 +87,6 @@ BF_SOLID = '#extern/solid'
 BF_SOLID_INC = '${BF_SOLID}'
 BF_SOLID_LIB = 'extern_solid'
 
-WITH_BF_YAFRAY = True
-
 #WITH_BF_NSPR = True
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index 4b17224eacc488f9c4d9c3c5aefee13f34a5498f..2f15ef67e6ccb4ed8e415007248b8db9c3a85c36 100644 (file)
@@ -1,8 +1,6 @@
 LCGDIR = '#../lib/windows'
 LIBDIR = '${LCGDIR}'
 
-WITH_BF_YAFRAY = True
-
 BF_PYTHON = LIBDIR + '/python'
 BF_PYTHON_VERSION = '2.5'
 BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
index 6a7518a79287c1bd930de7b97883edddbf579b5b..f27066b43f7fce0a2469d559950f4546710c804b 100644 (file)
@@ -75,8 +75,6 @@ BF_SOLID = '#extern/solid'
 BF_SOLID_INC = '${BF_SOLID}'
 BF_SOLID_LIB = 'extern_solid'
 
-WITH_BF_YAFRAY = True
-
 #WITH_BF_NSPR = True
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index 25f200fe346d86e93b9b06517445ad8207a12d42..e050a5950aa4bf98bb0fefaf3fec3b0a85ab2c48 100644 (file)
@@ -83,8 +83,6 @@ BF_SOLID = '#extern/solid'
 BF_SOLID_INC = '${BF_SOLID}'
 BF_SOLID_LIB = 'extern_solid'
 
-WITH_BF_YAFRAY = True
-
 #WITH_BF_NSPR = True
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index a579d21a54471d52f5f30f6e259474f7a89eb55e..5b9b2f9b9dc5390d20b00f2997acdb3bc60ab58e 100644 (file)
@@ -94,8 +94,6 @@ BF_SOLID_LIB = 'extern_solid'
 BF_WINTAB = LIBDIR + '/wintab'
 BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
 
-WITH_BF_YAFRAY = True
-
 #WITH_BF_NSPR = True
 #BF_NSPR = $(LIBDIR)/nspr
 #BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
index b94a9c4effe01639b34ea7fc04e03c747deb7acd..1fc1d219f5727aced1aba5571ebd8fbd5c71ff6f 100644 (file)
@@ -107,8 +107,6 @@ BF_SOLID_LIB = 'extern_solid'
 BF_WINTAB = LIBDIR + '/wintab'
 BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
 
-WITH_BF_YAFRAY = True
-
 WITH_BF_BINRELOC = False
 
 #WITH_BF_NSPR = True
index 945efecdc3c784d422ac83fbe53dee359db7ab26..172fb286fc8ea68bd41adabbca8a663b1fe3abd1 100644 (file)
@@ -110,8 +110,6 @@ BF_SOLID_LIB = 'extern_solid'
 BF_WINTAB = LIBDIR + '/wintab'
 BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
 
-WITH_BF_YAFRAY = True
-
 WITH_BF_BINRELOC = False
 
 #WITH_BF_NSPR = True
index 315adc06723b7b3f7d0ec300e0ca717b25d0e0db..b782f9b8a864a5be175080dfd308f314ad2c34d9 100644 (file)
@@ -39,7 +39,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blender", "blender.vcproj",
                {BAC615B0-F1AF-418B-8D23-A10FD8870D6A} = {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}\r
                {E90C7BC2-CF30-4A60-A8F2-0050D592E358} = {E90C7BC2-CF30-4A60-A8F2-0050D592E358}\r
                {8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879} = {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}\r
                {4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}\r
                {0112CAD5-3584-412A-A2E5-1315A00437B4} = {0112CAD5-3584-412A-A2E5-1315A00437B4}\r
                {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9} = {EB75F4D6-2970-4A3A-8D99-2BAD7201C0E9}\r
@@ -210,8 +209,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_messaging", "..\kernel\
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PHY_Sumo", "..\gameengine\physics\PHY_Physics\PHY_Sumo\PHY_Sumo.vcproj", "{9625642D-6F20-4FB6-A089-BE7441B223E3}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BRE_yafray", "yafray\BRE_yafray.vcproj", "{9991A3C3-83FE-4AFE-9E18-9D01CB57E879}"\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PHY_Bullet", "..\gameengine\physics\PHY_Physics\PHY_Bullet\PHY_Bullet.vcproj", "{E90C7BC2-CF30-4A60-A8F2-0050D592E358}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {FFD3C64A-30E2-4BC7-BC8F-51818C320400} = {FFD3C64A-30E2-4BC7-BC8F-51818C320400}\r
@@ -831,20 +828,6 @@ Global
                {9625642D-6F20-4FB6-A089-BE7441B223E3}.Debug|Win32.Build.0 = 3D Plugin Debug|Win32\r
                {9625642D-6F20-4FB6-A089-BE7441B223E3}.Release|Win32.ActiveCfg = BlenderPlayer Release|Win32\r
                {9625642D-6F20-4FB6-A089-BE7441B223E3}.Release|Win32.Build.0 = BlenderPlayer Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.3D Plugin Debug|Win32.ActiveCfg = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.3D Plugin Debug|Win32.Build.0 = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.3D Plugin Release|Win32.ActiveCfg = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.3D Plugin Release|Win32.Build.0 = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Blender Debug|Win32.ActiveCfg = Blender Debug|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Blender Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Blender Release|Win32.ActiveCfg = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Blender Release|Win32.Build.0 = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Debug|Win32.ActiveCfg = Blender Debug|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Debug|Win32.Build.0 = Blender Debug|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Release|Win32.ActiveCfg = Blender Release|Win32\r
-               {9991A3C3-83FE-4AFE-9E18-9D01CB57E879}.Release|Win32.Build.0 = Blender Release|Win32\r
                {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32\r
                {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Debug|Win32.Build.0 = 3D Plugin Debug|Win32\r
                {E90C7BC2-CF30-4A60-A8F2-0050D592E358}.3D Plugin Release|Win32.ActiveCfg = 3D Plugin Release|Win32\r
index 3ed0e772d2ff2224aa5a56cbbcc4e33e21e58b6b..8fa89f2c4a5ff296ef8ec20c595ed02fb801e6a1 100644 (file)
                <Filter\r
                        Name="space_buttons"\r
                        >\r
+                       <File\r
+                               RelativePath="..\..\..\source\blender\editors\space_buttons\buttons_context.c"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\..\source\blender\editors\space_buttons\buttons_header.c"\r
                                >\r
index 1d0043a5179df34c02a996b9a9a98bccb954aaf0..46a077ebfdb7b51db74b616e490040afd52df940 100644 (file)
@@ -7,15 +7,14 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'ARMATURE')
+               return (context.armature != None)
 
 class DATA_PT_skeleton(DataButtonsPanel):
        __idname__ = "DATA_PT_skeleton"
        __label__ = "Skeleton"
 
        def draw(self, context):
-               arm = context.active_object.data
+               arm = context.armature
                layout = self.layout
                
                layout.itemR(arm, "rest_position")
@@ -42,7 +41,7 @@ class DATA_PT_display(DataButtonsPanel):
        __label__ = "Display"
        
        def draw(self, context):
-               arm = context.active_object.data
+               arm = context.armature
                layout = self.layout
 
                split = layout.split()
@@ -62,7 +61,7 @@ class DATA_PT_paths(DataButtonsPanel):
        __label__ = "Paths"
 
        def draw(self, context):
-               arm = context.active_object.data
+               arm = context.armature
                layout = self.layout
 
                split = layout.split()
@@ -90,7 +89,7 @@ class DATA_PT_ghost(DataButtonsPanel):
        __label__ = "Ghost"
 
        def draw(self, context):
-               arm = context.active_object.data
+               arm = context.armature
                layout = self.layout
 
                split = layout.split()
@@ -111,4 +110,4 @@ class DATA_PT_ghost(DataButtonsPanel):
 bpy.types.register(DATA_PT_skeleton)
 bpy.types.register(DATA_PT_display)
 bpy.types.register(DATA_PT_paths)
-bpy.types.register(DATA_PT_ghost)
\ No newline at end of file
+bpy.types.register(DATA_PT_ghost)
index a4e0fe4e2fb5caca20b5b7d74bf0692937bc6545..75c201f015e7856175d015570615571f1c675a04 100644 (file)
@@ -7,15 +7,14 @@ class BoneButtonsPanel(bpy.types.Panel):
        __context__ = "bone"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'ARMATURE')
+               return (context.bone != None)
 
 class BONE_PT_bone(BoneButtonsPanel):
        __idname__ = "BONE_PT_bone"
        __label__ = "Bone"
 
        def draw(self, context):
-               bone = context.active_object.data.bones[0]
+               bone = context.bone
                layout = self.layout
 
                split = layout.split()
index 9770fdaf8ebf0a90bfef48423d66f26754efddd6..7f3682b1c942545ef0be79a8c3af8b895d3cc648 100644 (file)
@@ -7,15 +7,14 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
 
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'CAMERA')
+               return (context.camera != None)
                
 class DATA_PT_cameralens(DataButtonsPanel):
        __idname__ = "DATA_PT_camera"
        __label__ = "Lens"
 
        def draw(self, context):
-               cam = context.active_object.data
+               cam = context.camera
                layout = self.layout
 
                layout.itemR(cam, "type", expand=True)
@@ -52,7 +51,7 @@ class DATA_PT_cameradisplay(DataButtonsPanel):
        __label__ = "Display"
        
        def draw(self, context):
-               cam = context.active_object.data
+               cam = context.camera
                layout = self.layout
 
                split = layout.split()
@@ -63,11 +62,12 @@ class DATA_PT_cameradisplay(DataButtonsPanel):
                sub.itemR(cam, "show_title_safe", text="Title Safe")
                sub.itemR(cam, "show_name", text="Name")
                        
-               sub = split.column()
-               sub.itemR(cam, "show_passepartout", text="Passepartout")
-               if (cam.show_passepartout):
-                       sub.itemR(cam, "passepartout_alpha", text="Alpha", slider=True)
-               sub.itemR(cam, "draw_size", text="Size")
+               col = split.column()
+               col.itemR(cam, "show_passepartout", text="Passepartout")
+               colsub = col.column()
+               colsub.active = cam.show_passepartout
+               colsub.itemR(cam, "passepartout_alpha", text="Alpha", slider=True)
+               col.itemR(cam, "draw_size", text="Size")
                
 bpy.types.register(DATA_PT_cameralens)
-bpy.types.register(DATA_PT_cameradisplay)
\ No newline at end of file
+bpy.types.register(DATA_PT_cameradisplay)
index 12a1fefd47800299001e6338038b342d43c0186c..9baee5516bed9c7a4e5599ff334cec3f3d30f1f0 100644 (file)
@@ -7,29 +7,31 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'CURVE')
+               ob = context.object
+               return (ob and ob.type == 'CURVE' and context.curve)
 
 class DATA_PT_shape_curve(DataButtonsPanel):
                __idname__ = "DATA_PT_shape_curve"
                __label__ = "Shape"
 
                def draw(self, context):
-                       curve = context.active_object.data
+                       curve = context.curve
                        layout = self.layout
 
                        layout.itemR(curve, "curve_2d")                 
                                                        
                        split = layout.split()
                
-                       sub = split.column()
-                       sub.itemL(text="Caps:")
-                       sub.itemR(curve, "front")
-                       sub.itemR(curve, "back")
+                       col = split.column()
+                       colsub = col.column()
+                       colsub.active = curve.curve_2d
+                       colsub.itemL(text="Caps:")
+                       colsub.itemR(curve, "front")
+                       colsub.itemR(curve, "back")
                        
-                       sub.itemL(text="Textures:")
-                       sub.itemR(curve, "uv_orco")
-                       sub.itemR(curve, "auto_texspace")
+                       col.itemL(text="Textures:")
+                       col.itemR(curve, "uv_orco")
+                       col.itemR(curve, "auto_texspace")
                        
                        sub = split.column()    
                        sub.itemL(text="Resolution:")
@@ -48,7 +50,7 @@ class DATA_PT_geometry(DataButtonsPanel):
                __label__ = "Geometry"
 
                def draw(self, context):
-                       curve = context.active_object.data
+                       curve = context.curve
                        layout = self.layout
 
                        split = layout.split()
@@ -68,12 +70,17 @@ class DATA_PT_geometry(DataButtonsPanel):
 class DATA_PT_pathanim(DataButtonsPanel):
                __idname__ = "DATA_PT_pathanim"
                __label__ = "Path Animation"
+               
+               def draw_header(self, context):
+                       curve = context.curve
 
-               def draw(self, context):
-                       curve = context.active_object.data
                        layout = self.layout
+                       layout.itemR(curve, "path", text="")
 
-                       layout.itemR(curve, "path", text="Enable")
+               def draw(self, context):
+                       curve = context.curve
+                       layout = self.layout
+                       layout.active = curve.path      
                        
                        split = layout.split()          
                        
@@ -90,7 +97,7 @@ class DATA_PT_current_curve(DataButtonsPanel):
                __label__ = "Current Curve"
 
                def draw(self, context):
-                       currentcurve = context.active_object.data.curves[0]
+                       currentcurve = context.curve.curves[0] # XXX
                        layout = self.layout
 
                        split = layout.split()
@@ -102,9 +109,6 @@ class DATA_PT_current_curve(DataButtonsPanel):
                        sub.itemL(text="Order:")
                        sub.itemR(currentcurve, "order_u", text="U")
                        sub.itemR(currentcurve, "order_v", text="V")
-                       sub.itemL(text="Point Count:")                  
-                       sub.itemR(currentcurve, "point_count_u", text="U")
-                       sub.itemR(currentcurve, "point_count_v", text="V")
                        sub.itemL(text="Endpoints:")
                        sub.itemR(currentcurve, "endpoint_u", text="U")
                        sub.itemR(currentcurve, "endpoint_v", text="V")
@@ -124,4 +128,4 @@ class DATA_PT_current_curve(DataButtonsPanel):
 bpy.types.register(DATA_PT_shape_curve)
 bpy.types.register(DATA_PT_geometry)
 bpy.types.register(DATA_PT_pathanim)
-bpy.types.register(DATA_PT_current_curve)
\ No newline at end of file
+bpy.types.register(DATA_PT_current_curve)
index 94caa4ed700551f5c800e1456447e3c4d6edab88..7f994c94a07e28dc70c041b21fe6080c7661d2a9 100644 (file)
@@ -7,7 +7,7 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
+               ob = context.object
                return (ob and ob.type == 'EMPTY')
        
 class DATA_PT_empty(DataButtonsPanel):
@@ -15,10 +15,10 @@ class DATA_PT_empty(DataButtonsPanel):
        __label__ = "Empty"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                layout.itemR(ob, "empty_draw_type")
                layout.itemR(ob, "empty_draw_size")
                
-bpy.types.register(DATA_PT_empty)
\ No newline at end of file
+bpy.types.register(DATA_PT_empty)
index 157a89eb2c710246837f7ee2d3e5b5e0e2804b8e..86be9cd1a68b5ee600c27db8544eb8029ba941ad 100644 (file)
@@ -7,15 +7,14 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'LAMP')
+               return (context.lamp != None)
        
 class DATA_PT_lamp(DataButtonsPanel):
        __idname__ = "DATA_PT_lamp"
        __label__ = "Lamp"
 
        def draw(self, context):
-               lamp = context.active_object.data
+               lamp = context.lamp
                layout = self.layout
 
                layout.itemR(lamp, "type", expand=True)
@@ -56,54 +55,54 @@ class DATA_PT_sunsky(DataButtonsPanel):
        __label__ = "Sun/Sky"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob.type == 'LAMP' and ob.data.type == 'SUN')
+               lamp = context.lamp
+               return (lamp and lamp.type == 'SUN')
 
        def draw(self, context):
-               lamp = context.active_object.data.sky
+               lamp = context.lamp.sky
                layout = self.layout
 
                row = layout.row()
                row.itemR(lamp, "sky")
                row.itemR(lamp, "atmosphere")
                
-               if lamp.sky or lamp.atmosphere:
-                       layout.itemR(lamp, "atmosphere_turbidity", text="Turbidity")
-                       
-                       split = layout.split()
+               row = layout.row()
+               row.active = lamp.sky or lamp.atmosphere
+               row.itemR(lamp, "atmosphere_turbidity", text="Turbidity")
                        
-                       col = split.column()
-                       if lamp.sky:
-                               sub = col.column()
-                               sub.itemR(lamp, "sky_blend_type", text="Blend Type")
-                               sub.itemR(lamp, "sky_blend")
-                               sub.itemR(lamp, "sky_color_space", text="Color Space")
-                               sub.itemR(lamp, "sky_exposure")
-                               
-                               sub = col.column()
-                               sub.itemR(lamp, "horizon_brightness", text="Hor Bright")
-                               sub.itemR(lamp, "spread", text="Hor Spread")
-                               sub.itemR(lamp, "sun_brightness", text="Sun Bright")
-                               sub.itemR(lamp, "sun_size")
-                               sub.itemR(lamp, "backscattered_light", text="Back Light")
+               split = layout.split()
+
+               col = split.column()
+               
+               sub = col.column()
+               sub.active = lamp.sky
+               sub.itemR(lamp, "sky_blend_type", text="Blend Type")
+               sub.itemR(lamp, "sky_blend")
+               sub.itemR(lamp, "sky_color_space", text="Color Space")
+               sub.itemR(lamp, "sky_exposure")
+               sub.itemR(lamp, "horizon_brightness", text="Hor Bright")
+               sub.itemR(lamp, "spread", text="Hor Spread")
+               sub.itemR(lamp, "sun_brightness", text="Sun Bright")
+               sub.itemR(lamp, "sun_size")
+               sub.itemR(lamp, "backscattered_light", text="Back Light")
                                
-                       sub = split.column()
-                       if lamp.atmosphere:
-                               sub.itemR(lamp, "sun_intensity", text="Sun Intens")
-                               sub.itemR(lamp, "atmosphere_inscattering", text="Inscattering")
-                               sub.itemR(lamp, "atmosphere_extinction", text="Extinction")
-                               sub.itemR(lamp, "atmosphere_distance_factor", text="Distance")
+               sub = split.column()
+               sub.active = lamp.atmosphere
+               sub.itemR(lamp, "sun_intensity", text="Sun Intens")
+               sub.itemR(lamp, "atmosphere_inscattering", text="Inscattering")
+               sub.itemR(lamp, "atmosphere_extinction", text="Extinction")
+               sub.itemR(lamp, "atmosphere_distance_factor", text="Distance")
                                
 class DATA_PT_shadow(DataButtonsPanel):
        __idname__ = "DATA_PT_shadow"
        __label__ = "Shadow"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob.type == 'LAMP' and ob.data.type in ('POINT','SUN', 'SPOT', 'AREA'))
+               lamp = context.lamp
+               return (lamp and lamp.type in ('POINT','SUN', 'SPOT', 'AREA'))
 
        def draw(self, context):
-               lamp = context.active_object.data
+               lamp = context.lamp
                layout = self.layout
 
                layout.itemR(lamp, "shadow_method", expand=True)
@@ -178,11 +177,11 @@ class DATA_PT_spot(DataButtonsPanel):
        __label__ = "Spot"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob.type == 'LAMP' and ob.data.type == 'SPOT')
+               lamp = context.lamp
+               return (lamp and lamp.type == 'SPOT')
 
        def draw(self, context):
-               lamp = context.active_object.data
+               lamp = context.lamp
                layout = self.layout
 
                split = layout.split()
@@ -192,14 +191,36 @@ class DATA_PT_spot(DataButtonsPanel):
                sub.itemR(lamp, "spot_blend", text="Blend")
                sub.itemR(lamp, "square")
                
-               sub = split.column()
-               sub.itemR(lamp, "halo")
-               if lamp.halo:
-                       sub.itemR(lamp, "halo_intensity", text="Intensity")
-                       if lamp.shadow_method == 'BUFFER_SHADOW':
-                               sub.itemR(lamp, "halo_step", text="Step")
+               col = split.column()
+               col.itemR(lamp, "halo")
+               colsub = col.column()
+               colsub.active = lamp.halo
+               colsub.itemR(lamp, "halo_intensity", text="Intensity")
+               if lamp.shadow_method == 'BUFFER_SHADOW':
+                       colsub.itemR(lamp, "halo_step", text="Step")
+
+class DATA_PT_falloff_curve(DataButtonsPanel):
+       __idname__ = "DATA_PT_falloff_curve"
+       __label__ = "Falloff Curve"
+       
+       def poll(self, context):
+               lamp = context.lamp
+
+               if lamp and lamp.type in ('POINT', 'SPOT'):
+                       if lamp.falloff_type == 'CUSTOM_CURVE':
+                               return True
+
+               return False
+
+       def draw(self, context):
+               lamp = context.lamp
+               layout = self.layout
+
+               layout.template_curve_mapping(lamp.falloff_curve)
 
 bpy.types.register(DATA_PT_lamp)
 bpy.types.register(DATA_PT_shadow)
 bpy.types.register(DATA_PT_sunsky)
-bpy.types.register(DATA_PT_spot)
\ No newline at end of file
+bpy.types.register(DATA_PT_spot)
+bpy.types.register(DATA_PT_falloff_curve)
+
index 4bcff9f53892f75f0c4ba1d47dc93ae8b9f66a00..6172c255d154c89d21bf82668385c5d7fbf8bb9b 100644 (file)
@@ -7,15 +7,14 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'LATTICE')
+               return (context.lattice != None)
        
 class DATA_PT_lattice(DataButtonsPanel):
        __idname__ = "DATA_PT_lattice"
        __label__ = "Lattice"
 
        def draw(self, context):
-               lat = context.active_object.data
+               lat = context.lattice
                layout = self.layout
 
                row = layout.row()
@@ -34,4 +33,4 @@ class DATA_PT_lattice(DataButtonsPanel):
                row.itemR(lat, "outside")
                row.itemR(lat, "shape_keys")
 
-bpy.types.register(DATA_PT_lattice)
\ No newline at end of file
+bpy.types.register(DATA_PT_lattice)
index 44a48dcc534b4e9399e0c92e1e5ec7035cd24644..fceb235343a5471da7c7f4ad3d15b492b9d14773 100644 (file)
@@ -1,4 +1,4 @@
-               
+
 import bpy
 
 class DataButtonsPanel(bpy.types.Panel):
@@ -7,26 +7,27 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.type == 'MESH')
+               return (context.mesh != None)
 
 class DATA_PT_surface(DataButtonsPanel):
                __idname__ = "DATA_PT_surface"
-               __label__ = "Surface"
+               __label__ = "Mesh"
 
                def draw(self, context):
-                       mesh = context.active_object.data
+                       mesh = context.mesh
                        layout = self.layout
 
                        split = layout.split()
                
-                       sub = split.column()
-                       sub.itemR(mesh, "autosmooth")
-                       sub.itemR(mesh, "autosmooth_angle", text="Angle")
+                       col = split.column()
+                       col.itemR(mesh, "autosmooth")
+                       colsub = col.column()
+                       colsub.active = mesh.autosmooth
+                       colsub.itemR(mesh, "autosmooth_angle", text="Angle")
                        sub = split.column()
                        sub.itemR(mesh, "vertex_normal_flip")
                        sub.itemR(mesh, "double_sided")
                        
                        layout.itemR(mesh, "texco_mesh")                        
                                                
-bpy.types.register(DATA_PT_surface)            
\ No newline at end of file
+bpy.types.register(DATA_PT_surface)
index 93fa122caf8ed1f1892d3dc38d563de2adb51f6f..0f5d446f889b2f788214cb02159d4fb4d70f94dd 100644 (file)
@@ -7,7 +7,7 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "modifier"
 
        def poll(self, context):
-               ob = context.active_object
+               ob = context.object
                return (ob and ob.type in ('MESH', 'CURVE', 'SURFACE', 'TEXT', 'LATTICE'))
                
 class DATA_PT_modifiers(DataButtonsPanel):
@@ -15,7 +15,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
        __label__ = "Modifiers"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                row = layout.row()
@@ -61,7 +61,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
                                if md.type == 'MASK':
                                        self.mask(box, md)
                                if md.type == 'MESH_DEFORM':
-                                       self.meshdeform(box, md)
+                                       self.mesh_deform(box, md)
                                if md.type == 'MIRROR':
                                        self.mirror(box, md)
                                if md.type == 'MULTIRES':
@@ -104,25 +104,42 @@ class DATA_PT_modifiers(DataButtonsPanel):
                        layout.itemR(md, "length")
                if md.fit_type == 'FIT_CURVE':
                        layout.itemR(md, "curve")
+
+               layout.itemS()
                
                split = layout.split()
                
                col = split.column()
-               sub = col.column()
-               sub.itemR(md, "constant_offset")
-               sub.itemR(md, "constant_offset_displacement", text="Displacement")
-               sub = col.column()
+               col = col.column()
+               col.itemR(md, "constant_offset")
+               colsub = col.column()
+               colsub.active = md.constant_offset
+               colsub.itemR(md, "constant_offset_displacement", text="")
+
+               col.itemS()
+
                sub = col.row().itemR(md, "merge_adjacent_vertices", text="Merge")
-               sub = col.row().itemR(md, "merge_end_vertices", text="First Last")
-               sub = col.itemR(md, "merge_distance", text="Distance")
+               colsub = col.column()
+               colsub.active = md.merge_adjacent_vertices
+               colsub.itemR(md, "merge_end_vertices", text="First Last")
+               colsub.itemR(md, "merge_distance", text="Distance")
                
                col = split.column()
-               sub = col.column()
-               sub.itemR(md, "relative_offset")
-               sub.itemR(md, "relative_offset_displacement", text="Displacement")
-               sub = col.column()
-               sub.itemR(md, "add_offset_object")
-               sub.itemR(md, "offset_object")
+               col = col.column()
+               col.itemR(md, "relative_offset")
+               colsub = col.column()
+               colsub.active = md.relative_offset
+               colsub.itemR(md, "relative_offset_displacement", text="")
+
+               col.itemS()
+
+               col = col.column()
+               col.itemR(md, "add_offset_object")
+               colsub = col.column()
+               colsub.active = md.add_offset_object
+               colsub.itemR(md, "offset_object", text="")
+
+               layout.itemS()
                
                col = layout.column()
                col.itemR(md, "start_cap")
@@ -148,13 +165,19 @@ class DATA_PT_modifiers(DataButtonsPanel):
                layout.itemR(md, "object")
                
        def build(self, layout, md):
-               layout.itemR(md, "start")
-               layout.itemR(md, "length")
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(md, "start")
+               col.itemR(md, "length")
 
-               row = layout.row()
-               row.itemR(md, "randomize")
-               if md.randomize:
-                       row.itemR(md, "seed")
+               col = split.column()
+               col.itemR(md, "randomize")
+               colsub = col.column()
+               colsub.active = md.randomize
+               colsub.itemR(md, "seed")
+                       
+               
                        
        def cast(self, layout, md):
                layout.itemR(md, "cast_type")
@@ -195,10 +218,15 @@ class DATA_PT_modifiers(DataButtonsPanel):
                        layout.itemR(md, "uv_layer")
        
        def edgesplit(self, layout, md):
-               layout.itemR(md, "use_edge_angle", text="Edge Angle")
-               if (md.use_edge_angle):
-                       layout.itemR(md, "split_angle")
-               layout.itemR(md, "use_sharp", text="Sharp Edges")
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(md, "use_edge_angle", text="Edge Angle")
+               colsub = col.column()
+               colsub.active = md.use_edge_angle
+               colsub.itemR(md, "split_angle")
+               col = split.column()
+               col.itemR(md, "use_sharp", text="Sharp Edges")
                
        def explode(self, layout, md):
                layout.itemR(md, "vertex_group")
@@ -231,13 +259,16 @@ class DATA_PT_modifiers(DataButtonsPanel):
                        layout.itemR(md, "vertex_group")
                layout.itemR(md, "inverse")
                
-       def meshdeform(self, layout, md):
+       def mesh_deform(self, layout, md):
                layout.itemR(md, "object")
                layout.itemR(md, "vertex_group")
                layout.itemR(md, "invert")
-               layout.itemR(md, "precision")
-               layout.itemR(md, "dynamic")
-               # Missing: "Bind"
+
+               layout.itemS()
+               layout.itemO("OBJECT_OT_modifier_mdef_bind", text="Bind")
+               row = layout.row()
+               row.itemR(md, "precision")
+               row.itemR(md, "dynamic")
                
        def mirror(self, layout, md):
                layout.itemR(md, "merge_limit")
@@ -248,6 +279,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
                sub.itemR(md, "y")
                sub.itemR(md, "z")
                sub = split.column()
+               sub.itemL(text="Textures:")
                sub.itemR(md, "mirror_u")
                sub.itemR(md, "mirror_v")
                sub = split.column()
@@ -314,10 +346,9 @@ class DATA_PT_modifiers(DataButtonsPanel):
        def smooth(self, layout, md):
                split = layout.split()
                sub = split.column()
-               row = sub.row(align=True)
-               row.itemR(md, "x", toggle=True)
-               row.itemR(md, "y", toggle=True)
-               row.itemR(md, "z", toggle=True)
+               sub.itemR(md, "x")
+               sub.itemR(md, "y")
+               sub.itemR(md, "z")
                sub = split.column()
                sub.itemR(md, "factor")
                sub.itemR(md, "repeat")
@@ -330,9 +361,9 @@ class DATA_PT_modifiers(DataButtonsPanel):
        def subsurf(self, layout, md):
                layout.itemR(md, "subdivision_type")
                col = layout.column_flow()
-               col.itemR(md, "levels")
-               col.itemR(md, "render_levels")
-               col.itemR(md, "optimal_draw")
+               col.itemR(md, "levels", text="Preview")
+               col.itemR(md, "render_levels", text="Render")
+               col.itemR(md, "optimal_draw", text="Optimal Display")
                col.itemR(md, "subsurf_uv")
        
        def uvproject(self, layout, md):
@@ -355,11 +386,11 @@ class DATA_PT_modifiers(DataButtonsPanel):
                
                sub = split.column()
                sub.itemR(md, "normals")
-               if md.normals:
-                       row = sub.row(align=True)
-                       row.itemR(md, "x_normal", text="X", toggle=True)
-                       row.itemR(md, "y_normal", text="Y", toggle=True)
-                       row.itemR(md, "z_normal", text="Z", toggle=True)
+               row = sub.row(align=True)
+               row.active = md.normals
+               row.itemR(md, "x_normal", text="X", toggle=True)
+               row.itemR(md, "y_normal", text="Y", toggle=True)
+               row.itemR(md, "z_normal", text="Z", toggle=True)
                
                col = layout.column_flow()
                col.itemR(md, "time_offset")
@@ -385,4 +416,3 @@ class DATA_PT_modifiers(DataButtonsPanel):
                col.itemR(md, "narrowness", slider=True)
 
 bpy.types.register(DATA_PT_modifiers)
-
index 96147270209dd9bfc56d4428f687e53e95860165..9683dbee22bc84c09b536c1a7c89d59c247677e6 100644 (file)
@@ -7,7 +7,7 @@ class DataButtonsPanel(bpy.types.Panel):
        __context__ = "data"
        
        def poll(self, context):
-               ob = context.active_object
+               ob = context.object
                return (ob and ob.type == 'TEXT')
                
 class DATA_PT_shape_text(DataButtonsPanel):
@@ -15,7 +15,7 @@ class DATA_PT_shape_text(DataButtonsPanel):
                __label__ = "Shape"
 
                def draw(self, context):
-                       curve = context.active_object.data
+                       curve = context.curve
                        layout = self.layout
 
                        layout.itemR(curve, "curve_2d")                 
@@ -46,7 +46,7 @@ class DATA_PT_font(DataButtonsPanel):
        __label__ = "Font"
 
        def draw(self, context):
-               text = context.active_object.data
+               text = context.curve
                layout = self.layout
 
                layout.row()
@@ -77,7 +77,7 @@ class DATA_PT_paragraph(DataButtonsPanel):
        __label__ = "Paragraph"
 
        def draw(self, context):
-               text = context.active_object.data
+               text = context.curve
                layout = self.layout
 
                layout.itemL(text="Align:")
@@ -102,10 +102,10 @@ class DATA_PT_textboxes(DataButtonsPanel):
                __label__ = "Text Boxes"
 
                def draw(self, context):
-                       text = context.active_object.data
+                       text = context.curve
                        layout = self.layout
 
 bpy.types.register(DATA_PT_shape_text) 
 bpy.types.register(DATA_PT_font)
 bpy.types.register(DATA_PT_paragraph)
-#bpy.types.register(DATA_PT_textboxes)
\ No newline at end of file
+#bpy.types.register(DATA_PT_textboxes)
index 7137bccd245e374a4e659d45367987fc956f2521..7cffb5b18cf9b11c5e07c6a9d6ca84d7e76dee75 100644 (file)
@@ -7,8 +7,7 @@ class MaterialButtonsPanel(bpy.types.Panel):
        __context__ = "material"
 
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.active_material)
+               return (context.material != None)
 
 class MATERIAL_PT_preview(MaterialButtonsPanel):
        __idname__= "MATERIAL_PT_preview"
@@ -17,7 +16,7 @@ class MATERIAL_PT_preview(MaterialButtonsPanel):
        def draw(self, context):
                layout = self.layout
 
-               mat = context.active_object.active_material
+               mat = context.material
                layout.template_preview(mat)
        
 class MATERIAL_PT_material(MaterialButtonsPanel):
@@ -26,7 +25,7 @@ class MATERIAL_PT_material(MaterialButtonsPanel):
 
        def draw(self, context):
                layout = self.layout
-               mat = context.active_object.active_material
+               mat = context.material
        
                layout.itemR(mat, "type", expand=True)
 
@@ -42,18 +41,19 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
        __label__ = "Subsurface Scattering"
 
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.active_material and ob.active_material.type == "SURFACE")
+               mat = context.material
+               return (mat and mat.type == "SURFACE")
 
        def draw_header(self, context):
-               sss = context.active_object.active_material.subsurface_scattering
+               sss = context.material.subsurface_scattering
 
                layout = self.layout
                layout.itemR(sss, "enabled", text="")
        
        def draw(self, context):
                layout = self.layout
-               sss = context.active_object.active_material.subsurface_scattering
+               sss = context.material.subsurface_scattering
+               layout.active = sss.enabled     
                
                flow = layout.column_flow()
                flow.itemR(sss, "error_tolerance")
@@ -75,19 +75,19 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
        __label__ = "Ray Mirror"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.active_material and ob.active_material.type == "SURFACE")
+               mat = context.material
+               return (mat and mat.type == "SURFACE")
        
        def draw_header(self, context):
-               raym = context.active_object.active_material.raytrace_mirror
+               raym = context.material.raytrace_mirror
 
                layout = self.layout
                layout.itemR(raym, "enabled", text="")
        
        def draw(self, context):
                layout = self.layout
-               raym = context.active_object.active_material.raytrace_mirror
-
+               raym = context.material.raytrace_mirror
+               layout.active = raym.enabled    
                split = layout.split()
                
                sub = split.column()
@@ -112,18 +112,19 @@ class MATERIAL_PT_raytransp(MaterialButtonsPanel):
        __label__= "Ray Transparency"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.active_material and ob.active_material.type == "SURFACE")
+               mat = context.material
+               return (mat and mat.type == "SURFACE")
 
        def draw_header(self, context):
-               rayt = context.active_object.active_material.raytrace_transparency
+               rayt = context.material.raytrace_transparency
 
                layout = self.layout
                layout.itemR(rayt, "enabled", text="")
 
        def draw(self, context):
                layout = self.layout
-               rayt = context.active_object.active_material.raytrace_transparency
+               rayt = context.material.raytrace_transparency
+               layout.active = rayt.enabled    
                
                split = layout.split()
                
@@ -149,12 +150,12 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
        __label__= "Halo"
        
        def poll(self, context):
-               ob = context.active_object
-               return (ob and ob.active_material and ob.active_material.type == "HALO")
+               mat = context.material
+               return (mat and mat.type == "HALO")
        
        def draw(self, context):
                layout = self.layout
-               mat = context.active_object.active_material
+               mat = context.material
                halo = mat.halo
 
                split = layout.split()
@@ -173,31 +174,28 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
                col.itemR(halo, "soft")
 
                col = split.column()
-               sub = col.column(align=True)
-               sub.itemL(text="Elements:")
-               sub.itemR(halo, "ring")
-               sub.itemR(halo, "lines")
-               sub.itemR(halo, "star")
-               sub.itemR(halo, "flare_mode")
-               
-               sub = col.column()
-               if (halo.ring):
-                       sub.itemR(halo, "rings")
-               if (halo.lines):
-                       sub.itemR(halo, "line_number")
-               if (halo.ring or halo.lines):
-                       sub.itemR(halo, "seed")
-               if (halo.star):
-                       sub.itemR(halo, "star_tips")
-               if (halo.flare_mode):
-                       sub = col.column(align=True)
-                       sub.itemL(text="Flare:")
-                       sub.itemR(halo, "flare_size", text="Size")
-                       sub.itemR(halo, "flare_subsize", text="Subsize")
-                       sub.itemR(halo, "flare_boost", text="Boost")
-                       sub.itemR(halo, "flare_seed", text="Seed")
-                       sub.itemR(halo, "flares_sub", text="Sub")
-                               
+               col = col.column(align=True)
+               col.itemR(halo, "ring")
+               colsub = col.column()
+               colsub.active = halo.ring
+               colsub.itemR(halo, "rings")
+               col.itemR(halo, "lines")
+               colsub = col.column()
+               colsub.active = halo.lines
+               colsub.itemR(halo, "line_number", text="Lines")
+               col.itemR(halo, "star")
+               colsub = col.column()
+               colsub.active = halo.star
+               colsub.itemR(halo, "star_tips")
+               col.itemR(halo, "flare_mode")
+               colsub = col.column()
+               colsub.active = halo.flare_mode
+               colsub.itemR(halo, "flare_size", text="Size")
+               colsub.itemR(halo, "flare_subsize", text="Subsize")
+               colsub.itemR(halo, "flare_boost", text="Boost")
+               colsub.itemR(halo, "flare_seed", text="Seed")
+               colsub.itemR(halo, "flares_sub", text="Sub")
+
 bpy.types.register(MATERIAL_PT_preview)
 bpy.types.register(MATERIAL_PT_material)
 bpy.types.register(MATERIAL_PT_raymir)
index d44e6fdd10de241b0395dcb0563ca4460c8841bb..5b32124ff334b5321b7e3b32c79d8f7f3f42eb0d 100644 (file)
@@ -11,9 +11,47 @@ class ConstraintButtonsPanel(bpy.types.Panel):
                box = layout.template_constraint(con)
 
                if box:
-                       if con.type == "COPY_LOCATION":
+                       if con.type == "CHILD_OF":
+                               self.child_of(box, con)
+                       elif con.type == "TRACK_TO":
+                               self.track_to(box, con)
+                       elif con.type == "IK":
+                               self.ik(box, con)
+                       elif con.type == "FOLLOW_PATH":
+                               self.follow_path(box, con)
+                       elif con.type == "LIMIT_ROTATION":
+                               self.limit_rotation(box, con)
+                       elif con.type == "LIMIT_LOCATION":
+                               self.limit_location(box, con)
+                       elif con.type == "LIMIT_SCALE":
+                               self.limit_scale(box, con)
+                       elif con.type == "COPY_ROTATION":
+                               self.copy_rotation(box, con)
+                       elif con.type == "COPY_LOCATION":
                                self.copy_location(box, con)
-
+                       elif con.type == "COPY_SCALE":
+                               self.copy_scale(box, con)
+                       #elif con.type == "SCRIPT":
+                       #       self.script(box, con)
+                       elif con.type == "ACTION":
+                               self.action(box, con)
+                       elif con.type == "LOCKED_TRACK":
+                               self.locked_track(box, con)
+                       elif con.type == "LIMIT_DISTANCE":
+                               self.limit_distance(box, con)
+                       elif con.type == "STRETCH_TO":
+                               self.stretch_to(box, con)
+                       elif con.type == "FLOOR":
+                               self.floor(box, con)
+                       elif con.type == "RIGID_BODY_JOINT":
+                               self.rigid_body(box, con)
+                       elif con.type == "CLAMP_TO":
+                               self.clamp_to(box, con)
+                       elif con.type == "TRANSFORM":
+                               self.transform(box, con)
+                       elif con.type == "SHRINKWRAP":
+                               self.shrinkwrap(box, con)
+                               
                        # show/key buttons here are most likely obsolete now, with
                        # keyframing functionality being part of every button
                        if con.type not in ("RIGID_BODY_JOINT", "NULL"):
@@ -47,32 +85,437 @@ class ConstraintButtonsPanel(bpy.types.Panel):
                        elif con.target.type in ("MESH", "LATTICE"):
                                layout.itemR(con, "subtarget", text="Vertex Group") # XXX autocomplete
        
+       def child_of(self, layout, con):
+               self.target_template(layout, con)
+
+               split = layout.split()
+               
+               sub = split.column()
+               sub.itemL(text="Location:")
+               sub.itemR(con, "locationx", text="X")
+               sub.itemR(con, "locationy", text="Y")
+               sub.itemR(con, "locationz", text="Z")
+               
+               sub = split.column()
+               sub.itemL(text="Rotation:")
+               sub.itemR(con, "rotationx", text="X")
+               sub.itemR(con, "rotationy", text="Y")
+               sub.itemR(con, "rotationz", text="Z")
+               
+               sub = split.column()
+               sub.itemL(text="Scale:")
+               sub.itemR(con, "sizex", text="X")
+               sub.itemR(con, "sizey", text="Y")
+               sub.itemR(con, "sizez", text="Z")
+               
+               # Missing
+               row = layout.row()
+               row.itemL(text="SET OFFSET")
+               row.itemL(text="CLEAR OFFSET")
+               
+       def track_to(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemL(text="To:")
+               row.itemR(con, "track", expand=True)
+               
+               row = layout.row()
+               row.itemR(con, "up", text="Up")
+               row.itemR(con, "target_z")
+               
+               self.space_template(layout, con)
+               
+       def ik(self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "pole_target")
+               layout.itemR(con, "pole_subtarget")
+               
+               col = layout.column_flow()
+               col.itemR(con, "iterations")
+               col.itemR(con, "pole_angle")
+               col.itemR(con, "weight")
+               col.itemR(con, "orient_weight")
+               col.itemR(con, "chain_length")
+               
+               col = layout.column_flow()
+               col.itemR(con, "tail")
+               col.itemR(con, "rotation")
+               col.itemR(con, "targetless")
+               col.itemR(con, "stretch")
+               
+       def follow_path(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemR(con, "curve_follow")
+               row.itemR(con, "offset")
+               
+               row = layout.row()
+               row.itemL(text="Forward:")
+               row.itemR(con, "forward", expand=True)
+               
+               row = layout.row()
+               row.itemR(con, "up", text="Up")
+               row.itemL()
+               
+       def limit_rotation(self, layout, con):
+               
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(con, "use_limit_x")
+               colsub = col.column()
+               colsub.active = con.use_limit_x
+               colsub.itemR(con, "minimum_x", text="Min")
+               colsub.itemR(con, "maximum_x", text="Max")
+               
+               col = split.column()
+               col.itemR(con, "use_limit_y")
+               colsub = col.column()
+               colsub.active = con.use_limit_y
+               colsub.itemR(con, "minimum_y", text="Min")
+               colsub.itemR(con, "maximum_y", text="Max")
+               
+               col = split.column()
+               col.itemR(con, "use_limit_z")
+               colsub = col.column()
+               colsub.active = con.use_limit_z
+               colsub.itemR(con, "minimum_z", text="Min")
+               colsub.itemR(con, "maximum_z", text="Max")
+               
+               row = layout.row()
+               row.itemR(con, "limit_transform")
+               row.itemL()
+               
+               row = layout.row()
+               row.itemL(text="Convert:")
+               row.itemR(con, "owner_space", text="")
+               
+       def limit_location(self, layout, con):
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(con, "use_minimum_x")
+               colsub = col.column()
+               colsub.active = con.use_minimum_x
+               colsub.itemR(con, "minimum_x", text="")
+               col.itemR(con, "use_maximum_x")
+               colsub = col.column()
+               colsub.active = con.use_maximum_x
+               colsub.itemR(con, "maximum_x", text="")
+               
+               col = split.column()
+               col.itemR(con, "use_minimum_y")
+               colsub = col.column()
+               colsub.active = con.use_minimum_y
+               colsub.itemR(con, "minimum_y", text="")
+               col.itemR(con, "use_maximum_y")
+               colsub = col.column()
+               colsub.active = con.use_maximum_y
+               colsub.itemR(con, "maximum_y", text="")
+               
+               col = split.column()
+               col.itemR(con, "use_minimum_z")
+               colsub = col.column()
+               colsub.active = con.use_minimum_z
+               colsub.itemR(con, "minimum_z", text="")
+               col.itemR(con, "use_maximum_z")
+               colsub = col.column()
+               colsub.active = con.use_maximum_z
+               colsub.itemR(con, "maximum_z", text="")
+       
+               row = layout.row()
+               row.itemR(con, "limit_transform")
+               row.itemL()
+               
+               row = layout.row()
+               row.itemL(text="Convert:")
+               row.itemR(con, "owner_space", text="")
+               
+       def limit_scale(self, layout, con):
+               split = layout.split()
+
+               col = split.column()
+               col.itemR(con, "use_minimum_x")
+               colsub = col.column()
+               colsub.active = con.use_minimum_x
+               colsub.itemR(con, "minimum_x", text="")
+               col.itemR(con, "use_maximum_x")
+               colsub = col.column()
+               colsub.active = con.use_maximum_x
+               colsub.itemR(con, "maximum_x", text="")
+               
+               col = split.column()
+               col.itemR(con, "use_minimum_y")
+               colsub = col.column()
+               colsub.active = con.use_minimum_y
+               colsub.itemR(con, "minimum_y", text="")
+               col.itemR(con, "use_maximum_y")
+               colsub = col.column()
+               colsub.active = con.use_maximum_y
+               colsub.itemR(con, "maximum_y", text="")
+               
+               col = split.column()
+               col.itemR(con, "use_minimum_z")
+               colsub = col.column()
+               colsub.active = con.use_minimum_z
+               colsub.itemR(con, "minimum_z", text="")
+               col.itemR(con, "use_maximum_z")
+               colsub = col.column()
+               colsub.active = con.use_maximum_z
+               colsub.itemR(con, "maximum_z", text="")
+               
+               row = layout.row()
+               row.itemR(con, "limit_transform")
+               row.itemL()
+               
+               row = layout.row()
+               row.itemL(text="Convert:")
+               row.itemR(con, "owner_space", text="")
+       
+       def copy_rotation(self, layout, con):
+               self.target_template(layout, con)
+               
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(con, "rotate_like_x", text="X")
+               colsub = col.column()
+               colsub.active = con.rotate_like_x
+               colsub.itemR(con, "invert_x", text="Invert")
+               
+               col = split.column()
+               col.itemR(con, "rotate_like_y", text="Y")
+               colsub = col.column()
+               colsub.active = con.rotate_like_y
+               colsub.itemR(con, "invert_y", text="Invert")
+               
+               col = split.column()
+               col.itemR(con, "rotate_like_z", text="Z")
+               colsub = col.column()
+               colsub.active = con.rotate_like_z
+               colsub.itemR(con, "invert_z", text="Invert")
+
+               layout.itemR(con, "offset")
+               
+               self.space_template(layout, con)
+               
        def copy_location(self, layout, con):
                self.target_template(layout, con)
                
-               row = layout.row(align=True)
-               row.itemR(con, "locate_like_x", text="X", toggle=True)
-               row.itemR(con, "invert_x", text="-", toggle=True)
-               row.itemR(con, "locate_like_y", text="Y", toggle=True)
-               row.itemR(con, "invert_y", text="-", toggle=True)
-               row.itemR(con, "locate_like_z", text="Z", toggle=True)
-               row.itemR(con, "invert_z", text="-", toggle=True)
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(con, "locate_like_x", text="X")
+               colsub = col.column()
+               colsub.active = con.locate_like_x
+               colsub.itemR(con, "invert_x", text="Invert")
+               
+               col = split.column()
+               col.itemR(con, "locate_like_y", text="Y")
+               colsub = col.column()
+               colsub.active = con.locate_like_y
+               colsub.itemR(con, "invert_y", text="Invert")
+               
+               col = split.column()
+               col.itemR(con, "locate_like_z", text="Z")
+               colsub = col.column()
+               colsub.active = con.locate_like_z
+               colsub.itemR(con, "invert_z", text="Invert")
 
                layout.itemR(con, "offset")
+                       
+               self.space_template(layout, con)
+               
+       def copy_scale(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row(align=True)
+               row.itemR(con, "size_like_x", text="X")
+               row.itemR(con, "size_like_y", text="Y")
+               row.itemR(con, "size_like_z", text="Z")
 
+               layout.itemR(con, "offset")
+               
                self.space_template(layout, con)
+               
+       #def script(self, layout, con):
+       
+       def action(self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "action")
+               layout.itemR(con, "transform_channel")
 
+               split = layout.split()
+       
+               col = split.column(align=True)
+               col.itemR(con, "start_frame", text="Start")
+               col.itemR(con, "end_frame", text="End")
+               
+               col = split.column(align=True)
+               col.itemR(con, "minimum", text="Min")
+               col.itemR(con, "maximum", text="Max")
+               
+               row = layout.row()
+               row.itemL(text="Convert:")
+               row.itemR(con, "owner_space", text="")
+       
+       def locked_track(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemL(text="To:")
+               row.itemR(con, "track", expand=True)
+               
+               row = layout.row()
+               row.itemL(text="Lock:")
+               row.itemR(con, "locked", expand=True)
+               
+       def limit_distance(self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "distance")
+               
+               row = layout.row()
+               row.itemL(text="Clamp Region:")
+               row.itemR(con, "limit_mode", text="")
+               #Missing: Recalculate Button
+               
+       def stretch_to(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemR(con, "original_length", text="Rest Length")
+               row.itemR(con, "bulge", text="Volume Variation")
+               
+               row = layout.row()
+               row.itemL(text="Volume:")
+               row.itemR(con, "volume", expand=True)
+               row.itemL(text="Plane:")
+               row.itemR(con, "keep_axis", expand=True)
+               #Missing: Recalculate Button
+               
+       def floor(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemR(con, "sticky")
+               row.itemR(con, "use_rotation")
+               
+               layout.itemR(con, "offset")
+               
+               row = layout.row()
+               row.itemL(text="Min/Max:")
+               row.itemR(con, "floor_location", expand=True)
+               
+       def rigid_body(self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "pivot_type")
+               layout.itemR(con, "child")
+               
+               row = layout.row()
+               row.itemR(con, "disable_linked_collision", text="No Collision")
+               row.itemR(con, "draw_pivot")
+               
+               split = layout.split()
+               
+               col = split.column()
+               col.itemR(con, "pivot_x")
+               col.itemR(con, "pivot_y")
+               col.itemR(con, "pivot_z")
+               
+               col = split.column()
+               col.itemR(con, "axis_x")
+               col.itemR(con, "axis_y")
+               col.itemR(con, "axis_z")
+               
+               #Missing: Limit arrays (not wrapped in RNA yet) 
+       
+       def clamp_to(self, layout, con):
+               self.target_template(layout, con)
+               
+               row = layout.row()
+               row.itemL(text="Main Axis:")
+               row.itemR(con, "main_axis", expand=True)
+               
+               row = layout.row()
+               row.itemR(con, "cyclic")
+               
+       def transform(self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "extrapolate_motion", text="Extrapolate")
+               
+               split = layout.split()
+               
+               col = split.column()
+               col.itemL(text="Source:")
+               col.row().itemR(con, "map_from", expand=True)
+               
+               sub = col.row(align=True)
+               sub.itemL(text="X:")
+               sub.itemR(con, "from_min_x", text="")
+               sub.itemR(con, "from_max_x", text="")
+               
+               sub = col.row(align=True)
+               sub.itemL(text="Y:")
+               sub.itemR(con, "from_min_y", text="")
+               sub.itemR(con, "from_max_y", text="")
+               
+               sub = col.row(align=True)
+               sub.itemL(text="Z:")
+               sub.itemR(con, "from_min_z", text="")
+               sub.itemR(con, "from_max_z", text="")
+               
+               split = layout.split()
+               
+               col = split.column()
+               col.itemL(text="Destination:")
+               col.row().itemR(con, "map_to", expand=True)
+
+               sub = col.row(align=True)
+               sub.itemR(con, "map_to_x_from", text="")
+               sub.itemR(con, "to_min_x", text="")
+               sub.itemR(con, "to_max_x", text="")
+               
+               sub = col.row(align=True)
+               sub.itemR(con, "map_to_y_from", text="")
+               sub.itemR(con, "to_min_y", text="")
+               sub.itemR(con, "to_max_y", text="")
+               
+               sub = col.row(align=True)
+               sub.itemR(con, "map_to_z_from", text="")
+               sub.itemR(con, "to_min_z", text="")
+               sub.itemR(con, "to_max_z", text="")
+               
+               self.space_template(layout, con)
+               
+       def shrinkwrap (self, layout, con):
+               self.target_template(layout, con)
+               
+               layout.itemR(con, "distance")
+               layout.itemR(con, "shrinkwrap_type")
+               
+               if con.shrinkwrap_type == "PROJECT":
+                       row = layout.row(align=True)
+                       row.itemR(con, "axis_x")
+                       row.itemR(con, "axis_y")
+                       row.itemR(con, "axis_z")
+               
 class OBJECT_PT_constraints(ConstraintButtonsPanel):
        __idname__ = "OBJECT_PT_constraints"
        __label__ = "Constraints"
        __context__ = "object"
 
        def poll(self, context):
-               ob = context.active_object
-               return (ob != None)
+               return (context.object != None)
                
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                row = layout.row()
@@ -88,12 +531,12 @@ class BONE_PT_constraints(ConstraintButtonsPanel):
        __context__ = "bone"
 
        def poll(self, context):
-               ob = context.active_object
+               ob = context.object
                return (ob and ob.type == "ARMATURE")
                
        def draw(self, context):
-               ob = context.active_object
-               pchan = ob.pose.pose_channels[0]
+               ob = context.object
+               pchan = ob.pose.pose_channels[0] # XXX
                layout = self.layout
 
                #row = layout.row()
index a5074614515880906bbba711d7ce492296b6aa14..6d75146fe5ffb11436e3a30687d9b1dcefb9fbe2 100644 (file)
@@ -7,14 +7,14 @@ class ObjectButtonsPanel(bpy.types.Panel):
        __context__ = "object"
 
        def poll(self, context):
-               return (context.active_object != None)
+               return (context.object != None)
 
 class OBJECT_PT_transform(ObjectButtonsPanel):
        __idname__ = "OBJECT_PT_transform"
        __label__ = "Transform"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                row = layout.row()
@@ -27,7 +27,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel):
        __label__ = "Groups"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                row = layout.row()
@@ -54,7 +54,7 @@ class OBJECT_PT_display(ObjectButtonsPanel):
        __label__ = "Display"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
                        
                row = layout.row()
@@ -74,7 +74,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel):
        __label__ = "Duplication"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
 
                layout.itemR(ob, "dupli_type", expand=True)
@@ -108,7 +108,7 @@ class OBJECT_PT_animation(ObjectButtonsPanel):
        __label__ = "Animation"
 
        def draw(self, context):
-               ob = context.active_object
+               ob = context.object
                layout = self.layout
                
                split = layout.split()
@@ -132,3 +132,4 @@ bpy.types.register(OBJECT_PT_groups)
 bpy.types.register(OBJECT_PT_display)
 bpy.types.register(OBJECT_PT_duplication)
 bpy.types.register(OBJECT_PT_animation)
+
diff --git a/release/ui/buttons_particle.py b/release/ui/buttons_particle.py
new file mode 100644 (file)
index 0000000..737aa1a
--- /dev/null
@@ -0,0 +1,25 @@
+
+import bpy
+
+class ParticleButtonsPanel(bpy.types.Panel):
+       __space_type__ = "BUTTONS_WINDOW"
+       __region_type__ = "WINDOW"
+       __context__ = "particle"
+
+       def poll(self, context):
+               return (context.particle_system != None)
+
+class PARTICLE_PT_particles(ParticleButtonsPanel):
+       __idname__= "PARTICLE_PT_particles"
+       __label__ = "Particles"
+
+       def draw(self, context):
+               layout = self.layout
+
+               psys = context.particle_system
+               part = psys.settings
+
+               layout.itemR(part, "amount")
+
+bpy.types.register(PARTICLE_PT_particles)
+
index 12d218382eca96917087b650a74574486d189c64..efa796df5b029d6d2c711656671ad7b19fe5177e 100644 (file)
@@ -6,17 +6,8 @@ class PhysicButtonsPanel(bpy.types.Panel):
        __region_type__ = "WINDOW"
        __context__ = "physics"
 
-       def cloth_modifier(self, context):
-               ob = context.active_object
-               for md in ob.modifiers:
-                       if md.type == 'CLOTH':
-                               return md
-
-               return None
-       
        def poll(self, context):
-               md = self.cloth_modifier(context)
-               return (md != None)
+               return (context.cloth != None)
                
 class Physic_PT_cloth(PhysicButtonsPanel):
        __idname__ = "Physic_PT_cloth"
@@ -24,7 +15,7 @@ class Physic_PT_cloth(PhysicButtonsPanel):
 
        def draw(self, context):
                layout = self.layout
-               md = self.cloth_modifier(context)
+               md = context.cloth
                cloth = md.settings
                
                split = layout.split()
@@ -43,7 +34,7 @@ class Physic_PT_cloth(PhysicButtonsPanel):
                col.itemR(cloth, "spring_damping", text="Spring")
                col.itemR(cloth, "air_damping", text="Air")
                
-               # Disabled for now#
+               # Disabled for now
                """
                if cloth.mass_vertex_group:
                        layout.itemL(text="Goal:")
@@ -60,15 +51,17 @@ class Physic_PT_cloth_collision(PhysicButtonsPanel):
        
        def draw_header(self, context):
                layout = self.layout
-               md = self.cloth_modifier(context)                       
+               md = context.cloth
                cloth = md.collision_settings
        
                layout.itemR(cloth, "enable_collision", text="")
 
        def draw(self, context):
                layout = self.layout
-               md = self.cloth_modifier(context)               
+               
+               md = context.cloth
                cloth = md.collision_settings
+               layout.active = cloth.enable_collision  
                
                col = layout.column_flow()
                col.itemR(cloth, "collision_quality", slider=True)
@@ -79,6 +72,7 @@ class Physic_PT_cloth_collision(PhysicButtonsPanel):
                layout.itemR(cloth, "enable_self_collision", text="Self Collision")
                
                col = layout.column_flow()
+               col.active = cloth.enable_self_collision
                col.itemR(cloth, "self_collision_quality", slider=True)
                col.itemR(cloth, "self_min_distance", text="MinDistance")
 
@@ -88,15 +82,17 @@ class Physic_PT_cloth_stiffness(PhysicButtonsPanel):
        
        def draw_header(self, context):
                layout = self.layout
-               md = self.cloth_modifier(context)
+               md = context.cloth
                cloth = md.settings
        
                layout.itemR(cloth, "stiffness_scaling", text="")
 
        def draw(self, context):
                layout = self.layout
-               md = self.cloth_modifier(context)
+               
+               md = context.cloth
                cloth = md.settings
+               layout.active = cloth.stiffness_scaling 
                
                split = layout.split()
                
index 1b892a5b2fb3269f520e3ff29335223a6d5e4039..d7f215f2297e4847ed92bb92d8c8d28ddcd59a65 100644 (file)
@@ -23,11 +23,12 @@ class RENDER_PT_shading(RenderButtonsPanel):
                sub.itemR(rd, "render_envmaps", text="Environment Map")
                #       sub.itemR(rd, "render_radiosity", text="Radio")
                
-               sub = split.column()
-               sub.itemR(rd, "render_raytracing", text="Ray Tracing")
-               if (rd.render_raytracing):
-                       sub.itemR(rd, "octree_resolution", text="Octree")
-               sub.itemR(rd, "dither_intensity", text="Dither", slider=True)
+               col = split.column()
+               col.itemR(rd, "render_raytracing", text="Ray Tracing")
+               colsub = col.column()
+               colsub.active = rd.render_raytracing
+               colsub.itemR(rd, "octree_resolution", text="Octree")
+               col.itemR(rd, "dither_intensity", text="Dither", slider=True)
                
 class RENDER_PT_output(RenderButtonsPanel):
        __label__ = "Output"
@@ -42,10 +43,10 @@ class RENDER_PT_output(RenderButtonsPanel):
                
                split = layout.split()
                
-               sub = split.column()
-               sub.itemR(rd, "file_format", text="Format")
+               col = split.column()
+               col.itemR(rd, "file_format", text="Format")
                if rd.file_format in ("AVIJPEG", "JPEG"):
-                       sub.itemR(rd, "quality", slider=True)
+                       col.itemR(rd, "quality", slider=True)
                
                sub = split.column()
                sub.itemR(rd, "color_mode")
@@ -54,17 +55,17 @@ class RENDER_PT_output(RenderButtonsPanel):
                split = layout.split()
                
                sub = split.column()
+               sub.itemR(rd, "file_extensions")
                sub.itemL(text="Distributed Rendering:")
                sub.itemR(rd, "placeholders")
                sub.itemR(rd, "no_overwrite")
                
-               sub = split.column()
-               sub.itemL(text="Settings:")
-               sub.itemR(rd, "file_extensions")
-               sub.itemR(rd, "fields", text="Fields")
-               if rd.fields:
-                       sub.itemR(rd, "fields_still", text="Still")
-                       sub.row().itemR(rd, "field_order", expand=True)
+               col = split.column()
+               col.itemR(rd, "fields", text="Fields")
+               colsub = col.column()
+               colsub.active = rd.fields
+               colsub.itemR(rd, "fields_still", text="Still")
+               colsub.row().itemR(rd, "field_order", expand=True)
 
 class RENDER_PT_antialiasing(RenderButtonsPanel):
        __label__ = "Anti-Aliasing"
@@ -87,13 +88,14 @@ class RENDER_PT_antialiasing(RenderButtonsPanel):
                sub = split.column()
                sub.itemL(text="Samples:")
                sub.row().itemR(rd, "antialiasing_samples", expand=True)
-
-               sub = split.column()
                sub.itemR(rd, "pixel_filter")
-               sub.itemR(rd, "filter_size", text="Size", slider=True)
-               sub.itemR(rd, "save_buffers")
-               if rd.save_buffers:
-                       sub.itemR(rd, "full_sample")
+
+               col = split.column()
+               col.itemR(rd, "filter_size", text="Size", slider=True)
+               col.itemR(rd, "save_buffers")
+               colsub = col.column()
+               colsub.active = rd.save_buffers
+               colsub.itemR(rd, "full_sample")
 
 class RENDER_PT_render(RenderButtonsPanel):
        __label__ = "Render"
@@ -111,17 +113,18 @@ class RENDER_PT_render(RenderButtonsPanel):
                row = layout.row()
                row.itemR(rd, "do_composite")
                row.itemR(rd, "do_sequence")
-               if rd.do_composite:
-                       row = layout.row()
-                       row.itemR(rd, "free_image_textures")
+               rowsub = layout.row()
+               rowsub.active = rd.do_composite
+               rowsub.itemR(rd, "free_image_textures")
 
                split = layout.split()
                
-               sub = split.column(align=True)
-               sub.itemL(text="Threads:")
-               sub.row().itemR(rd, "threads_mode", expand=True)
-               if rd.threads_mode == 'THREADS_FIXED':
-                       sub.itemR(rd, "threads")
+               col = split.column(align=True)
+               col.itemL(text="Threads:")
+               col.row().itemR(rd, "threads_mode", expand=True)
+               colsub = col.column()
+               colsub.active = rd.threads_mode == 'THREADS_FIXED'
+               colsub.itemR(rd, "threads")
                
                sub = split.column(align=True)
                sub.itemL(text="Tiles:")
@@ -157,10 +160,11 @@ class RENDER_PT_dimensions(RenderButtonsPanel):
                sub.itemR(rd, "pixel_aspect_x", text="X")
                sub.itemR(rd, "pixel_aspect_y", text="Y")
                
-               sub = col.column(align=False)
-               sub.itemR(rd, "border", text="Border")
-               if rd.border:
-                       sub.itemR(rd, "crop_to_border")
+               col = col.column(align=False)
+               col.itemR(rd, "border", text="Border")
+               colsub = col.column()
+               colsub.active = rd.border
+               colsub.itemR(rd, "crop_to_border")
 
                col = split.column(align=True)
                col.itemL(text="Frame Range:")
@@ -190,17 +194,18 @@ class RENDER_PT_stamp(RenderButtonsPanel):
 
                split = layout.split()
                
-               sub = split.column()
-               sub.itemR(rd, "stamp_time", text="Time")
-               sub.itemR(rd, "stamp_date", text="Date")
-               sub.itemR(rd, "stamp_frame", text="Frame")
-               sub.itemR(rd, "stamp_camera", text="Scene")
-               sub.itemR(rd, "stamp_marker", text="Marker")
-               sub.itemR(rd, "stamp_filename", text="Filename")
-               sub.itemR(rd, "stamp_sequence_strip", text="Seq. Strip")
-               sub.itemR(rd, "stamp_note", text="Note")
-               if (rd.stamp_note):
-                       sub.itemR(rd, "stamp_note_text", text="")
+               col = split.column()
+               col.itemR(rd, "stamp_time", text="Time")
+               col.itemR(rd, "stamp_date", text="Date")
+               col.itemR(rd, "stamp_frame", text="Frame")
+               col.itemR(rd, "stamp_camera", text="Scene")
+               col.itemR(rd, "stamp_marker", text="Marker")
+               col.itemR(rd, "stamp_filename", text="Filename")
+               col.itemR(rd, "stamp_sequence_strip", text="Seq. Strip")
+               col.itemR(rd, "stamp_note", text="Note")
+               colsub = col.column()
+               colsub.active = rd.stamp_note
+               colsub.itemR(rd, "stamp_note_text", text="")
                
                sub = split.column()
                sub.itemR(rd, "render_stamp")
@@ -214,4 +219,3 @@ bpy.types.register(RENDER_PT_antialiasing)
 bpy.types.register(RENDER_PT_shading)
 bpy.types.register(RENDER_PT_output)
 bpy.types.register(RENDER_PT_stamp)
-
index ccdbda5d54dddeda610ace8dfab840bbf84248dc..7d0ef9371d7563f69bd8c5d46a0438a788bb5d64 100644 (file)
@@ -7,8 +7,7 @@ class TextureButtonsPanel(bpy.types.Panel):
        __context__ = "texture"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture != None)
-               except:return False
+               return (context.texture != None)
 
 class TEXTURE_PT_preview(TextureButtonsPanel):
        __idname__= "TEXTURE_PT_preview"
@@ -17,7 +16,7 @@ class TEXTURE_PT_preview(TextureButtonsPanel):
        def draw(self, context):
                layout = self.layout
 
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                layout.template_preview(tex)
 
 class TEXTURE_PT_texture(TextureButtonsPanel):
@@ -26,21 +25,38 @@ class TEXTURE_PT_texture(TextureButtonsPanel):
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "type")
 
+class TEXTURE_PT_colors(TextureButtonsPanel):
+       __idname__= "TEXTURE_PT_colors"
+       __label__ = "Colors"
+
+       def draw(self, context):
+               layout = self.layout
+               tex = context.texture
+
+               if tex.color_ramp:
+                       layout.template_color_ramp(tex.color_ramp, expand=True)
+               else:
+                       layout.itemR(tex, "rgb_factor")
+
+               row = layout.row()
+               row.itemR(tex, "brightness")
+               row.itemR(tex, "contrast")
+
 class TEXTURE_PT_clouds(TextureButtonsPanel):
        __idname__= "TEXTURE_PT_clouds"
        __label__ = "Clouds"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'CLOUDS')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'CLOUDS')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "stype", expand=True)
                layout.itemL(text="Noise:")
@@ -57,12 +73,12 @@ class TEXTURE_PT_wood(TextureButtonsPanel):
        __label__ = "Wood"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'WOOD')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'WOOD')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "stype", expand=True)
                layout.itemR(tex, "noisebasis2", expand=True)
@@ -80,12 +96,12 @@ class TEXTURE_PT_marble(TextureButtonsPanel):
        __label__ = "Marble"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'MARBLE')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'MARBLE')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "stype", expand=True)
                layout.itemR(tex, "noisebasis2", expand=True)
@@ -104,12 +120,12 @@ class TEXTURE_PT_magic(TextureButtonsPanel):
        __label__ = "Magic"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'MAGIC')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'MAGIC')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                        
                row = layout.row()
                row.itemR(tex, "noise_depth", text="Depth")
@@ -120,12 +136,12 @@ class TEXTURE_PT_blend(TextureButtonsPanel):
        __label__ = "Blend"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'BLEND')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'BLEND')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
 
                layout.itemR(tex, "progression")
                layout.itemR(tex, "flip_axis")
@@ -135,12 +151,12 @@ class TEXTURE_PT_stucci(TextureButtonsPanel):
        __label__ = "Stucci"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'STUCCI')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'STUCCI')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "stype", expand=True)
                layout.itemL(text="Noise:")
@@ -156,12 +172,12 @@ class TEXTURE_PT_image(TextureButtonsPanel):
        __label__ = "Image/Movie"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'IMAGE')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'IMAGE')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                split = layout.split()
                
@@ -183,12 +199,12 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
        __label__ = "Mapping"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'IMAGE')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'IMAGE')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                                
                split = layout.split()
                
@@ -226,12 +242,12 @@ class TEXTURE_PT_plugin(TextureButtonsPanel):
        __label__ = "Plugin"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'PLUGIN')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'PLUGIN')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemL(text="Nothing yet")
                
@@ -240,12 +256,12 @@ class TEXTURE_PT_envmap(TextureButtonsPanel):
        __label__ = "Environment Map"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'ENVIRONMENT_MAP')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'ENVIRONMENT_MAP')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemL(text="Nothing yet")
                
@@ -254,12 +270,12 @@ class TEXTURE_PT_musgrave(TextureButtonsPanel):
        __label__ = "Musgrave"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'MUSGRAVE')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'MUSGRAVE')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
                
                layout.itemR(tex, "musgrave_type")      
                
@@ -289,13 +305,12 @@ class TEXTURE_PT_voronoi(TextureButtonsPanel):
        __label__ = "Voronoi"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'VORONOI')
-               except:return False
-
+               tex = context.texture
+               return (tex and tex.type == 'VORONOI')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
        
                layout.itemR(tex, "distance_metric")
                layout.itemR(tex, "coloring")
@@ -321,12 +336,12 @@ class TEXTURE_PT_distortednoise(TextureButtonsPanel):
        __label__ = "Distorted Noise"
        
        def poll(self, context):
-               try:    return (context.active_object.active_material.active_texture.texture.type == 'DISTORTED_NOISE')
-               except:return False
+               tex = context.texture
+               return (tex and tex.type == 'DISTORTED_NOISE')
 
        def draw(self, context):
                layout = self.layout
-               tex = context.active_object.active_material.active_texture.texture
+               tex = context.texture
 
                layout.itemR(tex, "noise_distortion")
                layout.itemR(tex, "noise_basis", text="Basis")
@@ -342,6 +357,7 @@ class TEXTURE_PT_distortednoise(TextureButtonsPanel):
 
 bpy.types.register(TEXTURE_PT_preview)
 bpy.types.register(TEXTURE_PT_texture)
+bpy.types.register(TEXTURE_PT_colors)
 bpy.types.register(TEXTURE_PT_clouds)
 bpy.types.register(TEXTURE_PT_wood)
 bpy.types.register(TEXTURE_PT_marble)
index c38e791d92adfcde3b2444795027c9c621c25d77..79826e04dfce4d2539b0592f0b372acbedb14446 100644 (file)
@@ -7,7 +7,7 @@ class WorldButtonsPanel(bpy.types.Panel):
        __context__ = "world"
 
        def poll(self, context):
-               return (context.scene.world != None)
+               return (context.world != None)
 
 class WORLD_PT_preview(WorldButtonsPanel):
        __label__ = "Preview"
@@ -15,14 +15,14 @@ class WORLD_PT_preview(WorldButtonsPanel):
        def draw(self, context):
                layout = self.layout
 
-               world = context.scene.world
+               world = context.world
                layout.template_preview(world)
        
 class WORLD_PT_world(WorldButtonsPanel):
        __label__ = "World"
 
        def draw(self, context):
-               world = context.scene.world
+               world = context.world
                layout = self.layout
                
                row = layout.row()
@@ -32,14 +32,16 @@ class WORLD_PT_world(WorldButtonsPanel):
                
                row = layout.row()
                row.column().itemR(world, "horizon_color")
-               row.column().itemR(world, "zenith_color")
+               col = row.column()
+               col.itemR(world, "zenith_color")
+               col.active = world.blend_sky
                row.column().itemR(world, "ambient_color")
                
 class WORLD_PT_color_correction(WorldButtonsPanel):
        __label__ = "Color Correction"
 
        def draw(self, context):
-               world = context.scene.world
+               world = context.world
                layout = self.layout
 
                row = layout.row()
@@ -50,13 +52,13 @@ class WORLD_PT_mist(WorldButtonsPanel):
        __label__ = "Mist"
 
        def draw_header(self, context):
-               world = context.scene.world
+               world = context.world
 
                layout = self.layout
                layout.itemR(world.mist, "enabled", text="")
 
        def draw(self, context):
-               world = context.scene.world
+               world = context.world
                layout = self.layout
                layout.active = world.mist.enabled
 
@@ -73,13 +75,13 @@ class WORLD_PT_stars(WorldButtonsPanel):
        __label__ = "Stars"
 
        def draw_header(self, context):
-               world = context.scene.world
+               world = context.world
 
                layout = self.layout
                layout.itemR(world.stars, "enabled", text="")
 
        def draw(self, context):
-               world = context.scene.world
+               world = context.world
                layout = self.layout
                layout.active = world.stars.enabled
 
@@ -93,13 +95,13 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
        __label__ = "Ambient Occlusion"
 
        def draw_header(self, context):
-               world = context.scene.world
+               world = context.world
 
                layout = self.layout
                layout.itemR(world.ambient_occlusion, "enabled", text="")
 
        def draw(self, context):
-               world = context.scene.world
+               world = context.world
                ao = world.ambient_occlusion
                layout = self.layout
                layout.active = ao.enabled
@@ -107,9 +109,15 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
                layout.itemR(ao, "gather_method", expand=True)
                
                if ao.gather_method == 'RAYTRACE':
-                       row = layout.row()
-                       row.itemR(ao, "samples")
-                       row.itemR(ao, "distance")
+                       split = layout.split()
+                       col = split.column()
+                       col.itemR(ao, "samples")
+                       col.itemR(ao, "distance")
+                       col = split.column()
+                       col.itemR(ao, "falloff")
+                       colsub = col.column()
+                       colsub.active = ao.falloff
+                       colsub.itemR(ao, "strength")
                        
                        layout.itemR(ao, "sample_method")
                        if ao.sample_method == 'ADAPTIVE_QMC':
@@ -122,16 +130,18 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
                                row.itemR(ao, "bias")
                                                
                if ao.gather_method == 'APPROXIMATE':
-                       col = layout.column_flow()
+                       split = layout.split()
+                       col = split.column()
                        col.itemR(ao, "passes")
                        col.itemR(ao, "error_tolerance", text="Error")
                        col.itemR(ao, "correction")
+                       col = split.column() 
+                       col.itemR(ao, "falloff")
+                       colsub = col.column()
+                       colsub.active = ao.falloff
+                       colsub.itemR(ao, "strength")
                        col.itemR(ao, "pixel_cache")
 
-               row = layout.row()
-               row.itemR(ao, "falloff")        
-               row.itemR(ao, "strength")
-               
                col = layout.column()
                col.row().itemR(ao, "blend_mode", expand=True)
                col.row().itemR(ao, "color", expand=True)
@@ -143,4 +153,3 @@ bpy.types.register(WORLD_PT_ambient_occlusion)
 bpy.types.register(WORLD_PT_mist)
 bpy.types.register(WORLD_PT_stars)
 bpy.types.register(WORLD_PT_color_correction)
-
index d73ea38cf044834a9da6ff64f2b1a9e4afaee4a9..f039eb3f7c3d5f6a579142a3cdc2a70d3be7b386 100644 (file)
@@ -7,6 +7,7 @@ class OUTLINER_HT_header(bpy.types.Header):
 
        def draw(self, context):
                so = context.space_data
+               sce = context.scene
                layout = self.layout
 
                layout.template_header(context)
@@ -15,8 +16,24 @@ class OUTLINER_HT_header(bpy.types.Header):
                        row = layout.row(align=True)
                        row.itemM(context, "OUTLINER_MT_view")
                        
-               row = layout.row(align=True)
+               row = layout.row()
                row.itemR(so, "display_mode", text="")
+               
+               if so.display_mode == 'DATABLOCKS':
+                       row = layout.row(align=True)
+                       row.itemO("ANIM_OT_keyingset_add_new", text="", icon=31)
+                       # row.itemR(sce, "active_keyingset", text="KS: ")
+                       # ks = sce.keyingsets[sce.active_keyingset - 1]
+                       # row.itemR(ks, "name", text="")
+                       ## row.itemR(sce, "keyingsets")
+                       
+                       row = layout.row()
+                       row.itemO("OUTLINER_OT_keyingset_add_selected", text="", icon=31)
+                       row.itemO("OUTLINER_OT_keyingset_remove_selected", text="", icon=32)
+                       
+                       row.itemO("ANIM_OT_insert_keyframe", text="", icon=514)
+                       row.itemO("ANIM_OT_delete_keyframe", text="", icon=513)
+               
 
 class OUTLINER_MT_view(bpy.types.Menu):
        __space_type__ = "OUTLINER"
@@ -26,8 +43,8 @@ class OUTLINER_MT_view(bpy.types.Menu):
                layout = self.layout
                so = context.space_data
 
-               layout.column()
-               row.itemR(so, "show_restriction_columns")
+               col = layout.column()
+               col.itemR(so, "show_restriction_columns")
                #layout.itemO("TEXT_OT_new")
 
 bpy.types.register(OUTLINER_HT_header)
diff --git a/release/windows/installer/00.blender.nsi b/release/windows/installer/00.blender.nsi
deleted file mode 100644 (file)
index 8666ed8..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-;
-; $Id$
-;
-; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)
-;
-
-!include "MUI.nsh"
-
-Name "Blender VERSION" 
-
-!define MUI_ABORTWARNING
-
-!define MUI_WELCOMEPAGE_TEXT  "This wizard will guide you through the installation of Blender.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\nNote to Win2k/XP users: You may require administrator privileges to install Blender successfully."
-!define MUI_WELCOMEFINISHPAGE_BITMAP "01.installer.bmp"
-!define MUI_HEADERIMAGE
-!define MUI_HEADERIMAGE_BITMAP  "00.header.bmp"
-!define MUI_COMPONENTSPAGE_SMALLDESC
-!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"
-!define MUI_CHECKBITMAP "00.checked.bmp"
-
-!insertmacro MUI_PAGE_WELCOME
-!insertmacro MUI_PAGE_LICENSE "DISTDIR\Copyright.txt"
-!insertmacro MUI_PAGE_COMPONENTS
-    
-!insertmacro MUI_PAGE_DIRECTORY
-Page custom DataLocation
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_PAGE_FINISH
-  
-!insertmacro MUI_UNPAGE_WELCOME
-!insertmacro MUI_UNPAGE_CONFIRM
-!insertmacro MUI_UNPAGE_INSTFILES
-!insertmacro MUI_UNPAGE_FINISH
-
-
-Icon "00.installer.ico"
-UninstallIcon "00.installer.ico"
-
-;--------------------------------
-;Languages
-  !insertmacro MUI_LANGUAGE "English"
-    
-;--------------------------------
-;Language Strings
-
-  ;Description
-  LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."
-  LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"
-  LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."
-  LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."
-  LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"
-;--------------------------------
-;Data
-
-Caption "Blender VERSION Installer"
-OutFile "DISTDIR\..\VERSION\blender-VERSION-windows.exe"
-
-InstallDir "$PROGRAMFILES\Blender Foundation\Blender"
-
-BrandingText "http://www.blender.org/bf"
-ComponentText "This will install Blender VERSION on your computer."
-
-DirText "Use the field below to specify the folder where you want Blender to be copied to. To specify a different folder, type a new name or use the Browse button to select an existing folder."
-
-; GetWindowsVersion
-;
-; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
-; Updated by Joost Verburg
-;
-; Returns on top of stack
-;
-; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
-; or
-; '' (Unknown Windows Version)
-;
-; Usage:
-;   Call GetWindowsVersion
-;   Pop $R0
-;   ; at this point $R0 is "NT 4.0" or whatnot
-
-Function GetWindowsVersion
-
-  Push $R0
-  Push $R1
-
-  ReadRegStr $R0 HKLM \
-  "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-
-  IfErrors 0 lbl_winnt
-   
-  ; we are not NT
-  ReadRegStr $R0 HKLM \
-  "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
-  StrCpy $R1 $R0 1
-  StrCmp $R1 '4' 0 lbl_error
-  StrCpy $R1 $R0 3
-  StrCmp $R1 '4.0' lbl_win32_95
-  StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
-  lbl_win32_95:
-    StrCpy $R0 '95'
-  Goto lbl_done
-  lbl_win32_98:
-    StrCpy $R0 '98'
-  Goto lbl_done
-  lbl_win32_ME:
-    StrCpy $R0 'ME'
-  Goto lbl_done
-  lbl_winnt:
-
-  StrCpy $R1 $R0 1
-  StrCmp $R1 '3' lbl_winnt_x
-  StrCmp $R1 '4' lbl_winnt_x
-  StrCpy $R1 $R0 3
-  StrCmp $R1 '5.0' lbl_winnt_2000
-  StrCmp $R1 '5.1' lbl_winnt_XP
-  StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
-  lbl_winnt_x:
-    StrCpy $R0 "NT $R0" 6
-  Goto lbl_done
-  lbl_winnt_2000:
-    Strcpy $R0 '2000'
-  Goto lbl_done
-  lbl_winnt_XP:
-    Strcpy $R0 'XP'
-  Goto lbl_done
-  lbl_winnt_2003:
-    Strcpy $R0 '2003'
-  Goto lbl_done
-  lbl_error:
-    Strcpy $R0 ''
-  lbl_done:
-  Pop $R1
-  Exch $R0
-
-FunctionEnd
-
-Var BLENDERHOME
-Var winversion
-
-Function SetWinXPPath
-  StrCpy $BLENDERHOME "$PROFILE\Application Data\Blender Foundation\Blender"
-FunctionEnd
-
-Function SetWin9xPath
-  StrCpy $BLENDERHOME $INSTDIR
-FunctionEnd
-
-Function .onInit
-  Call GetWindowsVersion
-  Pop $R0
-  Strcpy $winversion $R0
-  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "data.ini"
-FunctionEnd
-
-Var HWND
-Var DLGITEM
-Var is2KXP
-
-Function DataLocation
-  !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" ""
-  
-  ; Set default choice
-  !insertmacro MUI_INSTALLOPTIONS_WRITE "data.ini" "Field 3" "State" 1
-  
-  StrCpy $R1 $winversion 2
-  StrCmp $R1 "NT" do_win2kxp
-  StrCmp $winversion "2000" do_win2kxp
-  StrCmp $winversion "XP" do_win2kxp
-  StrCmp $winversion "2003" do_win2kxp
-  
-  ;else...
-  Strcpy $is2KXP "false"
-
-  Goto continue
-
-  do_win2kXP:
-    Strcpy $is2KXP "true"
-    
-  continue: 
-  
-  !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "data.ini"
-  Pop $HWND
-  
-  Strcmp $is2KXP "true" do_dlg
-  
-  ; Disable App Data option on Win9x
-  
-  GetDlgItem $DLGITEM $HWND 1201
-  EnableWindow $DLGITEM 0  
-  
-  do_dlg:
-  
-    !insertmacro MUI_INSTALLOPTIONS_SHOW
-    !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 2" "State" ; App Dir
-    Strcmp $R0 1 do_app_data
-    !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 3" "State" ; Inst Dir
-    Strcmp $R0 1 do_inst_path
-    !insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 4" "State" ; Home Dir
-    Strcmp $R0 1 do_home_path
-  
-  Goto end
-  
-  do_app_data:
-    Call SetWinXPPath
-    Goto end
-  do_home_path:
-    ReadEnvStr $BLENDERHOME "HOME"
-    Goto end
-  do_inst_path:
-    Call SetWin9xPath
-  end:
-  
-FunctionEnd
-
-Section "Blender-VERSION (required)" SecCopyUI
-  SectionIn RO
-    
-; Sets $BLENDERHOME to suit Windows version...
-
-  ; Set output path to the installation directory.
-  SetOutPath $INSTDIR
-  ; Put file there
-  File DISTDIR\blender.exe
-  File DISTDIR\blenderplayer.exe
-  File DISTDIR\python23.dll
-  File DISTDIR\python23.zip
-  File DISTDIR\sdl.dll
-  File DISTDIR\gnu_gettext.dll
-  File DISTDIR\Copyright.txt
-  File DISTDIR\Blender.html
-  File DISTDIR\python-license.txt
-  File DISTDIR\Release_SHORTVERS.txt
-  File DISTDIR\GPL-license.txt
-  File DISTDIR\Help.url
-  File DISTDIR\zlib.pyd
-     
-  SetOutPath $BLENDERHOME\.blender
-  File DISTDIR\.blender\.bfont.ttf
-  
-  SetOutPath $BLENDERHOME\.blender\scripts
-  File DISTDIR\.blender\scripts\ac3d_export.py
-  File DISTDIR\.blender\scripts\ac3d_import.py
-  File DISTDIR\.blender\scripts\Apply_def.py
-  File DISTDIR\.blender\scripts\Axiscopy.py
-  File DISTDIR\.blender\scripts\batch_name_edit.py
-  File DISTDIR\.blender\scripts\bevel_center.py
-  File DISTDIR\.blender\scripts\blender2cal3d.py
-  File DISTDIR\.blender\scripts\bvh_export.py
-  File DISTDIR\.blender\scripts\bvh_import.py
-  File DISTDIR\.blender\scripts\clean_mesh.py
-  File DISTDIR\.blender\scripts\config.py
-  File DISTDIR\.blender\scripts\DirectX8Exporter.py
-  File DISTDIR\.blender\scripts\DirectXExporter.py
-  File DISTDIR\.blender\scripts\disp_paint.py
-  File DISTDIR\.blender\scripts\doc_browser.py
-  File DISTDIR\.blender\scripts\fixfromarmature.py
-  File DISTDIR\.blender\scripts\help_browser.py
-  File DISTDIR\.blender\scripts\help_getting_started.py
-  File DISTDIR\.blender\scripts\help_manual.py
-  File DISTDIR\.blender\scripts\help_py_reference.py
-  File DISTDIR\.blender\scripts\help_release_notes.py
-  File DISTDIR\.blender\scripts\help_tutorials.py
-  File DISTDIR\.blender\scripts\help_web_blender.py
-  File DISTDIR\.blender\scripts\help_web_devcomm.py
-  File DISTDIR\.blender\scripts\help_web_eshop.py
-  File DISTDIR\.blender\scripts\help_web_usercomm.py
-  File DISTDIR\.blender\scripts\hotkeys.py
-  File DISTDIR\.blender\scripts\kloputils.py
-  File DISTDIR\.blender\scripts\knife.py
-  File DISTDIR\.blender\scripts\lightwave_export.py
-  File DISTDIR\.blender\scripts\lightwave_import.py
-  File DISTDIR\.blender\scripts\nendo_export.py
-  File DISTDIR\.blender\scripts\nendo_import.py
-  File DISTDIR\.blender\scripts\obdatacopier.py
-  File DISTDIR\.blender\scripts\obj_export.py
-  File DISTDIR\.blender\scripts\obj_import.py
-  File DISTDIR\.blender\scripts\off_export.py
-  File DISTDIR\.blender\scripts\off_import.py
-  File DISTDIR\.blender\scripts\paths_import.py
-  File DISTDIR\.blender\scripts\radiosity_export.py
-  File DISTDIR\.blender\scripts\radiosity_import.py
-  File DISTDIR\.blender\scripts\raw_export.py
-  File DISTDIR\.blender\scripts\raw_import.py
-  File DISTDIR\.blender\scripts\renameobjectbyblock.py
-  File DISTDIR\.blender\scripts\rvk1_torvk2.py
-  File DISTDIR\.blender\scripts\save_theme.py
-  File DISTDIR\.blender\scripts\sel_same.py
-  File DISTDIR\.blender\scripts\skin.py
-  File DISTDIR\.blender\scripts\slp_import.py
-  File DISTDIR\.blender\scripts\sysinfo.py
-  File DISTDIR\.blender\scripts\tex2uvbaker.py
-  File DISTDIR\.blender\scripts\truespace_export.py
-  File DISTDIR\.blender\scripts\truespace_import.py
-  File DISTDIR\.blender\scripts\unweld.py
-  File DISTDIR\.blender\scripts\uv_export.py
-  File DISTDIR\.blender\scripts\UVpaint05.py
-  File DISTDIR\.blender\scripts\videoscape_export.py
-  File DISTDIR\.blender\scripts\vrml97_export.py
-  File DISTDIR\.blender\scripts\wings_export.py
-  File DISTDIR\.blender\scripts\wings_import.py
-  File DISTDIR\.blender\scripts\wrl2export.py
-  SetOutPath $BLENDERHOME\.blender\scripts\bpymodules
-  File DISTDIR\.blender\scripts\bpymodules\ai2obj.py
-  File DISTDIR\.blender\scripts\bpymodules\BPyBlender.py
-  File DISTDIR\.blender\scripts\bpymodules\BPyRegistry.py
-  File DISTDIR\.blender\scripts\bpymodules\eps2obj.py
-  File DISTDIR\.blender\scripts\bpymodules\gimp2obj.py
-  File DISTDIR\.blender\scripts\bpymodules\meshtools.py
-  File DISTDIR\.blender\scripts\bpymodules\svg2obj.py
-  SetOutPath $BLENDERHOME\.blender\scripts\bpydata
-  File DISTDIR\.blender\scripts\bpydata\readme.txt
-  File DISTDIR\.blender\scripts\bpydata\KUlang.txt
-  SetOutPath $BLENDERHOME\.blender\scripts\bpydata\config
-  File DISTDIR\.blender\scripts\bpydata\config\readme.txt
-  
-  ; Additional Languages files
-  SetOutPath $BLENDERHOME\.blender
-  File DISTDIR\.blender\.Blanguages
-  SetOutPath $BLENDERHOME\.blender\locale\ca\LC_MESSAGES
-  File DISTDIR\.blender\locale\ca\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\cs\LC_MESSAGES
-  File DISTDIR\.blender\locale\cs\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\de\LC_MESSAGES
-  File DISTDIR\.blender\locale\de\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\fi\LC_MESSAGES
-  File DISTDIR\.blender\locale\fi\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\es\LC_MESSAGES
-  File DISTDIR\.blender\locale\es\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\fr\LC_MESSAGES
-  File DISTDIR\.blender\locale\fr\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\it\LC_MESSAGES
-  File DISTDIR\.blender\locale\it\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\ja\LC_MESSAGES
-  File DISTDIR\.blender\locale\ja\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\nl\LC_MESSAGES
-  File DISTDIR\.blender\locale\nl\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\sv\LC_MESSAGES
-  File DISTDIR\.blender\locale\sv\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\zh_cn\LC_MESSAGES
-  File DISTDIR\.blender\locale\zh_cn\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\pt_br\LC_MESSAGES
-  File DISTDIR\.blender\locale\pt_br\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\hr_HR\LC_MESSAGES
-  File DISTDIR\.blender\locale\hr_HR\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\ru\LC_MESSAGES
-  File DISTDIR\.blender\locale\ru\LC_MESSAGES\blender.mo
-  SetOutPath $BLENDERHOME\.blender\locale\pl\LC_MESSAGES
-  File DISTDIR\.blender\locale\pl\LC_MESSAGES\blender.mo
-  
-  SetOutPath $INSTDIR
-  ; Write the installation path into the registry
-  WriteRegStr HKLM SOFTWARE\BlenderFoundation "Install_Dir" "$INSTDIR"
-  ; Write the uninstall keys for Windows
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'
-  WriteUninstaller "uninstall.exe"
-SectionEnd
-
-Section "Add Start Menu shortcuts" Section2
-  SetOutPath $INSTDIR
-  CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"
-SectionEnd
-
-Section "Add Desktop Blender-VERSION shortcut" Section3
-  SetOutPath $INSTDIR
-  CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0
-SectionEnd
-
-Section "Open .blend files with Blender-VERSION" Section4
-  SetOutPath $INSTDIR
-  ;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"
-  ;do it the manual way! ;)
-  
-  WriteRegStr HKCR ".blend" "" "blendfile"
-  WriteRegStr HKCR "blendfile" "" "Blender .blend File"
-  WriteRegStr HKCR "blendfile\shell" "" "open"
-  WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1
-  WriteRegStr HKCR "blendfile\shell\open\command" "" \
-    '"$INSTDIR\blender.exe" "%1"'
-  
-SectionEnd
-
-UninstallText "This will uninstall Blender VERSION. Hit next to continue."
-
-Section "Uninstall"
-  ; remove registry keys
-  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"
-  DeleteRegKey HKLM SOFTWARE\BlenderFoundation
-  ; remove files
-  Delete $INSTDIR\blender.exe
-  Delete $INSTDIR\blenderplayer.exe
-  Delete $INSTDIR\python23.dll
-  Delete $INSTDIR\python23.zip
-  Delete $INSTDIR\sdl.dll
-  Delete $INSTDIR\gnu_gettext.dll
-  Delete $INSTDIR\Copyright.txt
-  Delete $INSTDIR\Blender.html
-  Delete $INSTDIR\GPL-license.txt
-  Delete $INSTDIR\python-license.txt
-  Delete $INSTDIR\Release_SHORTVERS.txt
-  Delete $INSTDIR\Help.url
-  Delete $INSTDIR\uninstall.exe
-  Delete $INSTDIR\zlib.pyd
-  Delete $INSTDIR\.blender\.bfont.ttf
-  Delete $INSTDIR\.blender\.Blanguages
-  ; remove shortcuts, if any.
-  Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"
-  Delete "$DESKTOP\Blender.lnk"
-  ; remove directories used.
-  RMDir /r $INSTDIR\.blender\locale 
-  RMDir /r $INSTDIR\.blender\scripts
-  RMDir /r $INSTDIR\.blender\scripts\bpydata
-  RMDir /r $INSTDIR\.blender\scripts\bpydata\config
-  RMDir /r $INSTDIR\.blender\scripts\bpymodules
-  RMDir $INSTDIR\.blender
-  RMDir "$SMPROGRAMS\Blender Foundation\Blender"
-  RMDir "$SMPROGRAMS\Blender Foundation"
-  RMDir "$INSTDIR"
-  RMDir "$INSTDIR\.."
-SectionEnd
-
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
-  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
diff --git a/release/windows/installer/00.checked.bmp b/release/windows/installer/00.checked.bmp
deleted file mode 100644 (file)
index 6c2e98d..0000000
Binary files a/release/windows/installer/00.checked.bmp and /dev/null differ
diff --git a/release/windows/installer/00.header.bmp b/release/windows/installer/00.header.bmp
deleted file mode 100644 (file)
index b631ba7..0000000
Binary files a/release/windows/installer/00.header.bmp and /dev/null differ
diff --git a/release/windows/installer/00.installer.adx b/release/windows/installer/00.installer.adx
deleted file mode 100644 (file)
index af1b432..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-[ADX]
-ADXVersion=1.00.00
-<=>2240
-CCM^8603:<;8=2
-CCM^8603:>;8=6
-CCM^8603:?;8=3
-CCM^8603:?;9=2
-CCM^8603:8;8=2
-CCM^8603:8;9=2
-CCM^8603::;8=2
-CCM^8603::;9=2
-CCM^8603::;:=2
-CCM^8603:;;8=2
-CCM^8603:4;:=2
-CCM^8603:4;<=2
-CCM^8603:5;8=$HM
-CCM^8603:5;9=$Dgokcl
-CCM^8603:5;:=$Naogte
-CCM^8603:5;;=$^cr
-CCM^8603:5;<=$Ii
-CCM^8603:5;\13=$Etn\7fue
-CCM^8603:5;>=[bu!\i %K`g
-CCM^8603:5;?=$Ucuz\7f
-CCM^8603:5;0=Qbjdkr %K`g
-CCM^8603:5;1=G!~uzgcw*E\7fmf&x'
-CCM^8603:5:8=$Ciom
-CCM^8603:5:9=Lbrvgtk-$"
-CCM^8603:5::=$Fdnzr
-CCM^8603;<;8=2
-CCM^8604:<;8=3
-CCM^8604:<;9=@kcolcr#',Ymz{n}v
-CCM^8604:<;:=Rkc`{c pzihamw+zjb&qirh#~c+\7fcghf"nrdeu tc`g(ik+kzst`kreg$,+Qd{+cc~&`duo#z~n{x.\7ffg'Dsgqsf*n~|\7fae.vh&rmje`~,jf+ksgqsooo&pb~d%(+^jzjt&l}ut#cbhd~jn.c'bsape#fi\7f|n|+ap'dd(g VDO+fjcn 
-CCM^8604:<:9=67?7
-CCM^8604:\13;8=3
-CCM^8604:\13;9=@kcolcr#',Ymz{n}v
-CCM^8604:\13;:=Voc!nolf*eelbmjzgc&cmjot*mgznoow"b~h{rs-*,[zn}x. ^cr*&ie*ud}+yj`v'rn(ivfx{ya\7fk+zjb&gaje-*,[zn}x. Ii#(of#sc~(oae)v'q`fr we,d~n|||ksc!|ne#legm%.+^pbur($Cbdond).bh"~it(qam~,\7fg+}\7far'cy|ta`~eeo+.bzgju/
-CCM^8604:\13:9=4625
-CCM^8604:>;8=3
-CCM^8604:>;9=@kcolcr#',Ymz{n}v
-CCM^8604:>;:=Voc!nolf*eelbmjzgc&cmjot*mgznoow"b~h{rs#kbo(b}+\gfb,Ghlz$,+Xykx}"%_d{$ jl,rg~.|ols&ug&ouo~|zbzn.voc!nolf$,+Xykx}"%Hn*&ie*ud}+jd`%s&viht#~c+g}kyypnrd(rhf*jbdn +.Rucr{&"@kbhmg,+gd'\7fn}&wbdx+|d.xzmw&dprrbixbfl.+gvbkr&
-CCM^8604:>:9=4625
-CCM^8604:?;8=3
-CCM^8604:?;9=@kcolcr#',Ymz{n}v
-CCM^8604:?;:=Voc!nolf*eelbmjzgc&cmjot*dj{+oe.gftmacr#|iy{bae.lrkcmt lx,oi\7fk+zjfh!|ne#ebn(jbykcc\7f!gh zeyy(xwxzgj(!(Vrfy\7f+*Rkx,"n`!qiu#}me|+zd.pbvmiee#~dn(mggk,'&Qzcsp*.Eg).bh"~it(bom-x+\7fj`\7f.vh&smvlbii+|ck+hkkc/(&Pqo\7fx()Mj`abj#(of#sc~(|oez"si!{ros*is|yohzkia!(otfg\7f%
-CCM^8604:?:9=4625
-CCM^8604:8;8=3
-CCM^8604:8;9=@kcolcr#',Ymz{n}v
-CCM^8604:8;:=Rkc`{c fdxnz+zck"wgr{qoqn$x!+`nkfbb!|i frxyihz+zjb&h|cmp$,+Xykx}"%IJ*&tl*odf\7fge{g'is($Cbdond).\7fa"trnx&e{~~jk\7fgei"nrdeu.
-CCM^8604:8:9=7641
-CCM^8604:9;8=3
-CCM^8604:9;9=@kcolcr#',Np\7f|jmvnio(Vrlm~n{x
-CCM^8604:9;:=Voc!{raw\7f\7f+jnbdy"tnn\7fu tbm\7f({kymgir`oc ll,\7f`n.bzgju!`gs#hinf+kszpfeumb.
-CCM^8604:9:9=15170
-CCM^8604::;8=3
-CCM^8604::;9=@kcolcr#',Np\7f|jmvnio(Vrlm~n{x
-CCM^8604::;:=Voc!{raw\7f\7f+jnbdy"tnn\7fu tbm\7f({kymgir`oc ll,\7f`n.bzgju!`gs#hinf+kszpfeumb.#*\ymx}+,Afhbmj"#~c+{\7fa{.g\7frsietjdk+a\7fkf},
-CCM^8604:::9=15170
-CCM^8604:;;8=3
-CCM^8604:;;9=@kcolcr#',Nzyay
-CCM^8604:;;:=Voc!xgtk*eelbmjzgc&cmjot*od}gj+`ms&cm&cqom\7fmo.d|"cid{&nl~,jdykjj{'cyaut-*,_zr.x~gdogqond*m+lbhmkpbhu(vawb"
-CCM^8604:;:9=4625
-CCM^8604:4;8=3
-CCM^8604:4;9=@kcolcr#',Nzyay
-CCM^8604:4;:=Voc!nolf*eelbmjzgc&cmjot*od}gj+`ms&cm&ouo~|zbz\7fkl)
-CCM^8604:4:9=4625
-CCM^8604:5;8=3
-CCM^8604:5;9=@kcolcr#',Nzyay
-CCM^8604:5;:=Voc!nolf*eelbmjzgc&cmjot*ex(j.Ykcc+Nfjy#legm+oej"ditdb mex+jn.dxguqsartfd"
-CCM^8604:5:9=4625
-CCM^8604;<;8=3
-CCM^8604;<;9=@kcolcr#',Nzyay
-CCM^8604;<;:=Voc!xgsp}cyl+wd{"tvdkofjoh+\7fj}+gldiszccw$,+Xykx}"%E`feeo(,\7fg+}\7far'cy|ta`~eeo+g\7fkot(!(Vrfy\7f+*Bieapb$!|i pae{(dxn|"snd(vapy{dzo#{|mscb|cd#cxne%
-CCM^8604;<:9=2
-CCM^8604;\13;8=3
-CCM^8604;\13;9=@kcolcr#',Nzyay
-CCM^8604;\13;:=Mic!gt ne~n(dh+zjb&qzigqkax(\7ffjz"pcsm&svz|d{n.\7fa"uso(eovfh+fdz+lg'`n}hd-*,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^8604;\13:9=2
-CCM^8604;>;8=3
-CCM^8604;>;9=@kcolcr#',Nzyay
-CCM^8604;>;:=Onurahg#imiaek\7f.dnjd u)-
-CCM^8604;>:9=2
-CCM^8604;?;8=3
-CCM^8604;?;9=@kcolcr#',Nzyay
-CCM^8604;?;:=Voc!ksswea+znib}vu\7f!ahflxaj|bae.dnjd(rhb~,|ix.x{rwirmb we,im+cn|ebb!\7fotk*xcm+}r}vbk!zcgjyxyq+md{nc&ogr ao,mg~`o "'Vmmgsf*odf\7fohz"~itz&sllx|iyk+~phphlcr#lcy(ckg~,
-CCM^8604;?:9=2
-CCM^8604;8;8=3
-CCM^8604;8;9=@kcolcr#',Nzyay
-CCM^8604;8;:=Voc!aren*eelbmjzgc&hf&tko,manbo.`bjn\7f&cl\7f`o(ea\7f.`b&smaip~iymo +.Rkc`{c `eb\7fihz+wmrt!{ifw}mym+~yatnbdz&flx,cmg~%
-CCM^8604;8:9=4625
-CCM^8604;9;8=3
-CCM^8604;9;9=@kcolcr#',Nzyay
-CCM^8604;9;:=Voc!mhd#ej+|ck+]gk`,M~tqko\7faei+tkw&gaje#}mx(ykjmjbb!jcflxi+igb+ad'rim&iwoax(ha~bf'dd(vrlziydr.nvvugb|cd-*,_`b}+]gk`,M~tqko\7faei+tkw&gaje#gmr(ik+jcjgfmb.#*\gmj}n.mer`ah b*jymxf+mmw\7f!ihd#~~r(jijgl)
-CCM^8604;9:9=2
-CCM^8604;:;8=3
-CCM^8604;:;9=@kcolcr#',Nzyay
-CCM^8604;:;:=Voc!m~tqko\7fad`+~phed{u gch+fdz+mmjvmmre#yyhkn}xhwkjx&& Wbex(for.jfpd(defd,hi~}nj"e\7f!ih lziyi\7fay.Afhbmj lx,d|cky.gutnz( #Z`nixk+mmir`kr zeyy(xamzuftd(vrl|eomy.map'nddv.
-CCM^8604;::9=2
-CCM^8604;;;8=3
-CCM^8604;;;9=@kcolcr#',Nzyay
-CCM^8604;;;:=[hss(uyp~if(oan}"iiu(nauo,nfd{lf"fp`ajaafi+encd|{'rn(uu`iix{m{gb{'cy|ta`~,\7f`n.bzgju!nton*xcax.Xkna+Dprrbixbfl.qgr'`hdc.#*\gmj}n.ahhuiet#sc~z+}dhvpgsm&pqezbln|+hmu&imjp-
-CCM^8604;;:9=2
-CCM^8604;4;8=0
-CCM^8604;4;9=@kcolcr#',Nzyay
-CCM^8604;4;:=Voc!m~tqko\7fad`+~phed{u tk\7f+kj`hknkce(deee~n(jbg.ma&u`c j~if{+yn|g'cy|ta`~io&+.Raw'k`q&nfoh+|d.y{l'rim&e{~~jk\7fgd`"wtnkcsp*mlib`%
-CCM^8604;4:9=2
-CCM^8604;5;8=3
-CCM^8604;5;9=@kcolcr#',Nzyay
-CCM^8604;5;:=Voc!nolf*eelbmjzgc&cmjot*od}gj+`ms&cm&e{~~jk\7fko "'Ou(kaz*mgznoow"ec!ah vyi+jr.\7ffg'ux{ren*cy(gahegc&cq&amexcmy.j~rkobirild"+A\7f.|gnk&cm&shc|{mo 
-CCM^8604;5:9=4625
-CCM^86048<;8=3
-CCM^86048<;9=@kcolcr#',Nzyay
-CCM^86048<;:=Ci&dztoq*chk~|ykf'btzond*xcm+kszpfeuain#z~dkn}x "'Rim&aqidb~n.mgnb.r!&mbs,im+jjcc`ce&& Sfij{n.dlvfoo(g exix`+md~{'gol&tqs,jojge 
-CCM^86048<:9=2
-CCM^86048\13;8=3
-CCM^86048\13;9=@kcolcr#',Nzyay
-CCM^86048\13;:=Uoomm&e{~~jk\7fgei"nrdeu b*hj|j.n|pht!`gs#eoh}y|nj,'Riau Po`m%Nv\7f|cdrhfa yc|+nbbn.of\7f!jc gkajonj%."Wjdiue#en\7fib`+o"atd{n `e|r(j`o.vu\7f!iaajd"
-CCM^86048\13:9=4625
-CCM^86048>;8=3
-CCM^86048>;9=@kcolcr#',Nzyay
-CCM^86048>;:=Uoomm&e{~~jk\7fgei"nrdeu wbiym+yj}l r!mhovmd+zdaf.mi&u`c go\7f\7faeo\7fgmi&ezovf$,+Qd{+cc~&omcd#~c+zncdxg'unec ec`n{+lnhmuc!qiu#ime(nv\7f|cdr!ijl#ej+|ck+gvbkr&
-CCM^86048>:9=2
-CCM^86048?;8=0
-CCM^86048?;9=@kcolcr#',\iy`b`e
-CCM^86048?;:=Uoomm&e{~~jk\7fgei"nrdeu excf(\7ffn.Qbjg%Cxwxmh|b`l.xnv!nolf*\7fden.bzgju!\7fcrf*\7f`a{~nj,
-CCM^86048?:9=2
-CCM^860488;8=0
-CCM^860488;9=@kcolcr#',Bfmayccsonf
-CCM^860488;:=Ckj!areny,|myk+}wded{ufvf`r(nv\7f|cdrdl(
-CCM^860488:9=2
-CCM^860489;8=3
-CCM^860489;9=Kiouagljpi
-CCM^860489;:=Rucqitimm,mgy.Nvvugb|oom$,+Xgkj}g'Q`ar.
-CCM^860489:9=2
-CCM^86048:;8=3
-CCM^86048:;9=@kcolcr#',Nzyay
-CCM^86048:;:=Ci&dztoq*{j{+kemmrhumteg*{cagk+~pbv`zond*jdz+kszpfeuain-*,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^86048::9=2
-CCM^860484;8=3
-CCM^860484;9=@kcolcr#',H`daxk"Aimlcr#Fchi\7fgd`
-CCM^860484:9=2
-CCM^86048498=Fntdkroqcix
-CCM^86048499=Fuowmu
-CCM^860485;8=3
-CCM^860485;9=@kcolcr#',Xmgkhz"@tn}v ee~+[cayzarrr
-CCM^860485:9=2
-CCM^86048598=Girdz&oq*\7fndnm\7f.c'asgsp#dmfm+hd|"nhr|glocbl(xfd|vdsu{(
-CCM^86049<;8=3
-CCM^86049<;9=@kcolcr#',Nzyay
-CCM^86049<;:=Ci&dztoq*chk~|ykf'qiaje#kx\7fmf~\7fgl`&ug&imyxjdg.xfmurb}rs-
-CCM^86049<:9=2
-CCM^86049\13;8=3
-CCM^86049\13;9=@kcolcr#',Ymz{n}v
-CCM^86049\13;:=Mic!gt ne~n(mggkq'qdzc jd\7f\7figbnj"sn`|&rf{ybzn.rawu&rqutfg,\7fg+ln.pbuuittfn"
-CCM^86049\13:9=2
-CCM^86049\1398=Pbuuitt#,Bd\7f
-CCM^86049\1399=Pbuuitt#,@j|n|
-CCM^86049>;8=3
-CCM^86049>;9=@kcolcr#',Ymz{n}v
-CCM^86049>;:=Rkc`{c jd\7fnz\7f.]anrkd(Hunhiy(.j+glsi!|ne#xifg}oibg'bsape-
-CCM^86049>:9=67?7
-CCM^86049?;8=3
-CCM^86049?;9=@kcolcr#',Nzyay
-CCM^86049?;:=[hs!`gvf*ee{n|\7fkf'rim&wqebl(]ag{ob(!(Vlfk\7fn(hfnmi'rim&mfnej(j`o.vu\7f!iaajd"
-CCM^86049?:9=2
-CCM^860498;8=3
-CCM^860498;9=@kcolcr#',Nzyay
-CCM^860498;:=Voc!losh*ex(ea\7f.pbgeq&flx,jkhkx},'&Qdcapo,h`nm`.vh&lime#yyym+zcov'rim&mfnej(b}+ypnrd(cnbh`nl+oej"wtnxcros,bfxkyzgc&hfro#~dn(o|bxg)
-CCM^860498:9=2
-CCM^860::?31=Ahhgatm
-CCM^860::?28='t&iiu mex+jnke.qbrtx( Bxi+qd{+}wuc!qiu#}me|+zd.g\7fou7
-CCM^860::>31=Gutnz
-CCM^860::>28=Qbrtx&hby,bf\7fky`ck&dztoq$,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^860::<;8=1
-CCM^8603:\13;9=^[udzpeqVdden}Wa`mZcdcngo~&kykjzmu+3&~x.}eeldyx g\7fc
-CCM^8603:\13;8=A\13ZEGEUNOr:Tm|j`i[JNKGLPt\13W\nc{Rqa~7K0.yc|
-CCM^8603:4;8=2
-CCM^8603:9;8=2
-CCM^8603:9;9=2
-CCM^8603:9;:=2
-CCM^8603:\13;;=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^76/ahswk`gmy bmm<6
-CCM^860334;8=2
-CCM^860334;9=2
-CCM^860339;8=@kcolcr8:
-CCM^8603:8;;=2
-CCM^860::\13>\13=3
-CCM^860::<?;=3
-CCM^860::<9:=3
-CCM^860::<;;=2
-CCM^860::<9<=A\13ZEgeunob\7f{+oej"Tcu|ondyPmzj``RFbuj|ip_yddz\7fm~z,fby
-CCM^860::>38=3
-CCM^860::<;\13=>Nhr|gloLcgln|5RWioo{raof"npn
-CCM^860::<;?=3
-CCM^860::<;1=3
-CCM^860::<9\13=JLCXWELBY_N[T\DAV[(cdcng1$Ommo~bv.zICCY\I@J[XKXQPHIUTdlfdhmagk0&Fb``}jt*vD@MRQHBCTUD[YRLEXWjgkejdnjdTuhff`Wg{keRahklihd8"Hnnj{gz+{NJM__@FMX[N]T\MHR]jjemnjbdnROkdfsm|Ocld7#Lnhj{ns/}@MEZU@DKJBTCCDNHFC\Pej\7f\7fj|nROnesguoe~P\aejdyq[Etztem~Znzxgd`^Rhhfutbf`WJgkejgu\13EaupokuEifkwFIB_^DICBFSFIHFB@G[UnnrwbxiWEbmyaqh`uTQimnc|{WM~|pbhu^crpcceT^`b`qsgmdZBoobomy5^`kiuuijlP~~bflr
-CCM^860::<;0=>Nhr|gloLcgln|5R@kcolcr-otnt7Ge}vfjmNilgo~5THa{wpnai|(t{~p7Ae}\7fonk@ndbeq4PYmjjfk,s~ut:ImyxjdgHdbfbt?TNeoz"~zg505~;Oo{raofJddoky0^w\7fu`in1:"odg505~
-CCM^860::\13>;=3
-CCM^860::<?<=2
-CCM^860::\13?1=3
-CCM^860::<91=2
-CCM^860::\13>8=3502:455
-CCM^860::\13?\13=
-CCM^860::\13?>=
-CCM^860::\13?0=2
-CCM^860::\13>:=3
-CCM^860::\13\13?=1
-CCM^860::\13\130=3
-CCM^860::>3\13=2
-CCM^860::\13\13\13=>WtnotanLegmx0WLnbhemt
-CCM^860::\13\13>=@kcolcr-otn37Ge}vfjmNilgo~5TIbn`fbt/m~e8:7;3;505~Diqqtidbx%|sz02KiuuijlEe`omy0WMmw\7fsaahw$xs|0>0>97\13:3zRfkhfm%zsz9;Oo{raofJddoky0^Uc`lke-~t\7f3;5;52<\13:tNeoz"~zg57Gltr`djFlfhnz5RCknw(tzj;31<08050rr~righ23$hgd02B`qsgmd@ooniy6W~rzjhh38(dof7;3;5;59<z
-CCM^860::>3>=3
-CCM^860::>3?=2
-CCM^860::\13<8=3
-CCM^860::>?8=2
-CCM^860::\13<9=3
-CCM^860::>?9=2
-CCM^860::\13<:=3
-CCM^860::>?:=2
-CCM^860::\13<;=3
-CCM^860::>?;=2
-CCM^860::\13<<=3
-CCM^860::>?<=2
-CCM^860::\13<\13=2
-CCM^860::>?\13=2
-CCM^860::\13<>=3
-CCM^860::>?>=2
-CCM^860::\13\139=Lhr!i&Nvgnnz
-CCM^860::\13\13:=
-CCM^860::\13\13;=upq/jjemniy&eb
-CCM^860::\13\13<=
-CCM^860::\13>1=@kcolcr#I~ni\7fay
-CCM^860::\13\138=0)40k
-CCM^860::9>9=2
-CCM^860::9>:=3
-CCM^860::9><=3
-CCM^860::9>\13=3
-CCM^860::5<<=2
-CCM^860::9>?=
-CCM^860::<8;=2
-CCM^860::<8<=
-CCM^860::<8\13=>Nhr|gloLcgln|5RJbjq&sro
-CCM^860::<8>=
-CCM^860::831=2
-CCM^860::5\139=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^77/ahswk`gmy icr
-CCM^860::5\13:=
-CCM^860::5\13;=2
-CCM^860::<9>=3
-CCM^860::<9?=3
-CCM^860::5\13<=2
-CCM^860::5\13\13=2
-CCM^860::5\13>=2
-CCM^860::5<\13=2
-CCM^860::5<>=2
-CCM^860::5<?=
-CCM^860::5<1=2
-CCM^860::5<0=2
-CCM^860::538=2
-CCM^860::52>=3
-CCM^860::52?=>Nhr|gloLcgln|5R@FEJ]V
-CCM^860::520=2
-CCM^860::\13>>=2
-CCM^860::\13>?=2
-CCM^8603:?;:=3
-CCM^8603:?;;=2
-CCM^8603:>;:=>FBUmkp\13
-CCM^8603:;;>=2
-CCM^860::9>;=JLCXWELBY_N[T\DAV[(cdcng1$Ommo~bv.\13cdcnglegm0]\7f|kia}@MEZUOGIX]N]]UIN\Zboobonbbn5*Ccgislw#7Idn`okp'@hdc;P~~bflrCEG^YBDGSPO_TZDA_R`kcol`iooPx`nbgRmwcoTeongmel0&Okdfsm|/;!6Ee{\7fogbDhjemt>_H`nfoky g\7fc#($%2(7X|ygei~OMDQYCOK_XMXQYAMSZcdcnglegmWJnhcrjuAeom1$Ommo~bv.\13#4Onp~mgdMagjgu8]Jjemniy&nvn,.6\13R|timmpCCNWTBMDGMWKA@BEEMW]dhvpgsmZMji~d{dh\7fRUnhegqs_Iyyzn`\7fXguuhgh\Vdee{\7fogb^Ejdfbeq1Hb{{bjwLfkd3Dlfdhnz0]\7f|kia}@MEZU@DKJBTCCDNHFC\Pej\7f\7fj|nROnesguoe~P\aejdyq[Etztem~Znzxgd`^Rhhfutbf`WJgkejgu\13Tfonp~mgdXzygl`\13\13Ahswk`gNdbokp9ZTfonp~mgd%ksk9Trsahg\7f
-CCM^860::\1328=Ubjbgke
-CCM^860::>:8=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^77/\7fcl`ean&yzm
-CCM^860::>\138=2
-CCM^860::521=[bu
-CCM^860:;<;8=Lh
-CCM^860::829=Rkc`{c qomo(\7ffn.dhjmgqimm,Gahke}g'Gfzcenob\7f&+.^}g'rim&s`xcgd+lj|"si!~oet*xcm+|n}v'ig(rhf*hdk~cn`v)
-CCM^860::9:9=Fh&xgs bionx\7f.jbn'rim&tfxax(dh+zjb&qzccfneeo+Bbmgiud(Ggqoifmez4."N`!qiu#iddgxk+@m+&rmrus*{bdg.hbmtc/(&Tl*ee{\7fogb"snd(vrlm~je'.raw'kt{r bionx\7f.\7ffkt&`otefgie|%
-CCM^860::\1329=Nnedfue#Kkymncn`v
-CCM^860::>:9=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^74/kipzxel`\7f \7fvv
-CCM^860::>\139=3
-CCM^860::\132:=Ceit|&Boobomy.H|gfrnz
-CCM^860::>::=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^75/zcaggi%|sz
-CCM^860::>\13:=2
-CCM^860::82;=Kiuuijlb~edf+Hdbfbt
-CCM^860::9:;=Wtc!|ne#lendo.iknhq!|i pzihamw+zjb&ggjdfx,|`n|n.{hs!\7fgnw*xcm+o{~nne`|oom*jbdn}+zm'dd(eoscio(\7fa%.Vh&rxccjlu+i+jbhdbtdfr ee`omy"+z{wc!i&nf},eifk'.mu&t{c wbi+Ti.I|mpudTd0#*n~|\7fae.vh&rmje`~,jf+ksgqsooo&flfhnz%.+^pbur(Zb#Dis|Wl;."si!kinwcb~m%\11
-CCM^860::\132;=Aoin{c Pox~x+Hdbfbt
-CCM^860::>:;=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^72/nilgo~%z\7fh
-CCM^860::>\13;=2
-CCM^860::82<=Uhtjahg
-CCM^860::9:<=Rkc`{c tke\7f(|fbbg'#r(os#yi\7f}{.d`"~itz&clg|~|n|%\11
-CCM^860::\132<=Qbrtx&Pqekymx}
-CCM^860::>:<=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^73/xtodxix{%|\7fh
-CCM^860::>\13<=2
-CCM^860::82>=Qbrtx&wby,x}hmn}qasm
-CCM^860::9:>='t&viu p\7fohmx}m{nk\7f!{ctvz,df+wd{p'enevuwo~%(+^ykqt&]j&Fjdex`Wl;."si!m~iw*\7fn|~~%\11
-CCM^860::98>=Qsgs|&Boobomy
-CCM^860::>3;=>Nhr|gloLcgln|5R`kcolcr-otn
-CCM^860::>3<=2
-CCM^860::>39=3
-CCM^860::\132>=Qbrtx&Clg|gm\7fk
-CCM^860::>:>=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^70/kimsfi\7fm%|\7fh
-CCM^860::>\13>=2
-CCM^860::<:8=Wioo{raofiy
-CCM^860::<:9=Voc!}himyxjdg.{|m`t`e&wjf`+zncdxg'`hdcs#kbo(magjguu-(uhlxxh}\7f}'.cib!zcgjyxyq+kezpncr(`rlg,\7f`n.ogql(!(Grf*ud}+}~|g'\7fn}&wbdx+|d.~`kiuuijl<
-CCM^860::<::=Mic!g` `ea{gekezq'or(gcwczn&+.Nvks&u`c sxclzjc+lgaism&swk~\7faei+[lnhr|glo$
-CCM^860::<:;=Wioo{raof,x}hmn}qasmd\7f!
-CCM^860::<:<=Ci&dztoq*chk~|ykf'qiaje#~~raei+zm'soahswk`g(\7ffn.ruifzgm-*,^fb`xzckj!`gs#hinf+mj`abjdl(
-CCM^860::\13><=Qbrtx
-CCM^860::<9;=Lhr!i&Nvgnnzwrwr~{Dmmhdfx,Hzno\7fap{4/:7c\7f
-CCM^860::<;:=Giamauh#',^fbznj"Tr`|cs
-CCM^860::<;9=3752
-CCM^86033:;8=>DAsgsp\1310BfxzjbnAimlcr\13VNgmejn|,b~d3\13Boobomy5059<6
-CCM^86033:;9=>DAsgsp\1310BfxzjbnAimlcr\13VYeae}\7fonk(dpc;8_bbfxzjbn'Dmmhdfx70305;
-CCM^86033:;:=>DAsgsp\1310BfxzjbnAimlcr\13V^niocn v\7fr:3Tebnan305052
-CCM^86033:;;=>DAsgsp\1310BfxzjbnAimlcr\13VOdxr|bijs(upr;8Ic{qyglfv<\13:3\130
-CCM^86033:;<=>DAsgsp\1310BfxzjbnAimlcr\13VDnd{ ~|n<\13Imjp81703;
-CCM^86033:;\13=>Ccrcros477Ae}\7fonk@ndbeq4PIdn`okp)cym\13;Afieln|059<\131
-CCM^860:;<;9=^[udzpeqVdden}Wa`mZcdcngo~&\7fb`oautZ+&,
\ No newline at end of file
diff --git a/release/windows/installer/00.installer.ico b/release/windows/installer/00.installer.ico
deleted file mode 100644 (file)
index 922c9d4..0000000
Binary files a/release/windows/installer/00.installer.ico and /dev/null differ
diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi
deleted file mode 100644 (file)
index 1cb1590..0000000
+++ /dev/null
@@ -1,425 +0,0 @@
-;
-; $Id$
-;
-; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)
-;
-; Requires the MoreInfo plugin - http://nsis.sourceforge.net/MoreInfo_plug-in
-;
-
-!include "MUI.nsh"
-!include "WinVer.nsh"
-!include "FileFunc.nsh"
-!include "WordFunc.nsh"
-!include "nsDialogs.nsh"
-
-SetCompressor /SOLID lzma
-
-Name "Blender VERSION" 
-
-!define MUI_ABORTWARNING
-
-!define MUI_WELCOMEPAGE_TEXT  "This wizard will guide you through the installation of Blender.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\nNote to Win2k/XP users: You may require administrator privileges to install Blender successfully."
-!define MUI_WELCOMEFINISHPAGE_BITMAP "RELDIR\01.installer.bmp"
-!define MUI_HEADERIMAGE
-!define MUI_HEADERIMAGE_BITMAP  "RELDIR\00.header.bmp"
-!define MUI_COMPONENTSPAGE_SMALLDESC
-!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"
-!define MUI_CHECKBITMAP "RELDIR\00.checked.bmp"
-
-!insertmacro MUI_PAGE_WELCOME
-!insertmacro MUI_PAGE_LICENSE "DISTDIR\Copyright.txt"
-!insertmacro MUI_PAGE_COMPONENTS
-    
-!insertmacro MUI_PAGE_DIRECTORY
-Page custom DataLocation DataLocationOnLeave
-;Page custom AppDataChoice AppDataChoiceOnLeave
-Page custom PreMigrateUserSettings MigrateUserSettings
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_PAGE_FINISH
-  
-!insertmacro MUI_UNPAGE_WELCOME
-!insertmacro MUI_UNPAGE_CONFIRM
-!insertmacro MUI_UNPAGE_INSTFILES
-!insertmacro MUI_UNPAGE_FINISH
-
-!insertmacro Locate
-!insertmacro VersionCompare
-
-
-Icon "RELDIR\00.installer.ico"
-UninstallIcon "RELDIR\00.installer.ico"
-
-;--------------------------------
-;Languages
-  !insertmacro MUI_LANGUAGE "English"
-    
-;--------------------------------
-;Language Strings
-
-  ;Description
-  LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."
-  LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"
-  LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."
-  LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."
-  LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"
-;--------------------------------
-;Data
-
-Caption "Blender VERSION Installer"
-OutFile "DISTDIR\..\blender-VERSION-windows.exe"
-InstallDir "$PROGRAMFILES\Blender Foundation\Blender"
-
-BrandingText "http://www.blender.org"
-ComponentText "This will install Blender VERSION on your computer."
-
-DirText "Use the field below to specify the folder where you want Blender to be copied to. To specify a different folder, type a new name or use the Browse button to select an existing folder."
-
-SilentUnInstall normal
-
-# Uses $0
-Function openLinkNewWindow
-  Push $3 
-  Push $2
-  Push $1
-  Push $0
-  ReadRegStr $0 HKCR "http\shell\open\command" ""
-# Get browser path
-    DetailPrint $0
-  StrCpy $2 '"'
-  StrCpy $1 $0 1
-  StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char
-    StrCpy $2 ' '
-  StrCpy $3 1
-  loop:
-    StrCpy $1 $0 1 $3
-    DetailPrint $1
-    StrCmp $1 $2 found
-    StrCmp $1 "" found
-    IntOp $3 $3 + 1
-    Goto loop
-  found:
-    StrCpy $1 $0 $3
-    StrCmp $2 " " +2
-      StrCpy $1 '$1"'
-  Pop $0
-  Exec '$1 $0'
-  Pop $1
-  Pop $2
-  Pop $3
-FunctionEnd
-
-Var BLENDERHOME
-Var DLL_found
-Var PREVHOME
-
-Function SetWinXPPathCurrentUser
-  SetShellVarContext current
-  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
-FunctionEnd
-
-Function SetWinXPPathAllUsers
-  SetShellVarContext all
-  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
-FunctionEnd
-
-Function SetWin9xPath
-  StrCpy $BLENDERHOME $INSTDIR
-FunctionEnd
-
-; custom controls
-Var HWND
-
-Var HWND_APPDATA
-Var HWND_INSTDIR
-Var HWND_HOMEDIR
-
-Var HWND_BUTTON_YES
-Var HWND_BUTTON_NO
-
-Var SETUSERCONTEXT
-
-Function PreMigrateUserSettings
-  StrCpy $PREVHOME "$PROFILE\Application Data\Blender Foundation\Blender"
-  StrCpy $0 "$PROFILE\Application Data\Blender Foundation\Blender\.blender"
-  
-  IfFileExists $0 0 nochange
-  
-  StrCmp $BLENDERHOME $PREVHOME nochange
-  
-  nsDialogs::Create /NOUNLOAD 1018
-  Pop $HWND
-  
-  ${If} $HWND == error
-       Abort
-  ${EndIf}
-  
-  ${NSD_CreateLabel} 0 0 100% 12u "You have existing settings at:"
-  ${NSD_CreateLabel} 0 20 100% 12u $PREVHOME
-  ${NSD_CreateLabel} 0 40 100% 12u "Do you wish to migrate this data to:"
-  ${NSD_CreateLabel} 0 60 100% 12u $BLENDERHOME
-  ${NSD_CreateLabel} 0 80 100% 12u "Please note: If you choose no, Blender will not be able to use these files!"
-  ${NSD_CreateRadioButton} 0 100 100% 12u "Yes"
-  Pop $HWND_BUTTON_YES
-  ${NSD_CreateRadioButton} 0 120 100% 12u "No"
-  Pop $HWND_BUTTON_NO
-  
-  SendMessage $HWND_BUTTON_YES ${BM_SETCHECK} 1 0
-  
-  nsDialogs::Show
-  nochange:
-  
-FunctionEnd
-
-Function MigrateUserSettings
-  ${NSD_GetState} $HWND_BUTTON_YES $R0
-  ${If} $R0 == "1"
-    CreateDirectory $BLENDERHOME
-    CopyFiles $PREVHOME\*.* $BLENDERHOME
-    ;RMDir /r $PREVHOME
-  ${EndIf}  
-FunctionEnd
-
-!define DLL_VER "9.00.21022.8"
-
-Function LocateCallback_90
-    MoreInfo::GetProductVersion "$R9"
-    Pop $0
-
-        ${VersionCompare} "$0" "${DLL_VER}" $R1
-
-        StrCmp $R1 0 0 new
-      new:
-        StrCmp $R1 1 0 old
-      old:
-        StrCmp $R1 2 0 end
-    ; Found DLL is older
-        Call DownloadDLL
-
-     end:
-       StrCpy "$0" StopLocate
-       StrCpy $DLL_found "true"
-       Push "$0"
-
-FunctionEnd
-
-Function DownloadDLL
-    MessageBox MB_OK "You will need to download the Microsoft Visual C++ 2008 Redistributable Package in order to run Blender. Pressing OK will take you to the download page, please follow the instructions on the page that appears."
-    StrCpy $0 "http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&DisplayLang=en"
-    Call openLinkNewWindow
-FunctionEnd
-
-Function PythonInstall
-    MessageBox MB_OK "You will need to install python 2.5.2 in order to run blender. Pressing OK will take you to the python.org website."
-    StrCpy $0 "http://www.python.org"
-    Call openLinkNewWindow
-FunctionEnd
-
-Function DataLocation
-  nsDialogs::Create /NOUNLOAD 1018
-  Pop $HWND
-  
-  ${If} $HWND == error
-    Abort
-  ${EndIf}
-  
-  ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."
-  ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"
-  Pop $HWND_APPDATA
-  ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."
-  Pop $HWND_INSTDIR
-  ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."
-  Pop $HWND_HOMEDIR
-  
-  ${If} ${AtMostWinME}
-    GetDlgItem $0 $HWND $HWND_APPDATA
-    EnableWindow $0 0
-    SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0
-  ${Else}
-    SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0
-  ${EndIf}
-  
-  nsDialogs::Show
-  
-FunctionEnd
-
-Function DataLocationOnLeave
-       StrCpy $SETUSERCONTEXT "false"
-       ${NSD_GetState} $HWND_APPDATA $R0
-       ${If} $R0 == "1"
-         ; FIXME: disabled 'all users' until fully multi-user compatible
-         ;StrCpy $SETUSERCONTEXT "true"
-         Call SetWinXPPathCurrentUser
-       ${Else}
-         ${NSD_GetState} $HWND_INSTDIR $R0
-         ${If} $R0 == "1"
-           Call SetWin9xPath
-         ${Else}
-           ${NSD_GetState} $HWND_HOMEDIR $R0
-           ${If} $R0 == "1"
-             ReadEnvStr $BLENDERHOME "HOME"
-           ${EndIf}
-         ${EndIf}
-       ${EndIf}
-FunctionEnd
-
-Var HWND_APPDATA_CURRENT
-Var HWND_APPDATA_ALLUSERS
-
-Function AppDataChoice
-  StrCmp $SETUSERCONTEXT "false" skip
-  
-  nsDialogs::Create /NOUNLOAD 1018
-  Pop $HWND
-  
-  ${NSD_CreateLabel} 0 0 100% 12u "Please choose which Application Data directory to use."
-  ${NSD_CreateRadioButton} 0 40 100% 12u "Current User"
-  Pop $HWND_APPDATA_CURRENT
-  ${NSD_CreateRadioButton} 0 70 100% 12u "All Users"
-  Pop $HWND_APPDATA_ALLUSERS
-  
-  SendMessage $HWND_APPDATA_CURRENT ${BM_SETCHECK} 1 0
-  
-  StrCmp $SETUSERCONTEXT "true" 0 skip ; show dialog if we need to set context, otherwise skip it
-  nsDialogs::Show
-  
-skip:
-
-FunctionEnd
-
-Function AppDataChoiceOnLeave
-       StrCmp $SETUSERCONTEXT "false" skip
-       ${NSD_GetState} $HWND_APPDATA_CURRENT $R0
-       ${If} $R0 == "1"
-          Call SetWinXPPathCurrentUser
-       ${Else}
-          Call SetWinXPPathAllUsers
-       ${EndIf}
-skip:
-
-FunctionEnd
-
-Section "Blender-VERSION (required)" SecCopyUI
-  SectionIn RO
-
-  ; Set output path to the installation directory.
-  SetOutPath $INSTDIR
-  ; Put file there
- [ROOTDIRCONTS]
-     
-  SetOutPath $BLENDERHOME\.blender
-  [DOTBLENDERCONTS]
-  
-  SetOutPath $BLENDERHOME\.blender\scripts
-  [SCRIPTCONTS]
-  SetOutPath $BLENDERHOME\.blender\scripts\bpymodules
-  [SCRIPTMODCONTS]
-  SetOutPath $BLENDERHOME\.blender\scripts\bpymodules\colladaImEx
-  [SCRIPTMODCOLLADACONT]
-  SetOutPath $BLENDERHOME\.blender\scripts\bpydata
-  [SCRIPTDATACONTS]
-  SetOutPath $BLENDERHOME\.blender\scripts\bpydata\config
-  [SCRIPTDATACFGCONTS]
-  SetOutPath $BLENDERHOME\plugins\include
-  [PLUGINCONTS]
-  
-  ; Language files
-  [LANGUAGECONTS]
-  
-  SetOutPath $INSTDIR
-  ; Write the installation path into the registry
-  WriteRegStr HKLM SOFTWARE\BlenderFoundation "Install_Dir" "$INSTDIR"
-  WriteRegStr HKLM SOFTWARE\BlenderFoundation "Home_Dir" "$BLENDERHOME"
-  ; Write the uninstall keys for Windows
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'
-  WriteUninstaller "uninstall.exe"
-
-  IfSilent 0 +2
-    Goto silentdone
-  ; Check for msvcr80.dll - give notice to download if not found
-  MessageBox MB_OK "The installer will now check your system for the required system dlls."
-  StrCpy $1 $WINDIR
-  StrCpy $DLL_found "false"
-  ${Locate} "$1" "/L=F /M=MSVCR90.DLL /S=0B" "LocateCallback_90"
-  StrCmp $DLL_found "false" 0 +2
-    Call DownloadDLL
-  ReadRegStr $0 HKLM SOFTWARE\Python\PythonCore\2.5\InstallPath ""
-  StrCmp $0 "" 0 +2
-    Call PythonInstall
-silentdone:
-SectionEnd
-
-Section "Add Start Menu shortcuts" Section2
-  SetOutPath $INSTDIR
-  CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0
-  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"
-SectionEnd
-
-Section "Add Desktop Blender-VERSION shortcut" Section3
-  SetOutPath $INSTDIR
-  CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0
-SectionEnd
-
-Section "Open .blend files with Blender-VERSION" Section4
-  SetOutPath $INSTDIR
-  ;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"
-  ;do it the manual way! ;)
-  
-  WriteRegStr HKCR ".blend" "" "blendfile"
-  WriteRegStr HKCR "blendfile" "" "Blender .blend File"
-  WriteRegStr HKCR "blendfile\shell" "" "open"
-  WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1
-  WriteRegStr HKCR "blendfile\shell\open\command" "" \
-    '"$INSTDIR\blender.exe" "%1"'
-  
-SectionEnd
-
-UninstallText "This will uninstall Blender VERSION. Hit next to continue."
-
-Section "Uninstall"
-  Delete $INSTDIR\uninstall.exe
-  
-  ReadRegStr $BLENDERHOME HKLM "SOFTWARE\BlenderFoundation" "Home_Dir"
-  
-  ; remove registry keys
-  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"
-  DeleteRegKey HKLM SOFTWARE\BlenderFoundation
-  ; remove files
-  [DELROOTDIRCONTS]
-  
-  Delete $BLENDERHOME\.blender\.bfont.ttf
-  Delete $BLENDERHOME\.blender\.Blanguages
-  ; remove shortcuts, if any.
-  Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"
-  Delete "$DESKTOP\Blender.lnk"
-  ; remove directories used.
-  RMDir /r $BLENDERHOME\.blender\locale
-  MessageBox MB_YESNO "Erase .blender\scripts folder? (ALL contents will be erased!)" /SD IDYES IDNO Next
-  RMDir /r $BLENDERHOME\.blender\scripts
-  RMDir /r $BLENDERHOME\.blender\scripts\bpymodules
-  RMDir /r $BLENDERHOME\.blender\scripts\bpydata
-  RMDir /r $BLENDERHOME\.blender\scripts\bpydata\config
-Next:
-  RMDir /r $BLENDERHOME\plugins\include
-  RMDir /r $BLENDERHOME\plugins
-  RMDir $BLENDERHOME\.blender
-  RMDir "$SMPROGRAMS\Blender Foundation\Blender"
-  RMDir "$SMPROGRAMS\Blender Foundation"
-  RMDir "$INSTDIR"
-  RMDir "$INSTDIR\.."
-SectionEnd
-
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
-  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
-  !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
diff --git a/release/windows/installer/00.unchecked.bmp b/release/windows/installer/00.unchecked.bmp
deleted file mode 100644 (file)
index 6d3ff5c..0000000
Binary files a/release/windows/installer/00.unchecked.bmp and /dev/null differ
diff --git a/release/windows/installer/01.installer.bmp b/release/windows/installer/01.installer.bmp
deleted file mode 100644 (file)
index 10fb014..0000000
Binary files a/release/windows/installer/01.installer.bmp and /dev/null differ
diff --git a/release/windows/installer/01.welcome.rtf b/release/windows/installer/01.welcome.rtf
deleted file mode 100644 (file)
index 3235e65..0000000
Binary files a/release/windows/installer/01.welcome.rtf and /dev/null differ
diff --git a/release/windows/installer/02.copyright.txt b/release/windows/installer/02.copyright.txt
deleted file mode 100644 (file)
index 4e67c25..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-BLENDER CREATOR LICENSE AGREEMENT
-
-IMPORTANT: PLEASE READ CAREFULLY BEFORE USING THE BLENDER CREATOR SOFTWARE. 
-
-This License Agreement for the Blender Creator software ("License Agreement") is an agreement between NaN Technologies B.V., Meerenakkerplein 11, 5652 BJ Eindhoven, the Netherlands ("NaN") and you (either an individual or a legal entity) ("You") with respect to the software product which this License Agreement accompanies (the "Software"). 
-
-By installing, copying or otherwise using the Software, You agree to be bound by the terms of this License Agreement. If You do not agree to the terms of this License Agreement do not install or use the Software.
-
-
-1. Grant of License
-
-Subject to the provisions of this License Agreement, NaN grants You a limited, non-exclusive, personal, non-sublicenseable, non-transferable, revocable license to use the Software at any computer You own or use. 
-
-2. License Restrictions
-
-Except as expressly provided under this License Agreement, or without prior written consent from NaN, or without permission by law, You may not: (a) remove or alter any proprietary, copyright or trademark notices in or on the Software; (b) modify, decompile, disassemble or reverse-engineer the Software; (c) sublicense, rent, lease, lend, assign or otherwise transfer rights to the Software.
-
-3. Permitted copying and electronic distribution of Software
-
-You are hereby granted permission to copy and distribute the Software without written agreement from NaN, only for non-commercial purposes.  Distributing the Software within a restricted non-public environment, such as using a local network in a company or a local network of a university, is considered a 'non-commercial purpose'. This entire License Agreement must appear in and/or accompany all copies of the Software.
-Distributing the Software 'bundled' in with ANY product is considered to be a 'commercial purpose'. 
-
-4. Intellectual Property Rights and Ownership
-
-Title and ownership to all rights, including intellectual property rights, in and to the Software shall at all times solely and exclusively remain with NaN. The Software is protected by national and international (copyright) laws and treaties. All rights not expressly granted herein are reserved to NaN.
-
-5. Disclaimer of Warranties
-
-NaN provides you with the Software "as is" and with all faults. NaN explicitly disclaims all warranties and guarantees and does not make any representations with respect to the Software, whether express, implied, or statutory, including, but not limited to any (if any) warranties of or related to: fitness for a particular purpose, title, non-infringement, lack of viruses, accuracy or completeness of responses, results, lack of negligence or lack of workmanlike effort, and correspondence to description. The entire risk arising out of use or performance of the Software remains with You.
-
-6. Limitation of Liability
-
-In no event shall NaN or its employees, agents or suppliers be liable for any direct, indirect, consequential, incidental, special, punitive, or other damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, claims of third parties, damages as a result of injury to any person, or any other loss) arising out of or in connection with the license granted under this License Agreement or the use of or inability to use the Software, even if NaN has been advised of the possibility of such damages. 
-7. User warning and indemnification
-
-WARNING: use of the Software and use of any works that are (partially) created with the Software (the "Works") may cause physical or psychological reactions from You or from third parties, which may result in damages, injuries, losses and/or other negative consequences. You acknowledge that NaN can not be held liable for any such damages, injuries, losses and/or other negative consequences. You acknowledge that it is your obligation to investigate, prevent and/or minimize such reactions prior to having third parties use the Works.
-
-You shall indemnify and hold harmless NaN from and against all actions, claims, demands, proceedings, losses, damages, costs, charges and expenses, including but not limited to legal fees and expenses, arising out of or in connection with (i) the use of the Software by You and (ii) the use of any Works created with the Software by You or any third parties.
-
-8. Term and Termination
-
-This License Agreement and the license granted hereunder is effective until terminated. This License Agreement shall terminate automatically and forthwith if You fail to comply with the terms of this License Agreement. Upon termination, You shall cease the use of the Software, remove the Software from (the memory of) your computer and destroy all copies of the Software.
-
-9. Entire Agreement
-
-This License Agreement is the entire agreement between NaN and You in respect of the subject matter of the License Agreement. This License Agreement supersedes all prior written or oral agreements, proposals or understandings, and any other communications between NaN and You relating to the subject matter of this License Agreement.
-
-10. Enforceability
-
-If any provision of this License Agreement is held to be unenforceable by a court of competent jurisdiction for any reason, such provision shall be adapted or amended only to the extent necessary to make it enforceable, and the remainder of the License Agreement shall remain in effect.
-
-11. Governing law and disputes
-
-This License Agreement and all disputes arising from it will be governed by the laws of The Netherlands. All disputes arising in connection with this Agreement that cannot be settled amicably shall be brought before the competent court in Amsterdam, the Netherlands, to which jurisdiction NaN and You hereby irrevocably consent.
-
diff --git a/release/windows/installer/03.readme.txt b/release/windows/installer/03.readme.txt
deleted file mode 100644 (file)
index 9cfcc83..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-                    Blender V2.2
-
-  NaN Technologies B.V., the Netherlands
-
-     ----- GENERAL INFORMATION -----
-
-Blender Creator is a free and fully functional 3D modeling, rendering, animation and game creation package for Unix and Windows. Blender Creator is distributed without sources, it is exclusively developed and maintained by the Dutch company NaN Technologies B.V.
-
-This software is free to be applied for any purpose, excluding commercial distribution. For more about this, read the copyright notice included in the download file.
-
-The best resource for getting to know Blender Creator is of course 'The official Blender 2.0 guide'. This wonderfully designed 250 pages book contains tutorials, examples and a complete description of every aspect of the interface. 
-
-You can visit the shop page of the Blender site for more about this:
-
-    http://www.blender.nl/shop/
-
-More information about Blender can be found at:
-
-- The website
-
-    http://www.blender.nl
-
-- The beginners page
-
-    http://www.blender.nl/support/beginners.php
-
-- The Support Pages
-
-    http://www.blender.nl/support/
-
-- The frequently asked questions
-
-    http://www.blender.nl/support/faq/index.php
-
-- Tutorials
-
-  Good tutorials to start with are 'User Interface' and
-  'Navigating in 3D Space' and 'The Blender Windows'
-
-    http://www.blender.nl/search_item.php?part=tutorial
-
-- The Blender news-server: to post questions and contact other users
-
-    http://www.blender.nl/discussion/index.php
-
-
-Thank you for getting Blender Creator, I hope you will enjoy using it.
-
-Ton Roosendaal
-NaN Technologies B.V.
-
-http://www.blender.nl
-support@blender.nl
-
diff --git a/release/windows/installer/04.folder.rtf b/release/windows/installer/04.folder.rtf
deleted file mode 100644 (file)
index 1929843..0000000
Binary files a/release/windows/installer/04.folder.rtf and /dev/null differ
diff --git a/release/windows/installer/05.progress.rtf b/release/windows/installer/05.progress.rtf
deleted file mode 100644 (file)
index 5cf4ca9..0000000
Binary files a/release/windows/installer/05.progress.rtf and /dev/null differ
diff --git a/release/windows/installer/06.complete.rtf b/release/windows/installer/06.complete.rtf
deleted file mode 100644 (file)
index 1d2917d..0000000
Binary files a/release/windows/installer/06.complete.rtf and /dev/null differ
diff --git a/release/windows/installer/input/24bits-image.bmp b/release/windows/installer/input/24bits-image.bmp
deleted file mode 100644 (file)
index 5c7fd06..0000000
Binary files a/release/windows/installer/input/24bits-image.bmp and /dev/null differ
diff --git a/release/windows/publ_installer/00.installer.adx b/release/windows/publ_installer/00.installer.adx
deleted file mode 100644 (file)
index d0ecf54..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-[ADX]
-ADXVersion=1.00.00
-<=>2240
-CCM^8603:<;8=2
-CCM^8603:>;8=6
-CCM^8603:?;8=3
-CCM^8603:?;9=2
-CCM^8603:8;8=2
-CCM^8603:8;9=2
-CCM^8603::;8=2
-CCM^8603::;9=2
-CCM^8603::;:=2
-CCM^8603:;;8=2
-CCM^8603:4;:=2
-CCM^8603:4;<=2
-CCM^8603:5;8=$HM
-CCM^8603:5;9=$Dgokcl
-CCM^8603:5;:=$Naogte
-CCM^8603:5;;=$^cr
-CCM^8603:5;<=$Ii
-CCM^8603:5;\13=$Etn\7fue
-CCM^8603:5;>=[bu!\i %K`g
-CCM^8603:5;?=$Ucuz\7f
-CCM^8603:5;0=Qbjdkr %K`g
-CCM^8603:5;1=G!~uzgcw*E\7fmf&x'
-CCM^8603:5:8=$Ciom
-CCM^8603:5:9=Lbrvgtk-$"
-CCM^8603:5::=$Fdnzr
-CCM^8603;<;8=2
-CCM^8604:<;8=3
-CCM^8604:<;9=@kcolcr#',Ymz{n}v
-CCM^8604:<;:=Rkc`{c pzihamw+zjb&qirh#~c+\7fcghf"nrdeu tc`g(ik+kzst`kreg$,+Qd{+cc~&`duo#z~n{x.\7ffg'Dsgqsf*n~|\7fae.vh&rmje`~,jf+ksgqsooo&pb~d%(+^jzjt&l}ut#cbhd~jn.c'bsape#fi\7f|n|+ap'dd(g VDO+fjcn 
-CCM^8604:<:9=67?7
-CCM^8604:\13;8=3
-CCM^8604:\13;9=@kcolcr#',Ymz{n}v
-CCM^8604:\13;:=Voc!nolf*eelbmjzgc&cmjot*mgznoow"b~h{rs-*,[zn}x. ^cr*&ie*ud}+yj`v'rn(ivfx{ya\7fk+zjb&gaje-*,[zn}x. Ii#(of#sc~(oae)v'q`fr we,d~n|||ksc!|ne#legm%.+^pbur($Cbdond).bh"~it(qam~,\7fg+}\7far'cy|ta`~eeo+.bzgju/
-CCM^8604:\13:9=4625
-CCM^8604:>;8=3
-CCM^8604:>;9=@kcolcr#',Ymz{n}v
-CCM^8604:>;:=Voc!nolf*eelbmjzgc&cmjot*mgznoow"b~h{rs#kbo(b}+\gfb,Ghlz$,+Xykx}"%_d{$ jl,rg~.|ols&ug&ouo~|zbzn.voc!nolf$,+Xykx}"%Hn*&ie*ud}+jd`%s&viht#~c+g}kyypnrd(rhf*jbdn +.Rucr{&"@kbhmg,+gd'\7fn}&wbdx+|d.xzmw&dprrbixbfl.+gvbkr&
-CCM^8604:>:9=4625
-CCM^8604:?;8=3
-CCM^8604:?;9=@kcolcr#',Ymz{n}v
-CCM^8604:?;:=Voc!nolf*eelbmjzgc&cmjot*dj{+oe.gftmacr#|iy{bae.lrkcmt lx,oi\7fk+zjfh!|ne#ebn(jbykcc\7f!gh zeyy(xwxzgj(!(Vrfy\7f+*Rkx,"n`!qiu#}me|+zd.pbvmiee#~dn(mggk,'&Qzcsp*.Eg).bh"~it(bom-x+\7fj`\7f.vh&smvlbii+|ck+hkkc/(&Pqo\7fx()Mj`abj#(of#sc~(|oez"si!{ros*is|yohzkia!(otfg\7f%
-CCM^8604:?:9=4625
-CCM^8604:8;8=3
-CCM^8604:8;9=@kcolcr#',Ymz{n}v
-CCM^8604:8;:=Rkc`{c fdxnz+zck"wgr{qoqn$x!+`nkfbb!|i frxyihz+zjb&h|cmp$,+Xykx}"%IJ*&tl*odf\7fge{g'is($Cbdond).\7fa"trnx&e{~~jk\7fgei"nrdeu.
-CCM^8604:8:9=7641
-CCM^8604:9;8=3
-CCM^8604:9;9=@kcolcr#',Np\7f|jmvnio(Vrlm~n{x
-CCM^8604:9;:=Voc!{raw\7f\7f+jnbdy"tnn\7fu tbm\7f({kymgir`oc ll,\7f`n.bzgju!`gs#hinf+kszpfeumb.
-CCM^8604:9:9=15170
-CCM^8604::;8=3
-CCM^8604::;9=@kcolcr#',Np\7f|jmvnio(Vrlm~n{x
-CCM^8604::;:=Voc!{raw\7f\7f+jnbdy"tnn\7fu tbm\7f({kymgir`oc ll,\7f`n.bzgju!`gs#hinf+kszpfeumb.#*\ymx}+,Afhbmj"#~c+{\7fa{.g\7frsietjdk+a\7fkf},
-CCM^8604:::9=15170
-CCM^8604:;;8=3
-CCM^8604:;;9=@kcolcr#',Nzyay
-CCM^8604:;;:=Voc!xgtk*eelbmjzgc&cmjot*od}gj+`ms&cm&cqom\7fmo.d|"cid{&nl~,jdykjj{'cyaut-*,_zr.x~gdogqond*m+lbhmkpbhu(vawb"
-CCM^8604:;:9=4625
-CCM^8604:4;8=3
-CCM^8604:4;9=@kcolcr#',Nzyay
-CCM^8604:4;:=Voc!nolf*eelbmjzgc&cmjot*od}gj+`ms&cm&ouo~|zbz\7fkl)
-CCM^8604:4:9=4625
-CCM^8604:5;8=3
-CCM^8604:5;9=@kcolcr#',Nzyay
-CCM^8604:5;:=Voc!nolf*eelbmjzgc&cmjot*ex(j.Ykcc+Nfjy#legm+oej"ditdb mex+jn.dxguqsartfd"
-CCM^8604:5:9=4625
-CCM^8604;<;8=3
-CCM^8604;<;9=@kcolcr#',Nzyay
-CCM^8604;<;:=Voc!xgsp}cyl+wd{"tvdkofjoh+\7fj}+gldiszccw$,+Xykx}"%E`feeo(,\7fg+}\7far'cy|ta`~eeo+g\7fkot(!(Vrfy\7f+*Bieapb$!|i pae{(dxn|"snd(vapy{dzo#{|mscb|cd#cxne%
-CCM^8604;<:9=2
-CCM^8604;\13;8=3
-CCM^8604;\13;9=@kcolcr#',Nzyay
-CCM^8604;\13;:=Mic!gt ne~n(dh+zjb&qzigqkax(\7ffjz"pcsm&svz|d{n.\7fa"uso(eovfh+fdz+lg'`n}hd-*,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^8604;\13:9=2
-CCM^8604;>;8=3
-CCM^8604;>;9=@kcolcr#',Nzyay
-CCM^8604;>;:=Onurahg#imiaek\7f.dnjd u)-
-CCM^8604;>:9=2
-CCM^8604;?;8=3
-CCM^8604;?;9=@kcolcr#',Nzyay
-CCM^8604;?;:=Voc!ksswea+znib}vu\7f!ahflxaj|bae.dnjd(rhb~,|ix.x{rwirmb we,im+cn|ebb!\7fotk*xcm+}r}vbk!zcgjyxyq+md{nc&ogr ao,mg~`o "'Vmmgsf*odf\7fohz"~itz&sllx|iyk+~phphlcr#lcy(ckg~,
-CCM^8604;?:9=2
-CCM^8604;8;8=3
-CCM^8604;8;9=@kcolcr#',Nzyay
-CCM^8604;8;:=Voc!aren*eelbmjzgc&hf&tko,manbo.`bjn\7f&cl\7f`o(ea\7f.`b&smaip~iymo +.Rkc`{c `eb\7fihz+wmrt!{ifw}mym+~yatnbdz&flx,cmg~%
-CCM^8604;8:9=4625
-CCM^8604;9;8=3
-CCM^8604;9;9=@kcolcr#',Nzyay
-CCM^8604;9;:=Voc!mhd#ej+|ck+]gk`,M~tqko\7faei+tkw&gaje#}mx(ykjmjbb!jcflxi+igb+ad'rim&iwoax(ha~bf'dd(vrlziydr.nvvugb|cd-*,_`b}+]gk`,M~tqko\7faei+tkw&gaje#gmr(ik+jcjgfmb.#*\gmj}n.mer`ah b*jymxf+mmw\7f!ihd#~~r(jijgl)
-CCM^8604;9:9=2
-CCM^8604;:;8=3
-CCM^8604;:;9=@kcolcr#',Nzyay
-CCM^8604;:;:=Voc!m~tqko\7fad`+~phed{u gch+fdz+mmjvmmre#yyhkn}xhwkjx&& Wbex(for.jfpd(defd,hi~}nj"e\7f!ih lziyi\7fay.Afhbmj lx,d|cky.gutnz( #Z`nixk+mmir`kr zeyy(xamzuftd(vrl|eomy.map'nddv.
-CCM^8604;::9=2
-CCM^8604;;;8=3
-CCM^8604;;;9=@kcolcr#',Nzyay
-CCM^8604;;;:=[hss(uyp~if(oan}"iiu(nauo,nfd{lf"fp`ajaafi+encd|{'rn(uu`iix{m{gb{'cy|ta`~,\7f`n.bzgju!nton*xcax.Xkna+Dprrbixbfl.qgr'`hdc.#*\gmj}n.ahhuiet#sc~z+}dhvpgsm&pqezbln|+hmu&imjp-
-CCM^8604;;:9=2
-CCM^8604;4;8=0
-CCM^8604;4;9=@kcolcr#',Nzyay
-CCM^8604;4;:=Voc!m~tqko\7fad`+~phed{u tk\7f+kj`hknkce(deee~n(jbg.ma&u`c j~if{+yn|g'cy|ta`~io&+.Raw'k`q&nfoh+|d.y{l'rim&e{~~jk\7fgd`"wtnkcsp*mlib`%
-CCM^8604;4:9=2
-CCM^8604;5;8=3
-CCM^8604;5;9=@kcolcr#',Nzyay
-CCM^8604;5;:=Voc!nolf*eelbmjzgc&cmjot*od}gj+`ms&cm&e{~~jk\7fko "'Ou(kaz*mgznoow"ec!ah vyi+jr.\7ffg'ux{ren*cy(gahegc&cq&amexcmy.j~rkobirild"+A\7f.|gnk&cm&shc|{mo 
-CCM^8604;5:9=4625
-CCM^86048<;8=3
-CCM^86048<;9=@kcolcr#',Nzyay
-CCM^86048<;:=Ci&dztoq*chk~|ykf'btzond*xcm+kszpfeuain#z~dkn}x "'Rim&aqidb~n.mgnb.r!&mbs,im+jjcc`ce&& Sfij{n.dlvfoo(g exix`+md~{'gol&tqs,jojge 
-CCM^86048<:9=2
-CCM^86048\13;8=3
-CCM^86048\13;9=@kcolcr#',Nzyay
-CCM^86048\13;:=Uoomm&e{~~jk\7fgei"nrdeu b*hj|j.n|pht!`gs#eoh}y|nj,'Riau Po`m%Nv\7f|cdrhfa yc|+nbbn.of\7f!jc gkajonj%."Wjdiue#en\7fib`+o"atd{n `e|r(j`o.vu\7f!iaajd"
-CCM^86048\13:9=4625
-CCM^86048>;8=3
-CCM^86048>;9=@kcolcr#',Nzyay
-CCM^86048>;:=Uoomm&e{~~jk\7fgei"nrdeu wbiym+yj}l r!mhovmd+zdaf.mi&u`c go\7f\7faeo\7fgmi&ezovf$,+Qd{+cc~&omcd#~c+zncdxg'unec ec`n{+lnhmuc!qiu#ime(nv\7f|cdr!ijl#ej+|ck+gvbkr&
-CCM^86048>:9=2
-CCM^86048?;8=0
-CCM^86048?;9=@kcolcr#',\iy`b`e
-CCM^86048?;:=Uoomm&e{~~jk\7fgei"nrdeu excf(\7ffn.Qbjg%Cxwxmh|b`l.xnv!nolf*\7fden.bzgju!\7fcrf*\7f`a{~nj,
-CCM^86048?:9=2
-CCM^860488;8=0
-CCM^860488;9=@kcolcr#',Bfmayccsonf
-CCM^860488;:=Ckj!areny,|myk+}wded{ufvf`r(nv\7f|cdrdl(
-CCM^860488:9=2
-CCM^860489;8=3
-CCM^860489;9=Kiouagljpi
-CCM^860489;:=Rucqitimm,mgy.Nvvugb|oom$,+Xgkj}g'Q`ar.
-CCM^860489:9=2
-CCM^86048:;8=3
-CCM^86048:;9=@kcolcr#',Nzyay
-CCM^86048:;:=Ci&dztoq*{j{+kemmrhumteg*{cagk+~pbv`zond*jdz+kszpfeuain-*,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^86048::9=2
-CCM^860484;8=3
-CCM^860484;9=@kcolcr#',H`daxk"Aimlcr#Fchi\7fgd`
-CCM^860484:9=2
-CCM^86048498=Fntdkroqcix
-CCM^86048499=Fuowmu
-CCM^860485;8=3
-CCM^860485;9=@kcolcr#',Xmgkhz"@tn}v ee~+[cayzarrr
-CCM^860485:9=2
-CCM^86048598=Girdz&oq*\7fndnm\7f.c'asgsp#dmfm+hd|"nhr|glocbl(xfd|vdsu{(
-CCM^86049<;8=3
-CCM^86049<;9=@kcolcr#',Nzyay
-CCM^86049<;:=Ci&dztoq*chk~|ykf'qiaje#kx\7fmf~\7fgl`&ug&imyxjdg.xfmurb}rs-
-CCM^86049<:9=2
-CCM^86049\13;8=3
-CCM^86049\13;9=@kcolcr#',Ymz{n}v
-CCM^86049\13;:=Mic!gt ne~n(mggkq'qdzc jd\7f\7figbnj"sn`|&rf{ybzn.rawu&rqutfg,\7fg+ln.pbuuittfn"
-CCM^86049\13:9=2
-CCM^86049\1398=Pbuuitt#,Bd\7f
-CCM^86049\1399=Pbuuitt#,@j|n|
-CCM^86049>;8=3
-CCM^86049>;9=@kcolcr#',Ymz{n}v
-CCM^86049>;:=Rkc`{c jd\7fnz\7f.]anrkd(Hunhiy(.j+glsi!|ne#xifg}oibg'bsape-
-CCM^86049>:9=67?7
-CCM^86049?;8=3
-CCM^86049?;9=@kcolcr#',Nzyay
-CCM^86049?;:=[hs!`gvf*ee{n|\7fkf'rim&wqebl(]ag{ob(!(Vlfk\7fn(hfnmi'rim&mfnej(j`o.vu\7f!iaajd"
-CCM^86049?:9=2
-CCM^860498;8=3
-CCM^860498;9=@kcolcr#',Nzyay
-CCM^860498;:=Voc!losh*ex(ea\7f.pbgeq&flx,jkhkx},'&Qdcapo,h`nm`.vh&lime#yyym+zcov'rim&mfnej(b}+ypnrd(cnbh`nl+oej"wtnxcros,bfxkyzgc&hfro#~dn(o|bxg)
-CCM^860498:9=2
-CCM^860::?31=Ahhgatm
-CCM^860::?28='t&iiu mex+jnke.qbrtx( Bxi+qd{+}wuc!qiu#}me|+zd.g\7fou7
-CCM^860::>31=Gutnz
-CCM^860::>28=Qbrtx&hby,bf\7fky`ck&dztoq$,[dnoxk"dio|gcw*ud}y.xadsq`zc sxc}aoky.dht!`cls$
-CCM^860::<;8=1
-CCM^8603:\13;9=^[udzpeqVdden}Wa`mZcdcngo~&kykjzmu+3&~x.}eeldyx g\7fc
-CCM^8603:\13;8=A\13ZEGEUNOr:Tm|j`i[JNKGLPt\13W\nc{Rqa~EN(zjz
-CCM^8603:4;8=2
-CCM^8603:9;8=2
-CCM^8603:9;9=2
-CCM^8603:9;:=2
-CCM^8603:\13;;=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\jd\7f\7figbn|^76/ahswk`gmy bmm<6
-CCM^860334;8=2
-CCM^860334;9=2
-CCM^860339;8=
-CCM^8603:8;;=2
-CCM^860::\13>\13=3
-CCM^860::<?;=3
-CCM^860::<9:=3
-CCM^860::<;;=2
-CCM^860::<9<=A\13ZEgeunob\7f{+oej"Tcu|ondyPmzj``RFbuj|ip_yddz\7fm~z,fby
-CCM^860::>38=3
-CCM^860::<;\13=>Nhr|gloLcgln|5RWioo{raof"npn
-CCM^860::<;?=3
-CCM^860::<;1=3
-CCM^860::<9\13=JLCXWELBY_N[T\DAV[(cdcng1$Ommo~bv.zICCY\I@J[XKXQPHIUTdlfdhmagk0&Fb``}jt*vD@MRQHBCTUD[YRLEXWjgkejdnjdTuhff`Wg{keRahklihd8"Hnnj{gz+{NJM__@FMX[N]T\MHR]jjemnjbdnROkdfsm|Ocld7#Lnhj{ns/}@MEZU@DKJBTCCDNHFC\Pej\7f\7fj|nROnesguoe~P\aejdyq[Etztem~Znzxgd`^Rhhfutbf`WJgkejgu\13EaupokuEifkwFIB_^DICBFSFIHFB@G[UnnrwbxiWEbmyaqh`uTQimnc|{WM~|pbhu^crpcceT^`b`qsgmdZBoobomy5^`kiuuijlP~~bflr
-CCM^860::<;0=>Nhr|gloLcgln|5R@kcolcr-otnt7Ge}vfjmNilgo~5THa{wpnai|(t{~p7Ae}\7fonk@ndbeq4PYmjjfk,s~ut:ImyxjdgHdbfbt?TNeoz"~zg505~;Oo{raofJddoky0^w\7fu`in1:"odg505~
-CCM^860::\13>;=3
-CCM^860::<?<=2
-CCM^860::\13?1=3
-CCM^860::<91=2
-CCM^860::\13>8=3502:455
-CCM^860::\13?\13=
-CCM^860::\13?>=
-CCM^860::\13?0=2
-CCM^860::\13>:=3
-CCM^860::\13\13?=1
-CCM^860::\13\130=3
-CCM^860::>3\13=2
-CCM^860::\13\13\13=>WtnotanLegmx0WLnbhemt
-CCM^860::\13\13>=@kcolcr-otn37Ge}vfjmNilgo~5TIbn`fbt/m~e8:7;3;505~Diqqtidbx%|sz02KiuuijlEe`omy0WMmw\7fsaahw$xs|0>0>97\13:3zRfkhfm%zsz9;Oo{raofJddoky0^Uc`lke-~t\7f3;5;52<\13:tNeoz"~zg57Gltr`djFlfhnz5RCknw(tzj;31<08050rr~righ23$hgd02B`qsgmd@ooniy6W~rzjhh38(dof7;3;5;59<z
-CCM^860::>3>=3
-CCM^860::>3?=2
-CCM^860::\13<8=3
-CCM^860::>?8=2
-CCM^860::\13<9=3
-CCM^860::>?9=2
-CCM^860::\13<:=3
-CCM^860::>?:=2
-CCM^860::\13<;=3
-CCM^860::>?;=2
-CCM^860::\13<<=3
-CCM^860::>?<=2
-CCM^860::\13<\13=2
-CCM^860::>?\13=2
-CCM^860::\13<>=3
-CCM^860::>?>=2
-CCM^860::\13\139=Lhr!i&Nvgnnz
-CCM^860::\13\13:=
-CCM^860::\13\13;=upq/jjemniy&eb
-CCM^860::\13\13<=
-CCM^860::\13>1=@kcolcr#Zyidb}ckp
-CCM^860::\13\138=0)43
-CCM^860::9>9=2
-CCM^860::9>:=3
-CCM^860::9><=3
-CCM^860::9>\13=3
-CCM^860::5<<=2
-CCM^860::9>?=
-CCM^860::<8;=2
-CCM^860::<8<=
-CCM^860::<8\13=>Nhr|gloLcgln|5RJbjq&sro
-CCM^860::<8>=
-CCM^860::831=2
-CCM^860::5\139=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ02$ee{\7fogbgu(cev
-CCM^860::5\13:=
-CCM^860::5\13;=2
-CCM^860::<9>=3
-CCM^860::<9?=3
-CCM^860::5\13<=2
-CCM^860::5\13\13=2
-CCM^860::5\13>=3
-CCM^860::5<\13=2
-CCM^860::5<>=2
-CCM^860::5<?=
-CCM^860::5<1=2
-CCM^860::5<0=2
-CCM^860::538=2
-CCM^860::52>=3
-CCM^860::52?=>Nhr|gloLcgln|5R@FEJ]V
-CCM^860::520=2
-CCM^860::\13>>=2
-CCM^860::\13>?=2
-CCM^8603:?;:=3
-CCM^8603:?;;=2
-CCM^8603:>;:=>FBUmkp\13
-CCM^8603:;;>=2
-CCM^860::9>;=JLCXWELBY_N[T\DAV[(cdcng1$Ommo~bv.\13cdcnglegm0]\7f|kia}@MEZUOGIX]N]]UIN\Zboobonbbn5*Ccgislw#7Idn`okp'@hdc;P~~bflrCEG^YBDGSPO_TZDA_R`kcol`iooPx`nbgRmwcoTeongmel0&Okdfsm|/;!6Ee{\7fogbDhjemt>_H`nfoky g\7fc#($%2(7X|ygei~OMDQYCOK_XMXQYAMSZcdcnglegmWJnhcrjuAeom1$Ommo~bv.\13#4Onp~mgdMagjgu8]Jjemniy&nvn,.6\13R|timmpCCNWTBMDGMWKA@BEEMW]dhvpgsmZMji~d{dh\7fRUnhegqs_Iyyzn`\7fXguuhgh\Vdee{\7fogb^Ejdfbeq1Hb{{bjwLfkd3Dlfdhnz0]\7f|kia}@MEZU@DKJBTCCDNHFC\Pej\7f\7fj|nROnesguoe~P\aejdyq[Etztem~Znzxgd`^Rhhfutbf`WJgkejgu\13Tfonp~mgdXzygl`\13\13Ahswk`gNdbokp9ZTfonp~mgd%ksk9Trsahg\7f
-CCM^860::\1328=Ubjbgke
-CCM^860::>:8=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ02${ndhafk,urg
-CCM^860::>\138=2
-CCM^860::521=[bu
-CCM^860:;<;8=Lh
-CCM^860::829=Rkc`{c qomo(\7ffn.dhjmgqimm,Gahke}g'Gfzcenob\7f&+.^}g'rim&s`xcgd+lj|"si!~oet*xcm+|n}v'ig(rhf*hdk~cn`v)
-CCM^860::9:9=Fh&xgs bionx\7f.jbn'rim&tfxax(dh+zjb&qzccfneeo+Bbmgiud(Ggqoifmez4."N`!qiu#iddgxk+@m+&rmrus*{bdg.hbmtc/(&Tl*ee{\7fogb"snd(vrlm~je'.raw'kt{r bionx\7f.\7ffkt&`otefgie|%
-CCM^860::\1329=Nnedfue#Kkymncn`v
-CCM^860::>:9=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ01$odxr|bijs(upr
-CCM^860::>\139=3
-CCM^860::\132:=Ceit|&Boobomy.H|gfrnz
-CCM^860::>::=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ00$~niocn v\7fr
-CCM^860::>\13:=2
-CCM^860::82;=Kiuuijlb~edf+Hdbfbt
-CCM^860::9:;=Wtc!|ne#lendo.iknhq!|i pzihamw+zjb&ggjdfx,|`n|n.{hs!\7fgnw*xcm+o{~nne`|oom*jbdn}+zm'dd(eoscio(\7fa%.Vh&rxccjlu+i+jbhdbtdfr ee`omy"+z{wc!i&nf},eifk'.mu&t{c wbi+Ti.I|mpudTd0#*n~|\7fae.vh&rmje`~,jf+ksgqsooo&flfhnz%.+^pbur(Zb#Dis|Wl;."si!kinwcb~m%\11
-CCM^860::\132;=Aoin{c Pox~x+Hdbfbt
-CCM^860::>:;=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ07$jddoky ps`
-CCM^860::>\13;=2
-CCM^860::82<=Uhtjahg
-CCM^860::9:<=Rkc`{c tke\7f(|fbbg'#r(os#yi\7f}{.d`"~itz&clg|~|n|%\11
-CCM^860::\132<=Qbrtx&Pqekymx}
-CCM^860::>:<=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ06$|ygl|n}q)tun
-CCM^860::>\13<=2
-CCM^860::82>=Qbrtx&wby,x}hmn}qasm
-CCM^860::9:>='t&viu p\7fohmx}m{nk\7f!{ctvz,df+wd{p'enevuwo~%(+^ykqt&]j&Fjdex`Wl;."si!m~iw*\7fn|~~%\11
-CCM^860::98>=Qsgs|&Boobomy.[{`kor`cr
-CCM^860::>3;=>Nhr|gloLcgln|5R`kcolcr-otn
-CCM^860::>3<=2
-CCM^860::>39=3
-CCM^860::\132>=Qbrtx&Clg|gm\7fk
-CCM^860::>:>=^[udzpeqVdden}Wjgqcmgv\qo`nixkWykibn\7fu\s\7fngWb`xzckjdzZ05$ode{bnzg)tun
-CCM^860::>\13>=2
-CCM^860::<:8=Wioo{raofiy
-CCM^860::<:9=Voc!}himyxjdg.{|m`t`e&wjf`+zncdxg'`hdcs#kbo(magjguu-(uhlxxh}\7f}'.cib!zcgjyxyq+kezpncr(`rlg,\7f`n.ogql(!(Grf*ud}+}~|g'\7fn}&wbdx+|d.~`kiuuijl<
-CCM^860::<::=Mic!g` `ea{gekezq'or(gcwczn&+.Nvks&u`c sxclzjc+lgaism&swk~\7faei+[lnhr|glo$
-CCM^860::<:;=Wioo{raof,x}hmn}qasmd\7f!
-CCM^860::<:<=Ci&dztoq*chk~|ykf'qiaje#~~raei+zm'soahswk`g(\7ffn.ruifzgm-*,^fb`xzckj!`gs#hinf+mj`abjdl(
-CCM^860::\13><=Qbrtx
-CCM^860::<9;=Lhr!i&Nvgnnzwrwr~{Dmmhdfx,[}ibb}jbt}:(21v
-CCM^860::<;:=Giamauh#',^fbznj"Tr`|cs
-CCM^860::<;9=3752
-CCM^860:;<;9=^[udzpeqVdden}Wa`mZcdcngo~&\7fb`oautZ+&,
\ No newline at end of file
diff --git a/release/windows/publ_installer/00.installer.ico b/release/windows/publ_installer/00.installer.ico
deleted file mode 100644 (file)
index 4daf11e..0000000
Binary files a/release/windows/publ_installer/00.installer.ico and /dev/null differ
diff --git a/release/windows/publ_installer/01.installer.bmp b/release/windows/publ_installer/01.installer.bmp
deleted file mode 100644 (file)
index d62832c..0000000
Binary files a/release/windows/publ_installer/01.installer.bmp and /dev/null differ
diff --git a/release/windows/publ_installer/01.welcome.rtf b/release/windows/publ_installer/01.welcome.rtf
deleted file mode 100644 (file)
index b7ff8c2..0000000
Binary files a/release/windows/publ_installer/01.welcome.rtf and /dev/null differ
diff --git a/release/windows/publ_installer/02.copyright.txt b/release/windows/publ_installer/02.copyright.txt
deleted file mode 100644 (file)
index 4e67c25..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-BLENDER CREATOR LICENSE AGREEMENT
-
-IMPORTANT: PLEASE READ CAREFULLY BEFORE USING THE BLENDER CREATOR SOFTWARE. 
-
-This License Agreement for the Blender Creator software ("License Agreement") is an agreement between NaN Technologies B.V., Meerenakkerplein 11, 5652 BJ Eindhoven, the Netherlands ("NaN") and you (either an individual or a legal entity) ("You") with respect to the software product which this License Agreement accompanies (the "Software"). 
-
-By installing, copying or otherwise using the Software, You agree to be bound by the terms of this License Agreement. If You do not agree to the terms of this License Agreement do not install or use the Software.
-
-
-1. Grant of License
-
-Subject to the provisions of this License Agreement, NaN grants You a limited, non-exclusive, personal, non-sublicenseable, non-transferable, revocable license to use the Software at any computer You own or use. 
-
-2. License Restrictions
-
-Except as expressly provided under this License Agreement, or without prior written consent from NaN, or without permission by law, You may not: (a) remove or alter any proprietary, copyright or trademark notices in or on the Software; (b) modify, decompile, disassemble or reverse-engineer the Software; (c) sublicense, rent, lease, lend, assign or otherwise transfer rights to the Software.
-
-3. Permitted copying and electronic distribution of Software
-
-You are hereby granted permission to copy and distribute the Software without written agreement from NaN, only for non-commercial purposes.  Distributing the Software within a restricted non-public environment, such as using a local network in a company or a local network of a university, is considered a 'non-commercial purpose'. This entire License Agreement must appear in and/or accompany all copies of the Software.
-Distributing the Software 'bundled' in with ANY product is considered to be a 'commercial purpose'. 
-
-4. Intellectual Property Rights and Ownership
-
-Title and ownership to all rights, including intellectual property rights, in and to the Software shall at all times solely and exclusively remain with NaN. The Software is protected by national and international (copyright) laws and treaties. All rights not expressly granted herein are reserved to NaN.
-
-5. Disclaimer of Warranties
-
-NaN provides you with the Software "as is" and with all faults. NaN explicitly disclaims all warranties and guarantees and does not make any representations with respect to the Software, whether express, implied, or statutory, including, but not limited to any (if any) warranties of or related to: fitness for a particular purpose, title, non-infringement, lack of viruses, accuracy or completeness of responses, results, lack of negligence or lack of workmanlike effort, and correspondence to description. The entire risk arising out of use or performance of the Software remains with You.
-
-6. Limitation of Liability
-
-In no event shall NaN or its employees, agents or suppliers be liable for any direct, indirect, consequential, incidental, special, punitive, or other damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, claims of third parties, damages as a result of injury to any person, or any other loss) arising out of or in connection with the license granted under this License Agreement or the use of or inability to use the Software, even if NaN has been advised of the possibility of such damages. 
-7. User warning and indemnification
-
-WARNING: use of the Software and use of any works that are (partially) created with the Software (the "Works") may cause physical or psychological reactions from You or from third parties, which may result in damages, injuries, losses and/or other negative consequences. You acknowledge that NaN can not be held liable for any such damages, injuries, losses and/or other negative consequences. You acknowledge that it is your obligation to investigate, prevent and/or minimize such reactions prior to having third parties use the Works.
-
-You shall indemnify and hold harmless NaN from and against all actions, claims, demands, proceedings, losses, damages, costs, charges and expenses, including but not limited to legal fees and expenses, arising out of or in connection with (i) the use of the Software by You and (ii) the use of any Works created with the Software by You or any third parties.
-
-8. Term and Termination
-
-This License Agreement and the license granted hereunder is effective until terminated. This License Agreement shall terminate automatically and forthwith if You fail to comply with the terms of this License Agreement. Upon termination, You shall cease the use of the Software, remove the Software from (the memory of) your computer and destroy all copies of the Software.
-
-9. Entire Agreement
-
-This License Agreement is the entire agreement between NaN and You in respect of the subject matter of the License Agreement. This License Agreement supersedes all prior written or oral agreements, proposals or understandings, and any other communications between NaN and You relating to the subject matter of this License Agreement.
-
-10. Enforceability
-
-If any provision of this License Agreement is held to be unenforceable by a court of competent jurisdiction for any reason, such provision shall be adapted or amended only to the extent necessary to make it enforceable, and the remainder of the License Agreement shall remain in effect.
-
-11. Governing law and disputes
-
-This License Agreement and all disputes arising from it will be governed by the laws of The Netherlands. All disputes arising in connection with this Agreement that cannot be settled amicably shall be brought before the competent court in Amsterdam, the Netherlands, to which jurisdiction NaN and You hereby irrevocably consent.
-
diff --git a/release/windows/publ_installer/03.readme.txt b/release/windows/publ_installer/03.readme.txt
deleted file mode 100644 (file)
index 9cfcc83..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-                    Blender V2.2
-
-  NaN Technologies B.V., the Netherlands
-
-     ----- GENERAL INFORMATION -----
-
-Blender Creator is a free and fully functional 3D modeling, rendering, animation and game creation package for Unix and Windows. Blender Creator is distributed without sources, it is exclusively developed and maintained by the Dutch company NaN Technologies B.V.
-
-This software is free to be applied for any purpose, excluding commercial distribution. For more about this, read the copyright notice included in the download file.
-
-The best resource for getting to know Blender Creator is of course 'The official Blender 2.0 guide'. This wonderfully designed 250 pages book contains tutorials, examples and a complete description of every aspect of the interface. 
-
-You can visit the shop page of the Blender site for more about this:
-
-    http://www.blender.nl/shop/
-
-More information about Blender can be found at:
-
-- The website
-
-    http://www.blender.nl
-
-- The beginners page
-
-    http://www.blender.nl/support/beginners.php
-
-- The Support Pages
-
-    http://www.blender.nl/support/
-
-- The frequently asked questions
-
-    http://www.blender.nl/support/faq/index.php
-
-- Tutorials
-
-  Good tutorials to start with are 'User Interface' and
-  'Navigating in 3D Space' and 'The Blender Windows'
-
-    http://www.blender.nl/search_item.php?part=tutorial
-
-- The Blender news-server: to post questions and contact other users
-
-    http://www.blender.nl/discussion/index.php
-
-
-Thank you for getting Blender Creator, I hope you will enjoy using it.
-
-Ton Roosendaal
-NaN Technologies B.V.
-
-http://www.blender.nl
-support@blender.nl
-
diff --git a/release/windows/publ_installer/04.folder.rtf b/release/windows/publ_installer/04.folder.rtf
deleted file mode 100644 (file)
index 2e9daee..0000000
Binary files a/release/windows/publ_installer/04.folder.rtf and /dev/null differ
diff --git a/release/windows/publ_installer/05.progress.rtf b/release/windows/publ_installer/05.progress.rtf
deleted file mode 100644 (file)
index af6b140..0000000
Binary files a/release/windows/publ_installer/05.progress.rtf and /dev/null differ
diff --git a/release/windows/publ_installer/06.complete.rtf b/release/windows/publ_installer/06.complete.rtf
deleted file mode 100644 (file)
index d901313..0000000
Binary files a/release/windows/publ_installer/06.complete.rtf and /dev/null differ
index 85486c3a81fe890e70eb98c60e3c636362a6ff7c..087369e0ad4809944826d8edb795ae6c3c529b22 100644 (file)
@@ -159,7 +159,6 @@ COMLIB += $(OCGDIR)/blender/makesdna/$(DEBUG_DIR)libdna.a
 COMLIB += $(NAN_GUARDEDALLOC)/lib/libguardedalloc.a
 COMLIB += $(NAN_MEMUTIL)/lib/libmemutil.a
 COMLIB += $(NAN_PNG)/lib/libpng.a
-COMLIB += $(OCGDIR)/blender/yafray/$(DEBUG_DIR)libyafrayexport.a
 
 ifeq ($(WITH_QUICKTIME), true)
     COMLIB += $(OCGDIR)/blender/blenderqt/$(DEBUG_DIR)libblenderqt.a
index 9ec9efa6a8db360cd5ae367b245896e2465d4a26..344d51db248b53450df8e93ab829c957670acb8d 100644 (file)
@@ -41,7 +41,3 @@ ENDIF(WITH_QUICKTIME)
 IF(WITH_PYTHON)
   SUBDIRS(python)
 ENDIF(WITH_PYTHON)
-
-IF(WITH_YAFRAY)
-  SUBDIRS(yafray)
-ENDIF(WITH_YAFRAY)
index b8809c87213ead47af83a59d75d52816f349b410..64eb1a2614b6a1f45c5e63a21a148c57a7be7a0a 100644 (file)
@@ -32,7 +32,7 @@ include nan_definitions.mk
 
 DIRS = windowmanager editors blenloader readblenfile
 DIRS += avi imbuf render radiosity blenlib blenkernel blenpluginapi
-DIRS += makesdna makesrna yafray
+DIRS += makesdna makesrna
 DIRS += python nodes gpu
 DIRS += blenfont
 
index f8b7fd358fefade163f5b17f4b3c74b7d54f2925..691fbf9b494c6c195d90d5ada1a91f47a397b4bb 100644 (file)
@@ -25,9 +25,6 @@ SConscript(['avi/SConscript',
 if env['WITH_BF_PYTHON']:
     SConscript(['python/SConscript'])
 
-if env['WITH_BF_YAFRAY']:
-    SConscript(['yafray/SConscript'])
-
 if env['WITH_BF_DDS']:
     SConscript (['imbuf/intern/dds/SConscript'])
 
index c37b200d38b1eeee283340a04bb035b81e88f50d..e91039e31f40d9911470059e9dcdf7998a674897 100644 (file)
@@ -124,7 +124,8 @@ typedef struct ModifierTypeInfo {
         */
        void (*deformVerts)(struct ModifierData *md, struct Object *ob,
                            struct DerivedMesh *derivedData,
-                           float (*vertexCos)[3], int numVerts);
+                           float (*vertexCos)[3], int numVerts,
+                           int useRenderParams, int isFinalCalc);
 
        /* Like deformVerts but called during editmode (for supporting modifiers)
         */
index fd92360f6c21fab47a29cd74a7dcfb85d4a339dd..25ca0b0f1b1d56cde140c1c3f7efc62befb6b5b0 100644 (file)
@@ -1403,7 +1403,7 @@ DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob, Modifier
                int numVerts;
                float (*deformedVerts)[3] = mesh_getVertexCos(me, &numVerts);
 
-               mti->deformVerts(md, ob, NULL, deformedVerts, numVerts);
+               mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, 0, 0);
                dm = getMeshDerivedMesh(me, ob, deformedVerts);
 
                MEM_freeN(deformedVerts);
@@ -1628,7 +1628,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
                                if(!deformedVerts)
                                        deformedVerts = mesh_getVertexCos(me, &numVerts);
 
-                               mti->deformVerts(md, ob, NULL, deformedVerts, numVerts);
+                               mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, useRenderParams, useDeform);
                        } else {
                                break;
                        }
@@ -1709,7 +1709,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
                                }
                        }
 
-                       mti->deformVerts(md, ob, dm, deformedVerts, numVerts);
+                       mti->deformVerts(md, ob, dm, deformedVerts, numVerts, useRenderParams, useDeform);
                } else {
                        DerivedMesh *ndm;
 
index 645f468d250f91af8df998bc52fec81ba5959664..8779ed5404b0fd58bff7ce29b30f01cf3d44fe78 100644 (file)
@@ -1256,7 +1256,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl
                                originalVerts = MEM_dupallocN(deformedVerts);
                        }
                        
-                       mti->deformVerts(md, ob, NULL, deformedVerts, numVerts);
+                       mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, forRender, editmode);
 
                        if (md==preTesselatePoint)
                                break;
@@ -1317,7 +1317,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba
                                fp+= offs;
                        }
                        
-                       mti->deformVerts(md, ob, NULL, (float(*)[3]) allverts, totvert);
+                       mti->deformVerts(md, ob, NULL, (float(*)[3]) allverts, totvert, forRender, editmode);
                        
                        fp= allverts;
                        for (dl=dispbase->first; dl; dl=dl->next) {
@@ -1329,7 +1329,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba
                }
                else {
                        for (dl=dispbase->first; dl; dl=dl->next) {
-                               mti->deformVerts(md, ob, NULL, (float(*)[3]) dl->verts, (dl->type==DL_INDEX3)?dl->nr:dl->parts*dl->nr);
+                               mti->deformVerts(md, ob, NULL, (float(*)[3]) dl->verts, (dl->type==DL_INDEX3)?dl->nr:dl->parts*dl->nr, forRender, editmode);
                        }
                }
        }
index 6e5f7c82aed0b68fa2cafa760877533a402573cd..5cf52d093147466df98793812958ff4cee993151 100644 (file)
@@ -924,7 +924,7 @@ void lattice_calc_modifiers(Scene *scene, Object *ob)
                if (mti->type!=eModifierTypeType_OnlyDeform) continue;
 
                if (!vertexCos) vertexCos = lattice_getVertexCos(ob, &numVerts);
-               mti->deformVerts(md, ob, NULL, vertexCos, numVerts);
+               mti->deformVerts(md, ob, NULL, vertexCos, numVerts, 0, 0);
        }
 
        /* always displist to make this work like derivedmesh */
index d02b660d99262c2361191838137e7d3aaa3171ee..5610db355e13fa70d8a7ffab38f378402dca36ef 100644 (file)
@@ -187,7 +187,7 @@ static void curveModifier_updateDepgraph(
 
 static void curveModifier_deformVerts(
                                      ModifierData *md, Object *ob, DerivedMesh *derivedData,
-         float (*vertexCos)[3], int numVerts)
+         float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        CurveModifierData *cmd = (CurveModifierData*) md;
 
@@ -203,7 +203,7 @@ static void curveModifier_deformVertsEM(
 
        if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
 
-       curveModifier_deformVerts(md, ob, dm, vertexCos, numVerts);
+       curveModifier_deformVerts(md, ob, dm, vertexCos, numVerts, 0, 0);
 
        if(!derivedData) dm->release(dm);
 }
@@ -276,7 +276,7 @@ static void modifier_vgroup_cache(ModifierData *md, float (*vertexCos)[3])
 
 static void latticeModifier_deformVerts(
                                        ModifierData *md, Object *ob, DerivedMesh *derivedData,
-     float (*vertexCos)[3], int numVerts)
+     float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        LatticeModifierData *lmd = (LatticeModifierData*) md;
 
@@ -295,7 +295,7 @@ static void latticeModifier_deformVertsEM(
 
        if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
 
-       latticeModifier_deformVerts(md, ob, dm, vertexCos, numVerts);
+       latticeModifier_deformVerts(md, ob, dm, vertexCos, numVerts, 0, 0);
 
        if(!derivedData) dm->release(dm);
 }
@@ -3686,7 +3686,7 @@ static void displaceModifier_do(
 
 static void displaceModifier_deformVerts(
                                         ModifierData *md, Object *ob, DerivedMesh *derivedData,
-      float (*vertexCos)[3], int numVerts)
+      float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm;
 
@@ -4371,7 +4371,7 @@ static void smoothModifier_do(
 
 static void smoothModifier_deformVerts(
                                       ModifierData *md, Object *ob, DerivedMesh *derivedData,
-          float (*vertexCos)[3], int numVerts)
+          float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm;
 
@@ -4951,7 +4951,7 @@ static void castModifier_cuboid_do(
 
 static void castModifier_deformVerts(
                                     ModifierData *md, Object *ob, DerivedMesh *derivedData,
-        float (*vertexCos)[3], int numVerts)
+        float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm = derivedData;
        CastModifierData *cmd = (CastModifierData *)md;
@@ -5354,7 +5354,7 @@ static void waveModifier_do(WaveModifierData *md,
 
 static void waveModifier_deformVerts(
                                     ModifierData *md, Object *ob, DerivedMesh *derivedData,
-        float (*vertexCos)[3], int numVerts)
+        float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm;
        WaveModifierData *wmd = (WaveModifierData *)md;
@@ -5459,7 +5459,7 @@ static void armatureModifier_updateDepgraph(
 
 static void armatureModifier_deformVerts(
                                         ModifierData *md, Object *ob, DerivedMesh *derivedData,
-      float (*vertexCos)[3], int numVerts)
+      float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        ArmatureModifierData *amd = (ArmatureModifierData*) md;
 
@@ -5580,7 +5580,7 @@ static void hookModifier_updateDepgraph(ModifierData *md, DagForest *forest, Sce
 
 static void hookModifier_deformVerts(
                                     ModifierData *md, Object *ob, DerivedMesh *derivedData,
-        float (*vertexCos)[3], int numVerts)
+        float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        HookModifierData *hmd = (HookModifierData*) md;
        float vec[3], mat[4][4];
@@ -5701,7 +5701,7 @@ static void hookModifier_deformVertsEM(
 
        if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
 
-       hookModifier_deformVerts(md, ob, derivedData, vertexCos, numVerts);
+       hookModifier_deformVerts(md, ob, derivedData, vertexCos, numVerts, 0, 0);
 
        if(!derivedData) dm->release(dm);
 }
@@ -5710,7 +5710,7 @@ static void hookModifier_deformVertsEM(
 
 static void softbodyModifier_deformVerts(
                                         ModifierData *md, Object *ob, DerivedMesh *derivedData,
-      float (*vertexCos)[3], int numVerts)
+      float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        sbObjectStep(md->scene, ob, (float)md->scene->r.cfra, vertexCos, numVerts);
 }
@@ -5898,7 +5898,7 @@ static int collisionModifier_dependsOnTime(ModifierData *md)
 
 static void collisionModifier_deformVerts(
                                          ModifierData *md, Object *ob, DerivedMesh *derivedData,
-       float (*vertexCos)[3], int numVerts)
+       float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        CollisionModifierData *collmd = (CollisionModifierData*) md;
        DerivedMesh *dm = NULL;
@@ -6060,7 +6060,7 @@ static int surfaceModifier_dependsOnTime(ModifierData *md)
 
 static void surfaceModifier_deformVerts(
                                          ModifierData *md, Object *ob, DerivedMesh *derivedData,
-       float (*vertexCos)[3], int numVerts)
+       float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        SurfaceModifierData *surmd = (SurfaceModifierData*) md;
        unsigned int numverts = 0, i = 0;
@@ -6268,7 +6268,7 @@ static int is_last_displist(Object *ob)
 /* saves the current emitter state for a particle system and calculates particles */
 static void particleSystemModifier_deformVerts(
                                               ModifierData *md, Object *ob, DerivedMesh *derivedData,
-           float (*vertexCos)[3], int numVerts)
+           float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm = derivedData;
        ParticleSystemModifierData *psmd= (ParticleSystemModifierData*) md;
@@ -7789,7 +7789,7 @@ static void meshdeformModifier_do(
 
 static void meshdeformModifier_deformVerts(
                                           ModifierData *md, Object *ob, DerivedMesh *derivedData,
-       float (*vertexCos)[3], int numVerts)
+       float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm;
 
@@ -7937,7 +7937,7 @@ static void shrinkwrapModifier_foreachObjectLink(ModifierData *md, Object *ob, O
        walk(userData, ob, &smd->auxTarget);
 }
 
-static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm = NULL;
        CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md);
@@ -8051,7 +8051,7 @@ static void simpledeformModifier_updateDepgraph(ModifierData *md, DagForest *for
                dag_add_relation(forest, dag_get_node(forest, smd->origin), obNode, DAG_RL_OB_DATA, "SimpleDeform Modifier");
 }
 
-static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
 {
        DerivedMesh *dm = NULL;
        CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md);
index 941e73982a5dbbc3cd4b02c56501cb6b4fb8ac80..43df11335febc07631ae6e4040b6545bc03ff9cd 100644 (file)
@@ -1055,6 +1055,14 @@ bNodeTree *ntreeAddTree(int type)
        ntree->type= type;
        ntree->alltypes.first = NULL;
        ntree->alltypes.last = NULL;
+
+       /* this helps RNA identify ID pointers as nodetree */
+    if(ntree->type==NTREE_SHADER)
+               BLI_strncpy(ntree->id.name, "NTShader Nodetree", sizeof(ntree->id.name));
+    else if(ntree->type==NTREE_COMPOSIT)
+               BLI_strncpy(ntree->id.name, "NTComposit Nodetree", sizeof(ntree->id.name));
+    else if(ntree->type==NTREE_TEXTURE)
+               BLI_strncpy(ntree->id.name, "NTTexture Nodetree", sizeof(ntree->id.name));
        
        ntreeInitTypes(ntree);
        return ntree;
index f8657125014c888a9263ed164d04c3232397bc8a..78a156559ff17e6229e4882360a322f18fde5259 100644 (file)
@@ -4190,6 +4190,7 @@ static void lib_link_screen(FileData *fd, Main *main)
                                                SpaceButs *sbuts= (SpaceButs *)sl;
                                                sbuts->lockpoin= NULL;
                                                sbuts->ri= NULL;
+                                               sbuts->pinid= newlibadr(fd, sc->id.lib, sbuts->pinid);
                                                if(main->versionfile<132)
                                                        butspace_version_132(sbuts);
                                        }
@@ -4391,6 +4392,7 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
                                else if(sl->spacetype==SPACE_BUTS) {
                                        SpaceButs *sbuts= (SpaceButs *)sl;
                                        sbuts->lockpoin= NULL;
+                                       sbuts->pinid = restore_pointer_by_name(newmain, sbuts->pinid, 0);
                                        //XXX if (sbuts->ri) sbuts->ri->curtile = 0;
                                }
                                else if(sl->spacetype==SPACE_FILE) {
@@ -4674,6 +4676,10 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
                                        direct_link_gpencil(fd, sseq->gpd);
                                }
                        }
+                       else if(sl->spacetype==SPACE_BUTS) {
+                               SpaceButs *sbuts= (SpaceButs *)sl;
+                               sbuts->path= NULL;
+                       }
                }
                
                sa->actionzones.first= sa->actionzones.last= NULL;
@@ -6744,26 +6750,26 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                        
                                                if(sbuts->mainb==BUTS_LAMP) {
                                                        sbuts->mainb= CONTEXT_SHADING;
-                                                       sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_LAMP;
+                                                       //sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_LAMP;
                                                }
                                                else if(sbuts->mainb==BUTS_MAT) {
                                                        sbuts->mainb= CONTEXT_SHADING;
-                                                       sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_MAT;
+                                                       //sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_MAT;
                                                }
                                                else if(sbuts->mainb==BUTS_TEX) {
                                                        sbuts->mainb= CONTEXT_SHADING;
-                                                       sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_TEX;
+                                                       //sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_TEX;
                                                }
                                                else if(sbuts->mainb==BUTS_ANIM) {
                                                        sbuts->mainb= CONTEXT_OBJECT;
                                                }
                                                else if(sbuts->mainb==BUTS_WORLD) {
                                                        sbuts->mainb= CONTEXT_SCENE;
-                                                       sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_WORLD;
+                                                       //sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_WORLD;
                                                }
                                                else if(sbuts->mainb==BUTS_RENDER) {
                                                        sbuts->mainb= CONTEXT_SCENE;
-                                                       sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_RENDER;
+                                                       //sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_RENDER;
                                                }
                                                else if(sbuts->mainb==BUTS_GAME) {
                                                        sbuts->mainb= CONTEXT_LOGIC;
@@ -6773,7 +6779,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                                }
                                                else if(sbuts->mainb==BUTS_RADIO) {
                                                        sbuts->mainb= CONTEXT_SHADING;
-                                                       sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_RAD;
+                                                       //sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_RAD;
                                                }
                                                else if(sbuts->mainb==BUTS_CONSTRAINT) {
                                                        sbuts->mainb= CONTEXT_OBJECT;
index 0a33fc9901349e1962c476f300fd2ee7a7da7b54..fcdf83e98ded5916330a76ed4b63559237896a95 100644 (file)
 /* DataToC output of file <B_blend> */
 
-int datatoc_B_blend_size= 98212;
+int datatoc_B_blend_size= 93184;
 char datatoc_B_blend[]= {
- 66, 76, 69, 78,
- 68, 69, 82, 95,118, 50, 52, 49, 82, 69, 78, 68, 32,  0,  0,  0,144,240,255,191,  0,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,
-250,  0,  0,  0, 83, 99,101,110,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8, 83, 82,  0,  0,
-116,  0,  0,  0,  8,237,195,  8,109,  0,  0,  0,  1,  0,  0,  0, 96, 40,196,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 83, 82, 49, 45, 65,110,105,109, 97,116,105,111,110,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-232,150,192,  8,168,240,195,  8,232,240,195,  8, 24,247,195,  8, 96,247,195,  8,152, 31,196,  8,136,251,196,  8,  0,  0,231,  3,
-143,  1,174,  4,232,  3, 32,  3,  1,  0,  1,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,232,150,192,  8,110,  0,  0,  0,  1,  0,  0,  0,168,237,195,  8,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,168,237,195,  8,110,  0,  0,  0,  1,  0,  0,  0,
-232,237,195,  8,232,150,192,  8,  0,  0,  0,  0,  0,  0, 32,  3,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,232,237,195,  8,
-110,  0,  0,  0,  1,  0,  0,  0, 40,238,195,  8,168,237,195,  8,  0,  0,  0,  0,232,  3, 32,  3,  0,  0,  0,  0, 68, 65, 84, 65,
- 20,  0,  0,  0, 40,238,195,  8,110,  0,  0,  0,  1,  0,  0,  0,104,238,195,  8,232,237,195,  8,  0,  0,  0,  0,232,  3,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,104,238,195,  8,110,  0,  0,  0,  1,  0,  0,  0,168,238,195,  8, 40,238,195,  8,
-  0,  0,  0,  0,232,  3,248,  0,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,168,238,195,  8,110,  0,  0,  0,  1,  0,  0,  0,
-232,238,195,  8,104,238,195,  8,  0,  0,  0,  0,  0,  0,  6,  3,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,232,238,195,  8,
-110,  0,  0,  0,  1,  0,  0,  0, 40,239,195,  8,168,238,195,  8,  0,  0,  0,  0,232,  3,  6,  3,  0,  0,  0,  0, 68, 65, 84, 65,
- 20,  0,  0,  0, 40,239,195,  8,110,  0,  0,  0,  1,  0,  0,  0,104,239,195,  8,232,238,195,  8,  0,  0,  0,  0,160,  2,248,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,104,239,195,  8,110,  0,  0,  0,  1,  0,  0,  0,168,239,195,  8, 40,239,195,  8,
-  0,  0,  0,  0,160,  2,  6,  3,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,168,239,195,  8,110,  0,  0,  0,  1,  0,  0,  0,
-232,239,195,  8,104,239,195,  8,  0,  0,  0,  0,  0,  0,188,  0,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,232,239,195,  8,
-110,  0,  0,  0,  1,  0,  0,  0, 40,240,195,  8,168,239,195,  8,  0,  0,  0,  0,232,  3,188,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 20,  0,  0,  0, 40,240,195,  8,110,  0,  0,  0,  1,  0,  0,  0,104,240,195,  8,232,239,195,  8,  0,  0,  0,  0,204,  0,248,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,104,240,195,  8,110,  0,  0,  0,  1,  0,  0,  0,168,240,195,  8, 40,240,195,  8,
-  0,  0,  0,  0,204,  0,  6,  3,  0,  0,  0,  0, 68, 65, 84, 65, 20,  0,  0,  0,168,240,195,  8,110,  0,  0,  0,  1,  0,  0,  0,
-  0,  0,  0,  0,104,240,195,  8,  0,  0,  0,  0,204,  0,188,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,232,240,195,  8,
-111,  0,  0,  0,  1,  0,  0,  0, 48,241,195,  8,  0,  0,  0,  0,168,237,195,  8,232,237,195,  8,  1,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65, 24,  0,  0,  0, 48,241,195,  8,111,  0,  0,  0,  1,  0,  0,  0,120,241,195,  8,232,240,195,  8,232,150,192,  8,
- 40,238,195,  8,  1,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,120,241,195,  8,111,  0,  0,  0,  1,  0,  0,  0,
-192,241,195,  8, 48,241,195,  8,168,237,195,  8,168,238,195,  8,  1,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,
-192,241,195,  8,111,  0,  0,  0,  1,  0,  0,  0,  8,242,195,  8,120,241,195,  8,232,237,195,  8,232,238,195,  8,  1,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,  8,242,195,  8,111,  0,  0,  0,  1,  0,  0,  0, 80,242,195,  8,192,241,195,  8,
-168,238,195,  8,232,238,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0, 80,242,195,  8,111,  0,  0,  0,
-  1,  0,  0,  0,152,242,195,  8,  8,242,195,  8,104,238,195,  8, 40,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 24,  0,  0,  0,152,242,195,  8,111,  0,  0,  0,  1,  0,  0,  0,224,242,195,  8, 80,242,195,  8,232,238,195,  8,104,239,195,  8,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,224,242,195,  8,111,  0,  0,  0,  1,  0,  0,  0, 40,243,195,  8,
-152,242,195,  8, 40,239,195,  8,104,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0, 40,243,195,  8,
-111,  0,  0,  0,  1,  0,  0,  0,112,243,195,  8,224,242,195,  8,104,238,195,  8,232,238,195,  8,  1,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65, 24,  0,  0,  0,112,243,195,  8,111,  0,  0,  0,  1,  0,  0,  0,184,243,195,  8, 40,243,195,  8,232,150,192,  8,
-168,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,184,243,195,  8,111,  0,  0,  0,  1,  0,  0,  0,
-  0,244,195,  8,112,243,195,  8,104,238,195,  8,232,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,
-  0,244,195,  8,111,  0,  0,  0,  1,  0,  0,  0, 72,244,195,  8,184,243,195,  8, 40,238,195,  8,232,239,195,  8,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0, 72,244,195,  8,111,  0,  0,  0,  1,  0,  0,  0,144,244,195,  8,  0,244,195,  8,
-168,239,195,  8,232,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,144,244,195,  8,111,  0,  0,  0,
-  1,  0,  0,  0,216,244,195,  8, 72,244,195,  8, 40,239,195,  8, 40,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 24,  0,  0,  0,216,244,195,  8,111,  0,  0,  0,  1,  0,  0,  0, 32,245,195,  8,144,244,195,  8,168,238,195,  8,104,240,195,  8,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0, 32,245,195,  8,111,  0,  0,  0,  1,  0,  0,  0,104,245,195,  8,
-216,244,195,  8,104,239,195,  8,104,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,104,245,195,  8,
-111,  0,  0,  0,  1,  0,  0,  0,176,245,195,  8, 32,245,195,  8, 40,240,195,  8,104,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65, 24,  0,  0,  0,176,245,195,  8,111,  0,  0,  0,  1,  0,  0,  0,248,245,195,  8,104,245,195,  8,168,239,195,  8,
-168,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,248,245,195,  8,111,  0,  0,  0,  1,  0,  0,  0,
- 64,246,195,  8,176,245,195,  8,232,239,195,  8,168,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,
- 64,246,195,  8,111,  0,  0,  0,  1,  0,  0,  0,136,246,195,  8,248,245,195,  8,104,238,195,  8, 40,240,195,  8,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,136,246,195,  8,111,  0,  0,  0,  1,  0,  0,  0,208,246,195,  8, 64,246,195,  8,
- 40,240,195,  8,168,240,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 24,  0,  0,  0,208,246,195,  8,111,  0,  0,  0,
-  1,  0,  0,  0, 24,247,195,  8,136,246,195,  8,168,238,195,  8,168,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 24,  0,  0,  0, 24,247,195,  8,111,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,208,246,195,  8,104,240,195,  8,168,240,195,  8,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0, 96,247,195,  8,113,  0,  0,  0,  1,  0,  0,  0,104,  5,196,  8,
-  0,  0,  0,  0,232,150,192,  8,168,239,195,  8,232,239,195,  8, 40,238,195,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,  3,  0,  0,
-  0,  0,  0,  0,187,  0,  0,  0,  0,  0,  0,  0,232,  3,  0,  0,161,  0,  0,  0,187,  0,  0,  0,  0,  0,  0,  0,232,  3,  0,  0,
-  0,  0,  0,  0,160,  0,  0,  0,  0,  0,  0,  0,  2,  0,  4,  4,233,  3,161,  0,  3,  0,  3,  0, 79,  1,  0,  0,  7,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,  2,196,  8,232,  3,196,  8,  0,  0,  0,  0,  0,  0,  0,  0,
- 88,248,195,  8, 24,  2,196,  8, 68, 65, 84, 65,164,  0,  0,  0, 88,248,195,  8,112,  0,  0,  0,  1,  0,  0,  0, 40,249,195,  8,
-  0,  0,  0,  0, 76,105,110,107, 32, 97,110,100, 32, 77, 97,116,101,114,105, 97,108,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 69,100,105,116,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65,164,  0,  0,  0, 40,249,195,  8,112,  0,  0,  0,  1,  0,  0,  0,248,249,195,  8, 88,248,195,  8, 77,101,115,104,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 69,100,105,116,
-105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  1,  0,  0,
- 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0,
-248,249,195,  8,112,  0,  0,  0,  1,  0,  0,  0,200,250,195,  8, 40,249,195,  8, 65,110,105,109, 32,115,101,116,116,105,110,103,
-115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0,200,250,195,  8,112,  0,  0,  0,
-  1,  0,  0,  0,152,251,195,  8,248,249,195,  8, 68,114, 97,119,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  1,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0,152,251,195,  8,112,  0,  0,  0,  1,  0,  0,  0,104,252,195,  8,
-200,250,195,  8, 67,111,110,115,116,114, 97,105,110,116,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,140,  2,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65,164,  0,  0,  0,104,252,195,  8,112,  0,  0,  0,  1,  0,  0,  0, 56,253,195,  8,152,251,195,  8, 69,102,102,101,
- 99,116,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 98,106,101,
- 99,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,210,  3,  0,  0,
-162,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0,
- 56,253,195,  8,112,  0,  0,  0,  1,  0,  0,  0,  8,254,195,  8,104,252,195,  8, 72,111,111,107,115,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  1,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,250,195,  8, 68, 65, 84, 65,164,  0,  0,  0,  8,254,195,  8,112,  0,  0,  0,
-  1,  0,  0,  0,216,254,195,  8, 56,253,195,  8, 80, 97,114,116,105, 99,108,101, 32, 73,110,116,101,114, 97, 99,116,105,111,110,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140,  2,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,152,251,195,  8, 68, 65, 84, 65,164,  0,  0,  0,216,254,195,  8,112,  0,  0,  0,  1,  0,  0,  0,168,255,195,  8,
-  8,254,195,  8, 83,111,102,116, 98,111,100,121,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 79, 98,106,101, 99,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,140,  2,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,251,195,  8,
- 68, 65, 84, 65,164,  0,  0,  0,168,255,195,  8,112,  0,  0,  0,  1,  0,  0,  0,120,  0,196,  8,216,254,195,  8, 79,117,116,112,
-117,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,
-101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0,
-120,  0,196,  8,112,  0,  0,  0,  1,  0,  0,  0, 72,  1,196,  8,168,255,195,  8, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  1,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0, 72,  1,196,  8,112,  0,  0,  0,
-  1,  0,  0,  0, 24,  2,196,  8,120,  0,196,  8, 65,110,105,109,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140,  2,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0, 24,  2,196,  8,112,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
- 72,  1,196,  8, 70,111,114,109, 97,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,210,  3,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65,212,  0,  0,  0,232,  2,196,  8, 94,  0,  0,  0,  1,  0,  0,  0,232,  3,196,  8,  0,  0,  0,  0,  4,  0,  0,  0,
- 51, 51, 51, 63,  1, 86,141, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,
-  0,  0,  0,193,  0, 64,212, 68,  0,  0,  0,193,  0,  0,104, 67,  0,  0,  0,193,145,133,185, 68,  0,  0,  0,193,  0,  0,104, 67,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 67,  0,  0, 40, 66,  0,  0,200, 68,  0,  0,225, 67,
-  0,  0,  0, 63,225,122,180, 63,  0,  0,  1,  0,  1,  0,  1,  0,233,  3,161,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  1,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,150,  1,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 84,  1,  0,  0,232,  3,196,  8, 96,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-232,  2,196,  8,  5,  0,  0,  0, 51, 51, 51, 63,  1, 86,141, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 47,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 57,  0,  2,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,255,255,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0,104,  5,196,  8,113,  0,  0,  0,
-  1,  0,  0,  0, 96,  6,196,  8, 96,247,195,  8,168,238,195,  8,168,237,195,  8,232,237,195,  8,232,238,195,  8,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,232,  3,  0,  0,  7,  3,  0,  0, 32,  3,  0,  0,  0,  0,  0,  0,232,  3,  0,  0,  7,  3,  0,  0, 33,  3,  0,  0,
-  0,  0,  0,  0,232,  3,  0,  0, 32,  3,  0,  0, 32,  3,  0,  0,  0,  0,  0,  0,  1,  0,  7,  7,233,  3,  1,  0,  3,  0,  3,  1,
-196,  2,  0,  0,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0, 96,  6,196,  8,113,  0,  0,  0,
-  1,  0,  0,  0, 88, 13,196,  8,104,  5,196,  8, 40,240,195,  8,104,240,195,  8,104,239,195,  8, 40,239,195,  8,  0,  0,  0,  0,
- 71,187,204, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,186,252,191, 61,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,128,  0,  0,  0,128,111, 18,  3,187,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-205,  0,  0,  0,159,  2,  0,  0,249,  0,  0,  0,  5,  3,  0,  0,205,  0,  0,  0,159,  2,  0,  0,249,  0,  0,  0, 19,  1,  0,  0,
-205,  0,  0,  0,159,  2,  0,  0, 20,  1,  0,  0,  5,  3,  0,  0,  0,  0,  0,  0,  1,  0,  1,  1,211,  1,242,  1,  1,  0,  3,  0,
-251,  2,  0,  0,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  8,196,  8,216, 11,196,  8,
-  0,  0,  0,  0,  0,  0,  0,  0, 88,  7,196,  8, 40,  8,196,  8, 68, 65, 84, 65,164,  0,  0,  0, 88,  7,196,  8,112,  0,  0,  0,
-  1,  0,  0,  0, 40,  8,196,  8,  0,  0,  0,  0, 84,114, 97,110,115,102,111,114,109, 32, 80,114,111,112,101,114,116,105,101,115,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,105,101,119, 51,100,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140,  0,210,  0, 62,  1,204,  0,  0,  0,  0,  0,162,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,164,  0,  0,  0, 40,  8,196,  8,112,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
- 88,  7,196,  8, 51, 68, 32, 86,105,101,119,112,111,114,116, 32,112,114,111,112,101,114,116,105,101,115,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 86,105,101,119, 51,100,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  8,  0,  8,  0, 62,  1,204,  0,  0,  0,  0,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65,180,  2,  0,  0,248,  8,196,  8, 89,  0,  0,  0,  1,  0,  0,  0,216, 11,196,  8,  0,  0,  0,  0,  1,  0,  0,  0,
- 51, 51, 51, 63,  1, 86,156, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63, 71,187,204, 61,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,186,252,191, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-111, 18,  3,187,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,178, 13, 32, 65,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,148,173, 42, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-255,255,249,195,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63, 71,187,204, 61,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,186,252,191, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,128,
-111, 18,  3,187,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,148,173, 42, 65,  0,  0,  7,  0, 40,  9,197,  8,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,
-  1,  0,  0,  0,  1,  0,  0,  0,  1,  0,  3,  0,  0,  0,  8, 24,  0,  0, 12, 66,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,
-205,204,204, 61,  0,  0,250, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 32,  0,  1,  0,  7,  0,175,  0,  0,  0,  0,  0,  1,  0,  0,  0,  3,  0,  0,  0,221,162, 77, 64,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,221,162, 77, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,221,162, 77, 64,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 84,  1,  0,  0,216, 11,196,  8, 96,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,
-248,  8,196,  8,  5,  0,  0,  0, 51, 51, 51, 63,  1, 86,156, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 47,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+
+ 66, 76, 69, 78, 68, 69, 82, 95, 86, 50, 53, 48, 82, 69, 78, 68,  0,  0,  0, 32,191,255,240,240,  0,  0,  0,  0,  0,  0,  0,  1,
+  0,  0,  0,  1,  0,  0,  0,250, 83, 99,101,110,101,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+ 71, 76, 79, 66,  0,  0,  0, 32,191,255,240,232,  0,  0,  0,181,  0,  0,  0,  1, 32, 32, 32, 48,  0,  0,  0,  0,  0,250,  0,  0,
+  0,  1,  1,  0,  0,232,214, 96,  1,  7,176, 32,  0,  0, 16,  0,  0,  4, 32,128,  0,  0, 87, 77,  0,  0,  0,124,  0,232,212,240,
+  0,  0,  1, 68,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 87, 77, 87,105,110, 77, 97,110,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,213,160,
+  0,232,213,160,  0,232,213,160,  0,232,213,160,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,238,152, 96,
+  5,210, 11, 64, 68, 65, 84, 65,  0,  0,  0,144,  0,232,213,160,  0,  0,  1, 69,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,237,219, 32,  0,  0,  0,  1,  0,  0,  0,  0,  0,232,214, 96,115, 99,114,101,101,110,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0, 14,  7,108,  4,108,  0,  0,  0,  0,  0,  1,  3,238,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,238,151,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,227,142,160,
+  0,  0,  0,  0,  0,  0,  0,  0,  6,147, 67,240,  6,160,144,208,  0,238,152,224,  0,238,153,208,  5,209,239,128,  5,210, 15,128,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 78,  0,  0,  0,136,  0,232,214, 96,  0,  0,  0,173,  0,  0,  0,  1,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 83, 82, 83, 99,114,101,101,110,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,215, 16,  0,232,218, 80,  0,232,218,144,  0,232,222,208,
+  0,232,223, 16,  0,233, 19,208,  0,  0,  0,  0,  0,  0,  0,  0,  1,  7,176, 32,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  1,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 22,  8,216,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,215, 16,  0,  0,  0,174,  0,  0,  0,  1,  0,232,215, 80,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,215, 80,  0,  0,  0,174,  0,  0,  0,  1,
+  0,232,215,144,  0,232,215, 16,  0,  0,  0,  0,  0,  0,  4,108,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,215,144,
+  0,  0,  0,174,  0,  0,  0,  1,  0,232,215,208,  0,232,215, 80,  0,  0,  0,  0,  7,108,  4,108,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20,  0,232,215,208,  0,  0,  0,174,  0,  0,  0,  1,  0,232,216, 16,  0,232,215,144,  0,  0,  0,  0,  7,108,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,216, 16,  0,  0,  0,174,  0,  0,  0,  1,  0,232,216, 80,  0,232,215,208,
+  0,  0,  0,  0,  0,  0,  4, 81,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,216, 80,  0,  0,  0,174,  0,  0,  0,  1,
+  0,232,216,144,  0,232,216, 16,  0,  0,  0,  0,  7,108,  4, 81,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,216,144,
+  0,  0,  0,174,  0,  0,  0,  1,  0,232,216,208,  0,232,216, 80,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 20,  0,232,216,208,  0,  0,  0,174,  0,  0,  0,  1,  0,232,217, 16,  0,232,216,144,  0,  0,  0,  0,  7,108,  0, 64,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,217, 16,  0,  0,  0,174,  0,  0,  0,  1,  0,232,217, 80,  0,232,216,208,
+  0,  0,  0,  0,  5,224,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,217, 80,  0,  0,  0,174,  0,  0,  0,  1,
+  0,232,217,144,  0,232,217, 16,  0,  0,  0,  0,  5,224,  4, 81,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,217,144,
+  0,  0,  0,174,  0,  0,  0,  1,  0,232,217,208,  0,232,217, 80,  0,  0,  0,  0,  0,  0,  0, 76,  0,  0,  0,  1, 68, 65, 84, 65,
+  0,  0,  0, 20,  0,232,217,208,  0,  0,  0,174,  0,  0,  0,  1,  0,232,218, 16,  0,232,217,144,  0,  0,  0,  0,  5,224,  0, 76,
+  0,  0,  0,  1, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,218, 16,  0,  0,  0,174,  0,  0,  0,  1,  0,232,218, 80,  0,232,217,208,
+  0,  0,  0,  0,  5,224,  3, 76,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 20,  0,232,218, 80,  0,  0,  0,174,  0,  0,  0,  1,
+  0,  0,  0,  0,  0,232,218, 16,  0,  0,  0,  0,  7,108,  3, 76,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,218,144,
+  0,  0,  0,175,  0,  0,  0,  1,  0,232,218,208,  0,  0,  0,  0,  0,232,215, 80,  0,232,215,144,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24,  0,232,218,208,  0,  0,  0,175,  0,  0,  0,  1,  0,232,219, 16,  0,232,218,144,  0,232,215, 80,
+  0,232,216, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,219, 16,  0,  0,  0,175,  0,  0,  0,  1,
+  0,232,219, 80,  0,232,218,208,  0,232,215,144,  0,232,216, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,
+  0,232,219, 80,  0,  0,  0,175,  0,  0,  0,  1,  0,232,219,144,  0,232,219, 16,  0,232,216, 16,  0,232,216, 80,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,219,144,  0,  0,  0,175,  0,  0,  0,  1,  0,232,219,208,  0,232,219, 80,
+  0,232,215, 16,  0,232,217, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,219,208,  0,  0,  0,175,
+  0,  0,  0,  1,  0,232,220, 16,  0,232,219,144,  0,232,215,208,  0,232,217, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24,  0,232,220, 16,  0,  0,  0,175,  0,  0,  0,  1,  0,232,220, 80,  0,232,219,208,  0,232,216, 16,  0,232,217, 80,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,220, 80,  0,  0,  0,175,  0,  0,  0,  1,  0,232,220,144,
+  0,232,220, 16,  0,232,216, 80,  0,232,217, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,220,144,
+  0,  0,  0,175,  0,  0,  0,  1,  0,232,220,208,  0,232,220, 80,  0,232,215, 16,  0,232,217,144,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24,  0,232,220,208,  0,  0,  0,175,  0,  0,  0,  1,  0,232,221, 16,  0,232,220,144,  0,232,216, 16,
+  0,232,217,144,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,221, 16,  0,  0,  0,175,  0,  0,  0,  1,
+  0,232,221, 80,  0,232,220,208,  0,232,217, 80,  0,232,217,208,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,
+  0,232,221, 80,  0,  0,  0,175,  0,  0,  0,  1,  0,232,221,144,  0,232,221, 16,  0,232,217, 16,  0,232,217,208,  0,  0,  0,  0,
+  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,221,144,  0,  0,  0,175,  0,  0,  0,  1,  0,232,221,208,  0,232,221, 80,
+  0,232,217,144,  0,232,217,208,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,221,208,  0,  0,  0,175,
+  0,  0,  0,  1,  0,232,222, 16,  0,232,221,144,  0,232,217, 16,  0,232,218, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
+  0,  0,  0, 24,  0,232,222, 16,  0,  0,  0,175,  0,  0,  0,  1,  0,232,222, 80,  0,232,221,208,  0,232,217, 80,  0,232,218, 16,
+  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,222, 80,  0,  0,  0,175,  0,  0,  0,  1,  0,232,222,144,
+  0,232,222, 16,  0,232,216, 80,  0,232,218, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0, 24,  0,232,222,144,
+  0,  0,  0,175,  0,  0,  0,  1,  0,232,222,208,  0,232,222, 80,  0,232,215,208,  0,232,218, 80,  0,  0,  0,  0,  0,  0,  0,  0,
+ 68, 65, 84, 65,  0,  0,  0, 24,  0,232,222,208,  0,  0,  0,175,  0,  0,  0,  1,  0,  0,  0,  0,  0,232,222,144,  0,232,218, 16,
+  0,232,218, 80,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,112,  0,232,223, 16,  0,  0,  0,179,  0,  0,  0,  1,
+  0,232,225,240,  0,  0,  0,  0,  0,232,216, 16,  0,232,215, 80,  0,232,215,144,  0,232,216, 80,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  7,108,  0,  0,  4, 82,  0,  0,  4,108,  7,  7,  7,109,  0, 27,  0,  1,  0,  0,  0,  0,  0,  7,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,229, 69,160,  0,233, 31,144,  0,233, 31,144,  0,232,223,176,  0,232,224,208,
+  0,  0,  0,  0,  0,  0,  0,  0,  5,216,137,  0,  5,209,241, 64, 68, 65, 84, 65,  0,  0,  0,236,  0,232,223,176,  0,  0,  0,180,
+  0,  0,  0,  1,  0,232,224,208,  0,  0,  0,  0,  0,  0,  0,  0, 68, 68,192,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,
+ 68,237,160,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,108,  0,  0,  0,  0,  0,  0,  0, 25, 68,237,128,  0,
+ 65,200,  0,  0, 68,237,128,  0, 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,  0,  4,  4, 12,
+  0, 10,  7,109,  0, 26,  7,109,  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,108,  0,  0,  4, 82,
+  0,  0,  4,107,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,109,  0, 26,  0,  2,  0,  1,  0,  2,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,229, 70,192,  6,144,192,176,  6,144,192,176,  0,  0,  0,  0,  0,  0,  0,  0,
+  5,209,243, 64,  5,209,243,176,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,236,  0,232,224,208,  0,  0,  0,180,
+  0,  0,  0,  1,  0,  0,  0,  0,  0,232,223,176,  0,  0,  0,  0, 68,158, 64,  0,  0,  0,  0,  0, 65, 16,  0,  0,  0,  0,  0,  0,
+ 69, 21,180, 43, 63,184, 81,222, 65, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,108,  0,  0,  0,  0,  0,  0,  0,  5,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60, 35,215, 10, 68,122,  0,  0,  0,  0,  0,  0,  0,  1,  0,  3,  0,  0,  4,  0,
+  0, 10,  7,109,  0,  6,  7,109,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,108,
+  0,  0,  4,108,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  2,
+  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,229, 70, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,112,  0,232,225,240,  0,  0,  0,179,
+  0,  0,  0,  1,  0,233,  2,  0,  0,232,223, 16,  0,232,217, 16,  0,232,218, 16,  0,232,218, 80,  0,232,215,208,  0,  0,  0,  0,
+  0,  0,  5,225,  0,  0,  7,108,  0,  0,  0,  0,  0,  0,  3, 75,  4,  4,  1,140,  3, 76,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,229, 67, 96,  0,232,253,144,  0,233,  0,224,  0,232,226,144,
+  0,232,227,176,  0,  0,  0,  0,  0,  0,  0,  0,  5,209,244, 32,  5,209,244,224, 68, 65, 84, 65,  0,  0,  0,236,  0,232,226,144,
+  0,  0,  0,180,  0,  0,  0,  1,  0,232,227,176,  0,  0,  0,  0,  0,  0,  0,  0, 67,240,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,
+  0,  0,  0,  0, 67,198,  0,  0,  0,  0,  0,  0, 65,208,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,139,  0,  0,  0,  0,  0,  0,  0, 25,
+ 67,137,128,  0, 65,200,  0,  0, 67,137,128,  0, 65,200,  0,  0, 63,128,  0,  0, 63,128,  0,  0,  0,  0,  0,  0,  0,  2,  3,  3,
+  0,  4,  4, 12,  0, 10,  1,140,  0, 26,  1,140,  0, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,225,  0,  0,  7,108,
+  0,  0,  0,  0,  0,  0,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,140,  0, 26,  0,  3,  0,  1,
+  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,229, 68,128,  6,157, 67,144,  6,157, 67,144,  0,  0,  0,  0,
+  0,  0,  0,  0,  5,209,246,144,  5,209,247,112,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,236,  0,232,227,176,
+  0,  0,  0,180,  0,  0,  0,  1,  0,  0,  0,  0,  0,232,226,144,  0,  0,  0,  0, 67,163,128,  0,196,133,192,  0,  0,  0,  0,  0,
+  0,  0,  0,  0, 67,163,134,146,196, 41,151, 74,192, 50,112,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,139,  0,  0,  0,  0,  0,  0,  3, 49,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  3,
+  0,  2,  4,  0,  0,  6,  1,140,  3, 50,  1,140,  3, 50,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,225,  0,  0,  7,108,
+  0,  0,  0, 26,  0,  0,  3, 75,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,140,  3, 50,  0,  4,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,229, 67,240,  6,160,103, 16,  6,160,111,112,  0,232,228,208,
+  0,232,252,112,  5,209,249, 48,  5,209,251,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,240,  0,232,228,208,
+  0,  0,  0,176,  0,  0,  0,  1,  0,232,229,240,  0,  0,  0,  0,  5,213,216,128,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,101,110,100,101,114,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255, 56,  1, 71,  0,176,
+  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,  0,  0,  0,240,
+  0,232,229,240,  0,  0,  0,176,  0,  0,  0,  1,  0,232,231, 16,  0,232,228,208,  5,213,218, 16,  0,  0,  0,  0, 68,105,109,101,
+110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68,105,109,101,
+110,115,105,111,110,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 57,  0,  1,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,255,255,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0, 88, 13,196,  8,113,  0,  0,  0,
-  1,  0,  0,  0,240, 24,196,  8, 96,  6,196,  8, 40,239,195,  8,104,239,195,  8,232,238,195,  8,104,238,195,  8,  0,  0,  0,  0,
-  1,184,157, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,140, 63,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 80,  1,128,191,  0,  0,128,191,  0,  0,  0,  0,  0,  0,  0,  0,225,215,163,188,  0,  0,  0,  0,
-161,  2,  0,  0,232,  3,  0,  0,249,  0,  0,  0,  5,  3,  0,  0,161,  2,  0,  0,232,  3,  0,  0,249,  0,  0,  0, 19,  1,  0,  0,
-161,  2,  0,  0,232,  3,  0,  0, 20,  1,  0,  0,  5,  3,  0,  0,  0,  0,  0,  0,  1,  0,  2,  2, 72,  1,242,  1,  3,  0,  3,  0,
-203,  1,  0,  0,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 15,196,  8,112, 23,196,  8,
-  0,  0,  0,  0,  0,  0,  0,  0, 80, 14,196,  8, 80, 14,196,  8, 68, 65, 84, 65,164,  0,  0,  0, 80, 14,196,  8,112,  0,  0,  0,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 84,114, 97,110,115,102,111,114,109, 32, 80,114,111,112,101,114,116,105,101,115,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 73,112,111,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 33,  0,167,  0, 62,  1,204,  0,  0,  0,  0,  0,162,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65, 40,  1,  0,  0, 32, 15,196,  8, 93,  0,  0,  0,  1,  0,  0,  0,120, 16,196,  8,
-  0,  0,  0,  0,  2,  0,  0,  0, 51, 51, 51, 63,  1, 86,160, 92,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,122, 67,205,204,204,189,205,204,140, 63,  0,  0,  0,  0,  0,  0,122, 67,
-  0,  0,160,192,  0,  0,160, 64,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,242,  1,  0,  0, 16,  0,  0,  0,  7,  1,  0,  0,
-  0,  0,  0,  0, 16,  0,  0,  0, 16,  0,  0,  0,  7,  1,  0,  0, 16,  0,  0,  0,242,  1,  0,  0, 10,215, 35, 60, 10,215, 35, 60,
-  0, 96,106, 70,  0,  0,122, 68,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72, 12,197,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79, 66,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,122, 67,205,204,204,189,
-205,204,140, 63, 68, 65, 84, 65,196,  0,  0,  0,120, 16,196,  8, 97,  0,  0,  0,  1,  0,  0,  0,104, 17,196,  8, 32, 15,196,  8,
-  3,  0,  0,  0, 51, 51, 51, 63,  1, 86,160, 92,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,182, 67,  0,  0,209,195,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,182, 67,  0,  0,190,195,  0,  0,  0,181,  0,  0,  0,  0,
- 16,  0,  0,  0,  0,  0,  0,  0,124,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,
-124,  1,  0,  0,  0,  0,  0,  0,124,  1,  0,  0,  0,  0,190,195,  0,  0,190,195,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-  0,  0,128, 63,  1,  0,  1,  0,  1,  0,  1,  0,108,  1,124,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,142,  3,
-  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
-160,  0,  0,  0,104, 17,196,  8,166,  0,  0,  0,  1,  0,  0,  0, 56, 18,196,  8,120, 16,196,  8, 11,  0,  0,  0, 51, 51, 51, 63,
-  1, 86,160, 92,  0,  0,128,192,  0,  0,122, 67,  0,  0,128,192,  0,  0,127, 67,  0,  0,128,192,  0,  0, 72, 66,  0,  0,128,192,
-  0,  0,127, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  1,  0,  0,  0,  0,  0,  0,
- 16,  0,  0,  0,  0,  0,  0,  0,124,  1,  0,  0, 16,  0,  0,  0,124,  1,  0,  0,  0,  0,128, 63,  0,128,129, 67,  0,  0,250, 70,
-  0,128,129, 67,205,204,204, 61,  0,  0, 32, 65,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,120,  0,  0,  0, 56, 18,196,  8,100,  0,  0,  0,
-  1,  0,  0,  0,224, 18,196,  8,104, 17,196,  8,  9,  0,  0,  0, 51, 51, 51, 63,  1, 86,160, 92,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,240,  3,197,  8,  0,  0,  0,  0, 31,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 12,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,205,204,204, 61,  5,  0,  0,  0,
- 17,  0,  0,  0,114,  1,  0,  0,116,  1,  0,  0,  5,  0,  0,  0, 17,  0,  0,  0,  2,  0,  0,  0,116,  1,  0,  0, 68, 65, 84, 65,
-164,  0,  0,  0,224, 18,196,  8, 99,  0,  0,  0,  1,  0,  0,  0,176, 19,196,  8, 56, 18,196,  8, 13,  0,  0,  0, 51, 51, 51, 63,
-  1, 86,160, 92,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,
-  0,  0,122, 68,  0,  0,  0,  0,  0,  0,122, 68,  0,  0,160,192,  0,  0,130, 66,  0,  0,  0,  0,  0,  0,182, 67,108,  1,  0,  0,
-124,  1,  0,  0,  0,  0,  0,  0,124,  1,  0,  0,196,  0,  0,  0,108,  1,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,196,  0,  0,  0,
-108,  1,  0,  0, 16,  0,  0,  0,124,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,122, 68,  0,  0,122, 68,205,204,204, 61,
-  0,  0, 72, 66, 10,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,176,  0,  0,  0,176, 19,196,  8,
-177,  0,  0,  0,  1,  0,  0,  0,144, 20,196,  8,224, 18,196,  8, 12,  0,  0,  0, 51, 51, 51, 63,  1, 86,160, 92,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,191,  0,  0,  2, 66,  0,  0,128,193,  0,  0,247, 67,  0,  0,  0,191,
-  0,  0,  2, 66,  0,  0,128,193,  0,  0,247, 67,108,  1,  0,  0,124,  1,  0,  0,  0,  0,  0,  0, 14,  2,  0,  0,128,  0,  0,  0,
-108,  1,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,128,  0,  0,  0,108,  1,  0,  0, 16,  0,  0,  0, 14,  2,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,250, 70,  0,  0,122, 68, 10,215, 35, 60,  0,  0, 72, 66, 10,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,180,  2,  0,  0,
-144, 20,196,  8, 89,  0,  0,  0,  1,  0,  0,  0,112, 23,196,  8,176, 19,196,  8,  1,  0,  0,  0, 51, 51, 51, 63,  1, 86,160, 92,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,193,  0,  0,128, 63,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 65,  0,  0,128, 63,  1,184,157, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,140, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,  1,128,191,  0,  0,128,191,
-  0,  0,  0,  0,  0,  0,  0,  0,184,175, 31, 65,  0,  0, 32, 65, 33,195, 79, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,161, 14,106, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,254,249,195,125,254, 71,194,
-  0,  0,  0,  0,  0,  0,  0,  0,173,128,249, 67,138,  0, 72, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0, 32, 65,  1,  0,  7,  0, 40,  9,197,  8,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  1,  0,  0,  0,  1,  0,  0,  0,
-  1,  0,  3,  0,  0,  0,  0, 24,  0,  0, 12, 66,  0,  0,128, 63,  0,  0,  0,  0,  0,  0,  0,  0, 10,215, 35, 60,  0,  0,250, 67,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  7,  0,  0,  0,
-  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65, 84,  1,  0,  0,112, 23,196,  8, 96,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,144, 20,196,  8,  5,  0,  0,  0,
- 51, 51, 51, 63,  1, 86,160, 92,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 47,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 57,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,
-  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0,240, 24,196,  8,113,  0,  0,  0,  1,  0,  0,  0,152, 31,196,  8,
- 88, 13,196,  8,168,240,195,  8, 40,240,195,  8,104,238,195,  8,232,239,195,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,205,  0,  0,  0,232,  3,  0,  0,
-189,  0,  0,  0,247,  0,  0,  0,205,  0,  0,  0,232,  3,  0,  0,189,  0,  0,  0,215,  0,  0,  0,205,  0,  0,  0,232,  3,  0,  0,
-216,  0,  0,  0,247,  0,  0,  0,  0,  0,  0,  0,  1,  0, 15, 15, 28,  3, 32,  0,  3,  0,  3,  0,192,  2,  0,  0,  7,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136, 27,196,  8, 24, 30,196,  8,  0,  0,  0,  0,  0,  0,  0,  0,
-232, 25,196,  8,184, 26,196,  8, 68, 65, 84, 65,164,  0,  0,  0,232, 25,196,  8,112,  0,  0,  0,  1,  0,  0,  0,184, 26,196,  8,
-  0,  0,  0,  0, 76,105,110,107, 32, 97,110,100, 32, 77, 97,116,101,114,105, 97,108,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 69,100,105,116,105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0, 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
- 68, 65, 84, 65,164,  0,  0,  0,184, 26,196,  8,112,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,232, 25,196,  8, 77,101,115,104,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 69,100,105,116,
-105,110,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  1,  0,  0,
- 62,  1,204,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,148,  0,  0,  0,
-136, 27,196,  8,102,  0,  0,  0,  1,  0,  0,  0, 72, 28,196,  8,  0,  0,  0,  0, 15,  0,  0,  0, 51, 51, 51, 63,  1, 86,170, 76,
-  0,  0,128,192,  0,  0,122, 67,  0,  0,  0,  0,  0,  0, 16, 66,123, 10,  4,194,181,186,152, 67,  0,  0,  0,  0,  0,  0, 16, 66,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0, 28,  3,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,128, 63,  0,  0, 16, 66,  0,  0,250, 70,  0,  0, 16, 66,
-205,204,204, 61,  0,  0, 32, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,
- 68, 65, 84, 65,160,  0,  0,  0, 72, 28,196,  8,166,  0,  0,  0,  1,  0,  0,  0, 24, 29,196,  8,136, 27,196,  8, 11,  0,  0,  0,
- 51, 51, 51, 63,  1, 86,170, 76,  0,  0,128,192,  0,  0,122, 67,  0,  0,128,192,  0,  0,127, 67,  0,  0,128,192,  0,  0, 72, 66,
-  0,  0,128,192,  0,  0,127, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,233,  3,  0,  0,
-  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,233,  3,  0,  0, 16,  0,  0,  0, 36,  0,  0,  0,  0,  0,128, 63,  0,128,129, 67,
-  0,  0,250, 70,  0,128,129, 67,205,204,204, 61,  0,  0, 32, 65,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,212,  0,  0,  0, 24, 29,196,  8,
- 94,  0,  0,  0,  1,  0,  0,  0, 24, 30,196,  8, 72, 28,196,  8,  4,  0,  0,  0, 51, 51, 51, 63,  1, 86,170, 76,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,193,  0,  0, 35, 68,  0,  0,  0,193,
-  0,  0,104, 67,135, 22,  0,193,178, 16, 96, 68,112, 74,103, 67,  0,  0,104, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,128, 67,  0,  0, 40, 66,  0,  0,200, 68,  0,  0,225, 67,  0,  0,  0, 63,225,122,180, 63,  0,  0,  1,  0,
-  1,  0,  1,  0,251,  4,  1,  0,  0,  0,  0,  0,  4,  0,  1,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,150,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 65, 84, 65,
- 84,  1,  0,  0, 24, 30,196,  8, 96,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 24, 29,196,  8,  5,  0,  0,  0, 51, 51, 51, 63,
-  1, 86,170, 76,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 47,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 57,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,  0,  0,  0,  0,
-  0,  0,  0,  0, 68, 65, 84, 65,204,  0,  0,  0,152, 31,196,  8,113,  0,  0,  0,  1,  0,  0,  0,  0, &nbs