text:
# Autogenerated wrapper script for VTKMinimal_jll for armv7l-linux-gnueabihf-cxx11
export libvtkIOLegacy, libvtkFiltersProgrammable, libvtkImagingCore, libvtkFiltersGeometry, libvtkFiltersCore, libvtkFiltersSelection, libvtkCommonExecutionModel, libvtkFiltersGeneric, libvtkCommonMisc, libvtkIOOggTheora, libvtksys, libvtktheora, libvtkFiltersPoints, libvtkInteractionWidgets, libvtkdoubleconversion, libvtkFiltersHybrid, libvtkFiltersExtraction, libvtkImagingStencil, libvtkRenderingUI, libvtkFiltersStatistics, libvtkFiltersParallel, libvtkRenderingContext2D, libvtkRenderingLabel, libvtkogg, libvtkRenderingImage, libvtkRenderingAnnotation, libvtkCommonColor, libvtkIOCore, libvtkCommonSystem, libvtkFiltersFlowPaths, libvtkFiltersImaging, libvtkFiltersModeling, libvtkFiltersTopology, libvtkRenderingContextOpenGL2, libvtkInteractionImage, libvtkCommonTransforms, libvtkImagingSources, libvtkFiltersHyperTree, libvtkFiltersTexture, libvtkFiltersSMP, libvtkIOImage, libvtkImagingHybrid, libvtkCommonComputationalGeometry, libvtkCommonMath, libvtkImagingMorphological, libvtkRenderingFreeType, libvtkIOXMLParser, libvtkImagingStatistics, libvtkRenderingOpenGL2, libvtkImagingColor, libvtkImagingFourier, libvtkFiltersParallelImaging, libvtkIOMovie, libvtkImagingGeneral, libvtkRenderingVolumeOpenGL2, libvtkParallelDIY, libvtkFiltersGeneral, libvtkCommonCore, libvtkImagingMath, libvtkViewsCore, libvtkCommonDataModel, libvtkRenderingVolume, libvtkpugixml, libvtkFiltersSources, libvtkRenderingCore, libvtkRenderingLOD, libvtkDICOMParser, libvtkParallelCore, libvtkIOXML, libvtkmetaio, vtkProbeOpenGLVersion, libvtkInteractionStyle

using GLEW_jll
using Xorg_libXi_jll
using Xorg_libXtst_jll
using Xorg_libXt_jll
using Xorg_libICE_jll
using Xorg_libSM_jll
using Libtiff_jll
using JpegTurbo_jll
using libpng_jll
using Zlib_jll
using FreeType2_jll
using Expat_jll
using Lz4_jll
using XZ_jll
## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libvtkIOLegacy`
const libvtkIOLegacy_splitpath = ["lib", "libvtkIOLegacy.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOLegacy_path = ""

# libvtkIOLegacy-specific global declaration
# This will be filled out by __init__()
libvtkIOLegacy_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOLegacy = "libvtkIOLegacy.so.1"

# Relative path to `libvtkFiltersProgrammable`
const libvtkFiltersProgrammable_splitpath = ["lib", "libvtkFiltersProgrammable.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersProgrammable_path = ""

# libvtkFiltersProgrammable-specific global declaration
# This will be filled out by __init__()
libvtkFiltersProgrammable_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersProgrammable = "libvtkFiltersProgrammable.so.1"

# Relative path to `libvtkImagingCore`
const libvtkImagingCore_splitpath = ["lib", "libvtkImagingCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingCore_path = ""

# libvtkImagingCore-specific global declaration
# This will be filled out by __init__()
libvtkImagingCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingCore = "libvtkImagingCore.so.1"

# Relative path to `libvtkFiltersGeometry`
const libvtkFiltersGeometry_splitpath = ["lib", "libvtkFiltersGeometry.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersGeometry_path = ""

# libvtkFiltersGeometry-specific global declaration
# This will be filled out by __init__()
libvtkFiltersGeometry_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersGeometry = "libvtkFiltersGeometry.so.1"

# Relative path to `libvtkFiltersCore`
const libvtkFiltersCore_splitpath = ["lib", "libvtkFiltersCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersCore_path = ""

# libvtkFiltersCore-specific global declaration
# This will be filled out by __init__()
libvtkFiltersCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersCore = "libvtkFiltersCore.so.1"

# Relative path to `libvtkFiltersSelection`
const libvtkFiltersSelection_splitpath = ["lib", "libvtkFiltersSelection.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersSelection_path = ""

# libvtkFiltersSelection-specific global declaration
# This will be filled out by __init__()
libvtkFiltersSelection_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersSelection = "libvtkFiltersSelection.so.1"

# Relative path to `libvtkCommonExecutionModel`
const libvtkCommonExecutionModel_splitpath = ["lib", "libvtkCommonExecutionModel.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonExecutionModel_path = ""

# libvtkCommonExecutionModel-specific global declaration
# This will be filled out by __init__()
libvtkCommonExecutionModel_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonExecutionModel = "libvtkCommonExecutionModel.so.1"

# Relative path to `libvtkFiltersGeneric`
const libvtkFiltersGeneric_splitpath = ["lib", "libvtkFiltersGeneric.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersGeneric_path = ""

# libvtkFiltersGeneric-specific global declaration
# This will be filled out by __init__()
libvtkFiltersGeneric_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersGeneric = "libvtkFiltersGeneric.so.1"

# Relative path to `libvtkCommonMisc`
const libvtkCommonMisc_splitpath = ["lib", "libvtkCommonMisc.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonMisc_path = ""

# libvtkCommonMisc-specific global declaration
# This will be filled out by __init__()
libvtkCommonMisc_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonMisc = "libvtkCommonMisc.so.1"

# Relative path to `libvtkIOOggTheora`
const libvtkIOOggTheora_splitpath = ["lib", "libvtkIOOggTheora.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOOggTheora_path = ""

# libvtkIOOggTheora-specific global declaration
# This will be filled out by __init__()
libvtkIOOggTheora_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOOggTheora = "libvtkIOOggTheora.so.1"

# Relative path to `libvtksys`
const libvtksys_splitpath = ["lib", "libvtksys.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtksys_path = ""

# libvtksys-specific global declaration
# This will be filled out by __init__()
libvtksys_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtksys = "libvtksys.so.1"

# Relative path to `libvtktheora`
const libvtktheora_splitpath = ["lib", "libvtktheora.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtktheora_path = ""

# libvtktheora-specific global declaration
# This will be filled out by __init__()
libvtktheora_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtktheora = "libvtktheora.so.1"

# Relative path to `libvtkFiltersPoints`
const libvtkFiltersPoints_splitpath = ["lib", "libvtkFiltersPoints.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersPoints_path = ""

# libvtkFiltersPoints-specific global declaration
# This will be filled out by __init__()
libvtkFiltersPoints_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersPoints = "libvtkFiltersPoints.so.1"

# Relative path to `libvtkInteractionWidgets`
const libvtkInteractionWidgets_splitpath = ["lib", "libvtkInteractionWidgets.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkInteractionWidgets_path = ""

# libvtkInteractionWidgets-specific global declaration
# This will be filled out by __init__()
libvtkInteractionWidgets_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkInteractionWidgets = "libvtkInteractionWidgets.so.1"

# Relative path to `libvtkdoubleconversion`
const libvtkdoubleconversion_splitpath = ["lib", "libvtkdoubleconversion.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkdoubleconversion_path = ""

# libvtkdoubleconversion-specific global declaration
# This will be filled out by __init__()
libvtkdoubleconversion_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkdoubleconversion = "libvtkdoubleconversion.so.1"

# Relative path to `libvtkFiltersHybrid`
const libvtkFiltersHybrid_splitpath = ["lib", "libvtkFiltersHybrid.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersHybrid_path = ""

# libvtkFiltersHybrid-specific global declaration
# This will be filled out by __init__()
libvtkFiltersHybrid_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersHybrid = "libvtkFiltersHybrid.so.1"

# Relative path to `libvtkFiltersExtraction`
const libvtkFiltersExtraction_splitpath = ["lib", "libvtkFiltersExtraction.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersExtraction_path = ""

# libvtkFiltersExtraction-specific global declaration
# This will be filled out by __init__()
libvtkFiltersExtraction_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersExtraction = "libvtkFiltersExtraction.so.1"

# Relative path to `libvtkImagingStencil`
const libvtkImagingStencil_splitpath = ["lib", "libvtkImagingStencil.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingStencil_path = ""

# libvtkImagingStencil-specific global declaration
# This will be filled out by __init__()
libvtkImagingStencil_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingStencil = "libvtkImagingStencil.so.1"

# Relative path to `libvtkRenderingUI`
const libvtkRenderingUI_splitpath = ["lib", "libvtkRenderingUI.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingUI_path = ""

# libvtkRenderingUI-specific global declaration
# This will be filled out by __init__()
libvtkRenderingUI_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingUI = "libvtkRenderingUI.so.1"

# Relative path to `libvtkFiltersStatistics`
const libvtkFiltersStatistics_splitpath = ["lib", "libvtkFiltersStatistics.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersStatistics_path = ""

# libvtkFiltersStatistics-specific global declaration
# This will be filled out by __init__()
libvtkFiltersStatistics_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersStatistics = "libvtkFiltersStatistics.so.1"

# Relative path to `libvtkFiltersParallel`
const libvtkFiltersParallel_splitpath = ["lib", "libvtkFiltersParallel.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersParallel_path = ""

# libvtkFiltersParallel-specific global declaration
# This will be filled out by __init__()
libvtkFiltersParallel_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersParallel = "libvtkFiltersParallel.so.1"

# Relative path to `libvtkRenderingContext2D`
const libvtkRenderingContext2D_splitpath = ["lib", "libvtkRenderingContext2D.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingContext2D_path = ""

# libvtkRenderingContext2D-specific global declaration
# This will be filled out by __init__()
libvtkRenderingContext2D_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingContext2D = "libvtkRenderingContext2D.so.1"

# Relative path to `libvtkRenderingLabel`
const libvtkRenderingLabel_splitpath = ["lib", "libvtkRenderingLabel.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingLabel_path = ""

# libvtkRenderingLabel-specific global declaration
# This will be filled out by __init__()
libvtkRenderingLabel_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingLabel = "libvtkRenderingLabel.so.1"

# Relative path to `libvtkogg`
const libvtkogg_splitpath = ["lib", "libvtkogg.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkogg_path = ""

# libvtkogg-specific global declaration
# This will be filled out by __init__()
libvtkogg_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkogg = "libvtkogg.so.1"

# Relative path to `libvtkRenderingImage`
const libvtkRenderingImage_splitpath = ["lib", "libvtkRenderingImage.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingImage_path = ""

# libvtkRenderingImage-specific global declaration
# This will be filled out by __init__()
libvtkRenderingImage_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingImage = "libvtkRenderingImage.so.1"

# Relative path to `libvtkRenderingAnnotation`
const libvtkRenderingAnnotation_splitpath = ["lib", "libvtkRenderingAnnotation.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingAnnotation_path = ""

# libvtkRenderingAnnotation-specific global declaration
# This will be filled out by __init__()
libvtkRenderingAnnotation_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingAnnotation = "libvtkRenderingAnnotation.so.1"

# Relative path to `libvtkCommonColor`
const libvtkCommonColor_splitpath = ["lib", "libvtkCommonColor.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonColor_path = ""

# libvtkCommonColor-specific global declaration
# This will be filled out by __init__()
libvtkCommonColor_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonColor = "libvtkCommonColor.so.1"

# Relative path to `libvtkIOCore`
const libvtkIOCore_splitpath = ["lib", "libvtkIOCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOCore_path = ""

# libvtkIOCore-specific global declaration
# This will be filled out by __init__()
libvtkIOCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOCore = "libvtkIOCore.so.1"

# Relative path to `libvtkCommonSystem`
const libvtkCommonSystem_splitpath = ["lib", "libvtkCommonSystem.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonSystem_path = ""

# libvtkCommonSystem-specific global declaration
# This will be filled out by __init__()
libvtkCommonSystem_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonSystem = "libvtkCommonSystem.so.1"

# Relative path to `libvtkFiltersFlowPaths`
const libvtkFiltersFlowPaths_splitpath = ["lib", "libvtkFiltersFlowPaths.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersFlowPaths_path = ""

# libvtkFiltersFlowPaths-specific global declaration
# This will be filled out by __init__()
libvtkFiltersFlowPaths_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersFlowPaths = "libvtkFiltersFlowPaths.so.1"

# Relative path to `libvtkFiltersImaging`
const libvtkFiltersImaging_splitpath = ["lib", "libvtkFiltersImaging.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersImaging_path = ""

# libvtkFiltersImaging-specific global declaration
# This will be filled out by __init__()
libvtkFiltersImaging_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersImaging = "libvtkFiltersImaging.so.1"

# Relative path to `libvtkFiltersModeling`
const libvtkFiltersModeling_splitpath = ["lib", "libvtkFiltersModeling.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersModeling_path = ""

# libvtkFiltersModeling-specific global declaration
# This will be filled out by __init__()
libvtkFiltersModeling_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersModeling = "libvtkFiltersModeling.so.1"

# Relative path to `libvtkFiltersTopology`
const libvtkFiltersTopology_splitpath = ["lib", "libvtkFiltersTopology.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersTopology_path = ""

# libvtkFiltersTopology-specific global declaration
# This will be filled out by __init__()
libvtkFiltersTopology_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersTopology = "libvtkFiltersTopology.so.1"

# Relative path to `libvtkRenderingContextOpenGL2`
const libvtkRenderingContextOpenGL2_splitpath = ["lib", "libvtkRenderingContextOpenGL2.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingContextOpenGL2_path = ""

# libvtkRenderingContextOpenGL2-specific global declaration
# This will be filled out by __init__()
libvtkRenderingContextOpenGL2_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingContextOpenGL2 = "libvtkRenderingContextOpenGL2.so.1"

# Relative path to `libvtkInteractionImage`
const libvtkInteractionImage_splitpath = ["lib", "libvtkInteractionImage.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkInteractionImage_path = ""

# libvtkInteractionImage-specific global declaration
# This will be filled out by __init__()
libvtkInteractionImage_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkInteractionImage = "libvtkInteractionImage.so.1"

# Relative path to `libvtkCommonTransforms`
const libvtkCommonTransforms_splitpath = ["lib", "libvtkCommonTransforms.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonTransforms_path = ""

# libvtkCommonTransforms-specific global declaration
# This will be filled out by __init__()
libvtkCommonTransforms_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonTransforms = "libvtkCommonTransforms.so.1"

# Relative path to `libvtkImagingSources`
const libvtkImagingSources_splitpath = ["lib", "libvtkImagingSources.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingSources_path = ""

# libvtkImagingSources-specific global declaration
# This will be filled out by __init__()
libvtkImagingSources_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingSources = "libvtkImagingSources.so.1"

# Relative path to `libvtkFiltersHyperTree`
const libvtkFiltersHyperTree_splitpath = ["lib", "libvtkFiltersHyperTree.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersHyperTree_path = ""

# libvtkFiltersHyperTree-specific global declaration
# This will be filled out by __init__()
libvtkFiltersHyperTree_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersHyperTree = "libvtkFiltersHyperTree.so.1"

# Relative path to `libvtkFiltersTexture`
const libvtkFiltersTexture_splitpath = ["lib", "libvtkFiltersTexture.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersTexture_path = ""

# libvtkFiltersTexture-specific global declaration
# This will be filled out by __init__()
libvtkFiltersTexture_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersTexture = "libvtkFiltersTexture.so.1"

# Relative path to `libvtkFiltersSMP`
const libvtkFiltersSMP_splitpath = ["lib", "libvtkFiltersSMP.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersSMP_path = ""

# libvtkFiltersSMP-specific global declaration
# This will be filled out by __init__()
libvtkFiltersSMP_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersSMP = "libvtkFiltersSMP.so.1"

# Relative path to `libvtkIOImage`
const libvtkIOImage_splitpath = ["lib", "libvtkIOImage.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOImage_path = ""

# libvtkIOImage-specific global declaration
# This will be filled out by __init__()
libvtkIOImage_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOImage = "libvtkIOImage.so.1"

# Relative path to `libvtkImagingHybrid`
const libvtkImagingHybrid_splitpath = ["lib", "libvtkImagingHybrid.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingHybrid_path = ""

# libvtkImagingHybrid-specific global declaration
# This will be filled out by __init__()
libvtkImagingHybrid_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingHybrid = "libvtkImagingHybrid.so.1"

# Relative path to `libvtkCommonComputationalGeometry`
const libvtkCommonComputationalGeometry_splitpath = ["lib", "libvtkCommonComputationalGeometry.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonComputationalGeometry_path = ""

# libvtkCommonComputationalGeometry-specific global declaration
# This will be filled out by __init__()
libvtkCommonComputationalGeometry_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonComputationalGeometry = "libvtkCommonComputationalGeometry.so.1"

# Relative path to `libvtkCommonMath`
const libvtkCommonMath_splitpath = ["lib", "libvtkCommonMath.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonMath_path = ""

# libvtkCommonMath-specific global declaration
# This will be filled out by __init__()
libvtkCommonMath_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonMath = "libvtkCommonMath.so.1"

# Relative path to `libvtkImagingMorphological`
const libvtkImagingMorphological_splitpath = ["lib", "libvtkImagingMorphological.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingMorphological_path = ""

# libvtkImagingMorphological-specific global declaration
# This will be filled out by __init__()
libvtkImagingMorphological_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingMorphological = "libvtkImagingMorphological.so.1"

# Relative path to `libvtkRenderingFreeType`
const libvtkRenderingFreeType_splitpath = ["lib", "libvtkRenderingFreeType.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingFreeType_path = ""

# libvtkRenderingFreeType-specific global declaration
# This will be filled out by __init__()
libvtkRenderingFreeType_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingFreeType = "libvtkRenderingFreeType.so.1"

# Relative path to `libvtkIOXMLParser`
const libvtkIOXMLParser_splitpath = ["lib", "libvtkIOXMLParser.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOXMLParser_path = ""

# libvtkIOXMLParser-specific global declaration
# This will be filled out by __init__()
libvtkIOXMLParser_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOXMLParser = "libvtkIOXMLParser.so.1"

# Relative path to `libvtkImagingStatistics`
const libvtkImagingStatistics_splitpath = ["lib", "libvtkImagingStatistics.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingStatistics_path = ""

# libvtkImagingStatistics-specific global declaration
# This will be filled out by __init__()
libvtkImagingStatistics_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingStatistics = "libvtkImagingStatistics.so.1"

# Relative path to `libvtkRenderingOpenGL2`
const libvtkRenderingOpenGL2_splitpath = ["lib", "libvtkRenderingOpenGL2.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingOpenGL2_path = ""

# libvtkRenderingOpenGL2-specific global declaration
# This will be filled out by __init__()
libvtkRenderingOpenGL2_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingOpenGL2 = "libvtkRenderingOpenGL2.so.1"

# Relative path to `libvtkImagingColor`
const libvtkImagingColor_splitpath = ["lib", "libvtkImagingColor.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingColor_path = ""

# libvtkImagingColor-specific global declaration
# This will be filled out by __init__()
libvtkImagingColor_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingColor = "libvtkImagingColor.so.1"

# Relative path to `libvtkImagingFourier`
const libvtkImagingFourier_splitpath = ["lib", "libvtkImagingFourier.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingFourier_path = ""

# libvtkImagingFourier-specific global declaration
# This will be filled out by __init__()
libvtkImagingFourier_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingFourier = "libvtkImagingFourier.so.1"

# Relative path to `libvtkFiltersParallelImaging`
const libvtkFiltersParallelImaging_splitpath = ["lib", "libvtkFiltersParallelImaging.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersParallelImaging_path = ""

# libvtkFiltersParallelImaging-specific global declaration
# This will be filled out by __init__()
libvtkFiltersParallelImaging_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersParallelImaging = "libvtkFiltersParallelImaging.so.1"

# Relative path to `libvtkIOMovie`
const libvtkIOMovie_splitpath = ["lib", "libvtkIOMovie.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOMovie_path = ""

# libvtkIOMovie-specific global declaration
# This will be filled out by __init__()
libvtkIOMovie_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOMovie = "libvtkIOMovie.so.1"

# Relative path to `libvtkImagingGeneral`
const libvtkImagingGeneral_splitpath = ["lib", "libvtkImagingGeneral.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingGeneral_path = ""

# libvtkImagingGeneral-specific global declaration
# This will be filled out by __init__()
libvtkImagingGeneral_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingGeneral = "libvtkImagingGeneral.so.1"

# Relative path to `libvtkRenderingVolumeOpenGL2`
const libvtkRenderingVolumeOpenGL2_splitpath = ["lib", "libvtkRenderingVolumeOpenGL2.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingVolumeOpenGL2_path = ""

# libvtkRenderingVolumeOpenGL2-specific global declaration
# This will be filled out by __init__()
libvtkRenderingVolumeOpenGL2_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingVolumeOpenGL2 = "libvtkRenderingVolumeOpenGL2.so.1"

# Relative path to `libvtkParallelDIY`
const libvtkParallelDIY_splitpath = ["lib", "libvtkParallelDIY.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkParallelDIY_path = ""

# libvtkParallelDIY-specific global declaration
# This will be filled out by __init__()
libvtkParallelDIY_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkParallelDIY = "libvtkParallelDIY.so.1"

# Relative path to `libvtkFiltersGeneral`
const libvtkFiltersGeneral_splitpath = ["lib", "libvtkFiltersGeneral.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersGeneral_path = ""

# libvtkFiltersGeneral-specific global declaration
# This will be filled out by __init__()
libvtkFiltersGeneral_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersGeneral = "libvtkFiltersGeneral.so.1"

# Relative path to `libvtkCommonCore`
const libvtkCommonCore_splitpath = ["lib", "libvtkCommonCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonCore_path = ""

# libvtkCommonCore-specific global declaration
# This will be filled out by __init__()
libvtkCommonCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonCore = "libvtkCommonCore.so.1"

# Relative path to `libvtkImagingMath`
const libvtkImagingMath_splitpath = ["lib", "libvtkImagingMath.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkImagingMath_path = ""

# libvtkImagingMath-specific global declaration
# This will be filled out by __init__()
libvtkImagingMath_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkImagingMath = "libvtkImagingMath.so.1"

# Relative path to `libvtkViewsCore`
const libvtkViewsCore_splitpath = ["lib", "libvtkViewsCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkViewsCore_path = ""

# libvtkViewsCore-specific global declaration
# This will be filled out by __init__()
libvtkViewsCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkViewsCore = "libvtkViewsCore.so.1"

# Relative path to `libvtkCommonDataModel`
const libvtkCommonDataModel_splitpath = ["lib", "libvtkCommonDataModel.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkCommonDataModel_path = ""

# libvtkCommonDataModel-specific global declaration
# This will be filled out by __init__()
libvtkCommonDataModel_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkCommonDataModel = "libvtkCommonDataModel.so.1"

# Relative path to `libvtkRenderingVolume`
const libvtkRenderingVolume_splitpath = ["lib", "libvtkRenderingVolume.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingVolume_path = ""

# libvtkRenderingVolume-specific global declaration
# This will be filled out by __init__()
libvtkRenderingVolume_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingVolume = "libvtkRenderingVolume.so.1"

# Relative path to `libvtkpugixml`
const libvtkpugixml_splitpath = ["lib", "libvtkpugixml.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkpugixml_path = ""

# libvtkpugixml-specific global declaration
# This will be filled out by __init__()
libvtkpugixml_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkpugixml = "libvtkpugixml.so.1"

# Relative path to `libvtkFiltersSources`
const libvtkFiltersSources_splitpath = ["lib", "libvtkFiltersSources.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkFiltersSources_path = ""

# libvtkFiltersSources-specific global declaration
# This will be filled out by __init__()
libvtkFiltersSources_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkFiltersSources = "libvtkFiltersSources.so.1"

# Relative path to `libvtkRenderingCore`
const libvtkRenderingCore_splitpath = ["lib", "libvtkRenderingCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingCore_path = ""

# libvtkRenderingCore-specific global declaration
# This will be filled out by __init__()
libvtkRenderingCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingCore = "libvtkRenderingCore.so.1"

# Relative path to `libvtkRenderingLOD`
const libvtkRenderingLOD_splitpath = ["lib", "libvtkRenderingLOD.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkRenderingLOD_path = ""

# libvtkRenderingLOD-specific global declaration
# This will be filled out by __init__()
libvtkRenderingLOD_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkRenderingLOD = "libvtkRenderingLOD.so.1"

# Relative path to `libvtkDICOMParser`
const libvtkDICOMParser_splitpath = ["lib", "libvtkDICOMParser.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkDICOMParser_path = ""

# libvtkDICOMParser-specific global declaration
# This will be filled out by __init__()
libvtkDICOMParser_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkDICOMParser = "libvtkDICOMParser.so.1"

# Relative path to `libvtkParallelCore`
const libvtkParallelCore_splitpath = ["lib", "libvtkParallelCore.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkParallelCore_path = ""

# libvtkParallelCore-specific global declaration
# This will be filled out by __init__()
libvtkParallelCore_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkParallelCore = "libvtkParallelCore.so.1"

# Relative path to `libvtkIOXML`
const libvtkIOXML_splitpath = ["lib", "libvtkIOXML.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkIOXML_path = ""

# libvtkIOXML-specific global declaration
# This will be filled out by __init__()
libvtkIOXML_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkIOXML = "libvtkIOXML.so.1"

# Relative path to `libvtkmetaio`
const libvtkmetaio_splitpath = ["lib", "libvtkmetaio.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkmetaio_path = ""

# libvtkmetaio-specific global declaration
# This will be filled out by __init__()
libvtkmetaio_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkmetaio = "libvtkmetaio.so.1"

# Relative path to `vtkProbeOpenGLVersion`
const vtkProbeOpenGLVersion_splitpath = ["bin", "vtkProbeOpenGLVersion"]

# This will be filled out by __init__() for all products, as it must be done at runtime
vtkProbeOpenGLVersion_path = ""

# vtkProbeOpenGLVersion-specific global declaration
function vtkProbeOpenGLVersion(f::Function; adjust_PATH::Bool = true, adjust_LIBPATH::Bool = true)
    global PATH, LIBPATH
    env_mapping = Dict{String,String}()
    if adjust_PATH
        if !isempty(get(ENV, "PATH", ""))
            env_mapping["PATH"] = string(PATH, ':', ENV["PATH"])
        else
            env_mapping["PATH"] = PATH
        end
    end
    if adjust_LIBPATH
        if !isempty(get(ENV, LIBPATH_env, ""))
            env_mapping[LIBPATH_env] = string(LIBPATH, ':', ENV[LIBPATH_env])
        else
            env_mapping[LIBPATH_env] = LIBPATH
        end
    end
    withenv(env_mapping...) do
        f(vtkProbeOpenGLVersion_path)
    end
end

# Relative path to `libvtkInteractionStyle`
const libvtkInteractionStyle_splitpath = ["lib", "libvtkInteractionStyle.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libvtkInteractionStyle_path = ""

# libvtkInteractionStyle-specific global declaration
# This will be filled out by __init__()
libvtkInteractionStyle_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libvtkInteractionStyle = "libvtkInteractionStyle.so.1"

"""
Open all libraries
"""
function __init__()
    global artifact_dir = abspath(artifact"VTKMinimal")

    # Initialize PATH and LIBPATH environment variable listings
    global PATH_list, LIBPATH_list
    # We first need to add to LIBPATH_list the libraries provided by Julia
    append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
    # From the list of our dependencies, generate a tuple of all the PATH and LIBPATH lists,
    # then append them to our own.
    foreach(p -> append!(PATH_list, p), (GLEW_jll.PATH_list, Xorg_libXi_jll.PATH_list, Xorg_libXtst_jll.PATH_list, Xorg_libXt_jll.PATH_list, Xorg_libICE_jll.PATH_list, Xorg_libSM_jll.PATH_list, Libtiff_jll.PATH_list, JpegTurbo_jll.PATH_list, libpng_jll.PATH_list, Zlib_jll.PATH_list, FreeType2_jll.PATH_list, Expat_jll.PATH_list, Lz4_jll.PATH_list, XZ_jll.PATH_list,))
    foreach(p -> append!(LIBPATH_list, p), (GLEW_jll.LIBPATH_list, Xorg_libXi_jll.LIBPATH_list, Xorg_libXtst_jll.LIBPATH_list, Xorg_libXt_jll.LIBPATH_list, Xorg_libICE_jll.LIBPATH_list, Xorg_libSM_jll.LIBPATH_list, Libtiff_jll.LIBPATH_list, JpegTurbo_jll.LIBPATH_list, libpng_jll.LIBPATH_list, Zlib_jll.LIBPATH_list, FreeType2_jll.LIBPATH_list, Expat_jll.LIBPATH_list, Lz4_jll.LIBPATH_list, XZ_jll.LIBPATH_list,))

    global libvtkIOLegacy_path = normpath(joinpath(artifact_dir, libvtkIOLegacy_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOLegacy_handle = dlopen(libvtkIOLegacy_path)
    push!(LIBPATH_list, dirname(libvtkIOLegacy_path))

    global libvtkFiltersProgrammable_path = normpath(joinpath(artifact_dir, libvtkFiltersProgrammable_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersProgrammable_handle = dlopen(libvtkFiltersProgrammable_path)
    push!(LIBPATH_list, dirname(libvtkFiltersProgrammable_path))

    global libvtkImagingCore_path = normpath(joinpath(artifact_dir, libvtkImagingCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingCore_handle = dlopen(libvtkImagingCore_path)
    push!(LIBPATH_list, dirname(libvtkImagingCore_path))

    global libvtkFiltersGeometry_path = normpath(joinpath(artifact_dir, libvtkFiltersGeometry_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersGeometry_handle = dlopen(libvtkFiltersGeometry_path)
    push!(LIBPATH_list, dirname(libvtkFiltersGeometry_path))

    global libvtkFiltersCore_path = normpath(joinpath(artifact_dir, libvtkFiltersCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersCore_handle = dlopen(libvtkFiltersCore_path)
    push!(LIBPATH_list, dirname(libvtkFiltersCore_path))

    global libvtkFiltersSelection_path = normpath(joinpath(artifact_dir, libvtkFiltersSelection_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersSelection_handle = dlopen(libvtkFiltersSelection_path)
    push!(LIBPATH_list, dirname(libvtkFiltersSelection_path))

    global libvtkCommonExecutionModel_path = normpath(joinpath(artifact_dir, libvtkCommonExecutionModel_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonExecutionModel_handle = dlopen(libvtkCommonExecutionModel_path)
    push!(LIBPATH_list, dirname(libvtkCommonExecutionModel_path))

    global libvtkFiltersGeneric_path = normpath(joinpath(artifact_dir, libvtkFiltersGeneric_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersGeneric_handle = dlopen(libvtkFiltersGeneric_path)
    push!(LIBPATH_list, dirname(libvtkFiltersGeneric_path))

    global libvtkCommonMisc_path = normpath(joinpath(artifact_dir, libvtkCommonMisc_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonMisc_handle = dlopen(libvtkCommonMisc_path)
    push!(LIBPATH_list, dirname(libvtkCommonMisc_path))

    global libvtkIOOggTheora_path = normpath(joinpath(artifact_dir, libvtkIOOggTheora_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOOggTheora_handle = dlopen(libvtkIOOggTheora_path)
    push!(LIBPATH_list, dirname(libvtkIOOggTheora_path))

    global libvtksys_path = normpath(joinpath(artifact_dir, libvtksys_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtksys_handle = dlopen(libvtksys_path)
    push!(LIBPATH_list, dirname(libvtksys_path))

    global libvtktheora_path = normpath(joinpath(artifact_dir, libvtktheora_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtktheora_handle = dlopen(libvtktheora_path)
    push!(LIBPATH_list, dirname(libvtktheora_path))

    global libvtkFiltersPoints_path = normpath(joinpath(artifact_dir, libvtkFiltersPoints_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersPoints_handle = dlopen(libvtkFiltersPoints_path)
    push!(LIBPATH_list, dirname(libvtkFiltersPoints_path))

    global libvtkInteractionWidgets_path = normpath(joinpath(artifact_dir, libvtkInteractionWidgets_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkInteractionWidgets_handle = dlopen(libvtkInteractionWidgets_path)
    push!(LIBPATH_list, dirname(libvtkInteractionWidgets_path))

    global libvtkdoubleconversion_path = normpath(joinpath(artifact_dir, libvtkdoubleconversion_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkdoubleconversion_handle = dlopen(libvtkdoubleconversion_path)
    push!(LIBPATH_list, dirname(libvtkdoubleconversion_path))

    global libvtkFiltersHybrid_path = normpath(joinpath(artifact_dir, libvtkFiltersHybrid_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersHybrid_handle = dlopen(libvtkFiltersHybrid_path)
    push!(LIBPATH_list, dirname(libvtkFiltersHybrid_path))

    global libvtkFiltersExtraction_path = normpath(joinpath(artifact_dir, libvtkFiltersExtraction_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersExtraction_handle = dlopen(libvtkFiltersExtraction_path)
    push!(LIBPATH_list, dirname(libvtkFiltersExtraction_path))

    global libvtkImagingStencil_path = normpath(joinpath(artifact_dir, libvtkImagingStencil_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingStencil_handle = dlopen(libvtkImagingStencil_path)
    push!(LIBPATH_list, dirname(libvtkImagingStencil_path))

    global libvtkRenderingUI_path = normpath(joinpath(artifact_dir, libvtkRenderingUI_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingUI_handle = dlopen(libvtkRenderingUI_path)
    push!(LIBPATH_list, dirname(libvtkRenderingUI_path))

    global libvtkFiltersStatistics_path = normpath(joinpath(artifact_dir, libvtkFiltersStatistics_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersStatistics_handle = dlopen(libvtkFiltersStatistics_path)
    push!(LIBPATH_list, dirname(libvtkFiltersStatistics_path))

    global libvtkFiltersParallel_path = normpath(joinpath(artifact_dir, libvtkFiltersParallel_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersParallel_handle = dlopen(libvtkFiltersParallel_path)
    push!(LIBPATH_list, dirname(libvtkFiltersParallel_path))

    global libvtkRenderingContext2D_path = normpath(joinpath(artifact_dir, libvtkRenderingContext2D_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingContext2D_handle = dlopen(libvtkRenderingContext2D_path)
    push!(LIBPATH_list, dirname(libvtkRenderingContext2D_path))

    global libvtkRenderingLabel_path = normpath(joinpath(artifact_dir, libvtkRenderingLabel_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingLabel_handle = dlopen(libvtkRenderingLabel_path)
    push!(LIBPATH_list, dirname(libvtkRenderingLabel_path))

    global libvtkogg_path = normpath(joinpath(artifact_dir, libvtkogg_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkogg_handle = dlopen(libvtkogg_path)
    push!(LIBPATH_list, dirname(libvtkogg_path))

    global libvtkRenderingImage_path = normpath(joinpath(artifact_dir, libvtkRenderingImage_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingImage_handle = dlopen(libvtkRenderingImage_path)
    push!(LIBPATH_list, dirname(libvtkRenderingImage_path))

    global libvtkRenderingAnnotation_path = normpath(joinpath(artifact_dir, libvtkRenderingAnnotation_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingAnnotation_handle = dlopen(libvtkRenderingAnnotation_path)
    push!(LIBPATH_list, dirname(libvtkRenderingAnnotation_path))

    global libvtkCommonColor_path = normpath(joinpath(artifact_dir, libvtkCommonColor_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonColor_handle = dlopen(libvtkCommonColor_path)
    push!(LIBPATH_list, dirname(libvtkCommonColor_path))

    global libvtkIOCore_path = normpath(joinpath(artifact_dir, libvtkIOCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOCore_handle = dlopen(libvtkIOCore_path)
    push!(LIBPATH_list, dirname(libvtkIOCore_path))

    global libvtkCommonSystem_path = normpath(joinpath(artifact_dir, libvtkCommonSystem_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonSystem_handle = dlopen(libvtkCommonSystem_path)
    push!(LIBPATH_list, dirname(libvtkCommonSystem_path))

    global libvtkFiltersFlowPaths_path = normpath(joinpath(artifact_dir, libvtkFiltersFlowPaths_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersFlowPaths_handle = dlopen(libvtkFiltersFlowPaths_path)
    push!(LIBPATH_list, dirname(libvtkFiltersFlowPaths_path))

    global libvtkFiltersImaging_path = normpath(joinpath(artifact_dir, libvtkFiltersImaging_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersImaging_handle = dlopen(libvtkFiltersImaging_path)
    push!(LIBPATH_list, dirname(libvtkFiltersImaging_path))

    global libvtkFiltersModeling_path = normpath(joinpath(artifact_dir, libvtkFiltersModeling_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersModeling_handle = dlopen(libvtkFiltersModeling_path)
    push!(LIBPATH_list, dirname(libvtkFiltersModeling_path))

    global libvtkFiltersTopology_path = normpath(joinpath(artifact_dir, libvtkFiltersTopology_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersTopology_handle = dlopen(libvtkFiltersTopology_path)
    push!(LIBPATH_list, dirname(libvtkFiltersTopology_path))

    global libvtkRenderingContextOpenGL2_path = normpath(joinpath(artifact_dir, libvtkRenderingContextOpenGL2_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingContextOpenGL2_handle = dlopen(libvtkRenderingContextOpenGL2_path)
    push!(LIBPATH_list, dirname(libvtkRenderingContextOpenGL2_path))

    global libvtkInteractionImage_path = normpath(joinpath(artifact_dir, libvtkInteractionImage_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkInteractionImage_handle = dlopen(libvtkInteractionImage_path)
    push!(LIBPATH_list, dirname(libvtkInteractionImage_path))

    global libvtkCommonTransforms_path = normpath(joinpath(artifact_dir, libvtkCommonTransforms_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonTransforms_handle = dlopen(libvtkCommonTransforms_path)
    push!(LIBPATH_list, dirname(libvtkCommonTransforms_path))

    global libvtkImagingSources_path = normpath(joinpath(artifact_dir, libvtkImagingSources_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingSources_handle = dlopen(libvtkImagingSources_path)
    push!(LIBPATH_list, dirname(libvtkImagingSources_path))

    global libvtkFiltersHyperTree_path = normpath(joinpath(artifact_dir, libvtkFiltersHyperTree_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersHyperTree_handle = dlopen(libvtkFiltersHyperTree_path)
    push!(LIBPATH_list, dirname(libvtkFiltersHyperTree_path))

    global libvtkFiltersTexture_path = normpath(joinpath(artifact_dir, libvtkFiltersTexture_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersTexture_handle = dlopen(libvtkFiltersTexture_path)
    push!(LIBPATH_list, dirname(libvtkFiltersTexture_path))

    global libvtkFiltersSMP_path = normpath(joinpath(artifact_dir, libvtkFiltersSMP_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersSMP_handle = dlopen(libvtkFiltersSMP_path)
    push!(LIBPATH_list, dirname(libvtkFiltersSMP_path))

    global libvtkIOImage_path = normpath(joinpath(artifact_dir, libvtkIOImage_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOImage_handle = dlopen(libvtkIOImage_path)
    push!(LIBPATH_list, dirname(libvtkIOImage_path))

    global libvtkImagingHybrid_path = normpath(joinpath(artifact_dir, libvtkImagingHybrid_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingHybrid_handle = dlopen(libvtkImagingHybrid_path)
    push!(LIBPATH_list, dirname(libvtkImagingHybrid_path))

    global libvtkCommonComputationalGeometry_path = normpath(joinpath(artifact_dir, libvtkCommonComputationalGeometry_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonComputationalGeometry_handle = dlopen(libvtkCommonComputationalGeometry_path)
    push!(LIBPATH_list, dirname(libvtkCommonComputationalGeometry_path))

    global libvtkCommonMath_path = normpath(joinpath(artifact_dir, libvtkCommonMath_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonMath_handle = dlopen(libvtkCommonMath_path)
    push!(LIBPATH_list, dirname(libvtkCommonMath_path))

    global libvtkImagingMorphological_path = normpath(joinpath(artifact_dir, libvtkImagingMorphological_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingMorphological_handle = dlopen(libvtkImagingMorphological_path)
    push!(LIBPATH_list, dirname(libvtkImagingMorphological_path))

    global libvtkRenderingFreeType_path = normpath(joinpath(artifact_dir, libvtkRenderingFreeType_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingFreeType_handle = dlopen(libvtkRenderingFreeType_path)
    push!(LIBPATH_list, dirname(libvtkRenderingFreeType_path))

    global libvtkIOXMLParser_path = normpath(joinpath(artifact_dir, libvtkIOXMLParser_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOXMLParser_handle = dlopen(libvtkIOXMLParser_path)
    push!(LIBPATH_list, dirname(libvtkIOXMLParser_path))

    global libvtkImagingStatistics_path = normpath(joinpath(artifact_dir, libvtkImagingStatistics_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingStatistics_handle = dlopen(libvtkImagingStatistics_path)
    push!(LIBPATH_list, dirname(libvtkImagingStatistics_path))

    global libvtkRenderingOpenGL2_path = normpath(joinpath(artifact_dir, libvtkRenderingOpenGL2_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingOpenGL2_handle = dlopen(libvtkRenderingOpenGL2_path)
    push!(LIBPATH_list, dirname(libvtkRenderingOpenGL2_path))

    global libvtkImagingColor_path = normpath(joinpath(artifact_dir, libvtkImagingColor_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingColor_handle = dlopen(libvtkImagingColor_path)
    push!(LIBPATH_list, dirname(libvtkImagingColor_path))

    global libvtkImagingFourier_path = normpath(joinpath(artifact_dir, libvtkImagingFourier_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingFourier_handle = dlopen(libvtkImagingFourier_path)
    push!(LIBPATH_list, dirname(libvtkImagingFourier_path))

    global libvtkFiltersParallelImaging_path = normpath(joinpath(artifact_dir, libvtkFiltersParallelImaging_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersParallelImaging_handle = dlopen(libvtkFiltersParallelImaging_path)
    push!(LIBPATH_list, dirname(libvtkFiltersParallelImaging_path))

    global libvtkIOMovie_path = normpath(joinpath(artifact_dir, libvtkIOMovie_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOMovie_handle = dlopen(libvtkIOMovie_path)
    push!(LIBPATH_list, dirname(libvtkIOMovie_path))

    global libvtkImagingGeneral_path = normpath(joinpath(artifact_dir, libvtkImagingGeneral_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingGeneral_handle = dlopen(libvtkImagingGeneral_path)
    push!(LIBPATH_list, dirname(libvtkImagingGeneral_path))

    global libvtkRenderingVolumeOpenGL2_path = normpath(joinpath(artifact_dir, libvtkRenderingVolumeOpenGL2_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingVolumeOpenGL2_handle = dlopen(libvtkRenderingVolumeOpenGL2_path)
    push!(LIBPATH_list, dirname(libvtkRenderingVolumeOpenGL2_path))

    global libvtkParallelDIY_path = normpath(joinpath(artifact_dir, libvtkParallelDIY_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkParallelDIY_handle = dlopen(libvtkParallelDIY_path)
    push!(LIBPATH_list, dirname(libvtkParallelDIY_path))

    global libvtkFiltersGeneral_path = normpath(joinpath(artifact_dir, libvtkFiltersGeneral_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersGeneral_handle = dlopen(libvtkFiltersGeneral_path)
    push!(LIBPATH_list, dirname(libvtkFiltersGeneral_path))

    global libvtkCommonCore_path = normpath(joinpath(artifact_dir, libvtkCommonCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonCore_handle = dlopen(libvtkCommonCore_path)
    push!(LIBPATH_list, dirname(libvtkCommonCore_path))

    global libvtkImagingMath_path = normpath(joinpath(artifact_dir, libvtkImagingMath_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkImagingMath_handle = dlopen(libvtkImagingMath_path)
    push!(LIBPATH_list, dirname(libvtkImagingMath_path))

    global libvtkViewsCore_path = normpath(joinpath(artifact_dir, libvtkViewsCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkViewsCore_handle = dlopen(libvtkViewsCore_path)
    push!(LIBPATH_list, dirname(libvtkViewsCore_path))

    global libvtkCommonDataModel_path = normpath(joinpath(artifact_dir, libvtkCommonDataModel_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkCommonDataModel_handle = dlopen(libvtkCommonDataModel_path)
    push!(LIBPATH_list, dirname(libvtkCommonDataModel_path))

    global libvtkRenderingVolume_path = normpath(joinpath(artifact_dir, libvtkRenderingVolume_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingVolume_handle = dlopen(libvtkRenderingVolume_path)
    push!(LIBPATH_list, dirname(libvtkRenderingVolume_path))

    global libvtkpugixml_path = normpath(joinpath(artifact_dir, libvtkpugixml_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkpugixml_handle = dlopen(libvtkpugixml_path)
    push!(LIBPATH_list, dirname(libvtkpugixml_path))

    global libvtkFiltersSources_path = normpath(joinpath(artifact_dir, libvtkFiltersSources_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkFiltersSources_handle = dlopen(libvtkFiltersSources_path)
    push!(LIBPATH_list, dirname(libvtkFiltersSources_path))

    global libvtkRenderingCore_path = normpath(joinpath(artifact_dir, libvtkRenderingCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingCore_handle = dlopen(libvtkRenderingCore_path)
    push!(LIBPATH_list, dirname(libvtkRenderingCore_path))

    global libvtkRenderingLOD_path = normpath(joinpath(artifact_dir, libvtkRenderingLOD_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkRenderingLOD_handle = dlopen(libvtkRenderingLOD_path)
    push!(LIBPATH_list, dirname(libvtkRenderingLOD_path))

    global libvtkDICOMParser_path = normpath(joinpath(artifact_dir, libvtkDICOMParser_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkDICOMParser_handle = dlopen(libvtkDICOMParser_path)
    push!(LIBPATH_list, dirname(libvtkDICOMParser_path))

    global libvtkParallelCore_path = normpath(joinpath(artifact_dir, libvtkParallelCore_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkParallelCore_handle = dlopen(libvtkParallelCore_path)
    push!(LIBPATH_list, dirname(libvtkParallelCore_path))

    global libvtkIOXML_path = normpath(joinpath(artifact_dir, libvtkIOXML_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkIOXML_handle = dlopen(libvtkIOXML_path)
    push!(LIBPATH_list, dirname(libvtkIOXML_path))

    global libvtkmetaio_path = normpath(joinpath(artifact_dir, libvtkmetaio_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkmetaio_handle = dlopen(libvtkmetaio_path)
    push!(LIBPATH_list, dirname(libvtkmetaio_path))

    global vtkProbeOpenGLVersion_path = normpath(joinpath(artifact_dir, vtkProbeOpenGLVersion_splitpath...))

    push!(PATH_list, dirname(vtkProbeOpenGLVersion_path))
    global libvtkInteractionStyle_path = normpath(joinpath(artifact_dir, libvtkInteractionStyle_splitpath...))

    # Manually `dlopen()` this right now so that future invocations
    # of `ccall` with its `SONAME` will find this path immediately.
    global libvtkInteractionStyle_handle = dlopen(libvtkInteractionStyle_path)
    push!(LIBPATH_list, dirname(libvtkInteractionStyle_path))

    # Filter out duplicate and empty entries in our PATH and LIBPATH entries
    filter!(!isempty, unique!(PATH_list))
    filter!(!isempty, unique!(LIBPATH_list))
    global PATH = join(PATH_list, ':')
    global LIBPATH = join(LIBPATH_list, ':')

    # Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
    # that don't honor our "already opened" trick)
    #for lp in LIBPATH_list
    #    push!(DL_LOAD_PATH, lp)
    #end
end  # __init__()


text:
using SetBlasInt
using LinearAlgebra
using Test

S = rand(Float32, 10, 10)
D = rand(Float64, 10, 10)
C = rand(Complex{Float32}, 10, 10)
Z = rand(Complex{Float64}, 10, 10)

SS = S*S
DD = D*D
CC = C*C
ZZ = Z*Z

StS = S'*S
DtD = D'*D
CtC = C'*C
ZtZ = Z'*Z

setblasint(Int64, :all)

@testset "SetBlasInt 64" begin
    # GEMM
    @test SS ≈ S*S
    @test DD ≈ D*D
    @test CC ≈ C*C
    @test ZZ ≈ Z*Z

    # SYRK
    @test StS ≈ S'*S
    @test DtD ≈ D'*D
    @test CtC ≈ C'*C
    @test ZtZ ≈ Z'*Z
end

# TODO: Test on more systems
if Sys.isapple()
    BLAS.lbt_forward("/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate")

    setblasint(Int32, :all)

    @testset "SetBlasInt 32" begin
        # GEMM
        @test SS ≈ S*S
        @test DD ≈ D*D
        @test CC ≈ C*C
        @test ZZ ≈ Z*Z

        # SYRK
        @test StS ≈ S'*S
        @test DtD ≈ D'*D
        @test CtC ≈ C'*C
        @test ZtZ ≈ Z'*Z
    end
end

ext: jl


text:
function dayslicer(hours::UnitRange{Int64})
	if (length(hours) < 24)
		return hours
	end

	daylasthour = filter(t -> t%24 == 0, hours)

	hours_split = Vector{UnitRange{Int64}}()
	append!(hours_split, [first(hours):daylasthour[1]])

	for d in daylasthour[2:end]
	    start_int = last(last(hours_split)) + 1
	    end_int = d
	    append!(hours_split, [start_int:end_int])
	end

	if (last(hours) > last(daylasthour))
	    append!(hours_split, [(hours_split[end][end]+1):hours[end]])
	end

	return hours_split
end

function dayslicer(hours_string::String)
	sepidx = findfirst(":", hours_string)
	hour_first = SubString(hours_string, 1, sepidx[1]-1) |>
				 x -> parse(Int, x)
	hour_last = SubString(hours_string, sepidx[1]+1, lastindex(hours_string)) |>
				 x -> parse(Int, x)

	hours = hour_first:hour_last
	return dayslicer(hours)
end

function hoursInWeek(x::Int64)
    if x <= 52
        return (24*7*x-167:24*7*x)
    elseif x == 53
        return (24*7*52+1):8760
    else
        return hoursInWeek(x-53)
    end
end

function hoursInDay(x::Int64)
	if x <= 365
        return (24*x-23:24*x)
    else
        return hoursInDay(x-365)
    end
end

function hoursInHalfDay(x::Int64)
	if x <= 730
        return (12*x-11:12*x)
    else
        return hoursInHalfDay(x-730)
    end
end

function has(x, y)
	x == y
end

function getKeyVector(df::Dict, value)
	key_value = [k for (k,v) in df if has(v, value)]
	return key_value
end

max_issues_repo_name: bobbyxiong/redispatch-ptg

max_forks_repo_name: bobbyxiong/redispatch-ptg


text:
using BenchmarkTools
using SymbolicRegression

nfeatures = 3
X = randn(nfeatures, 200)
options = Options(; binary_operators=(+, *, /, -), unary_operators=(cos, sin))

x1 = Node("x1")
x2 = Node("x2")
x3 = Node("x3")

# 48 nodes in this tree:
tree = (
    ((x2 + x2) * ((-0.5982493 / x1) / -0.54734415)) + (
        sin(
            cos(
                sin(1.2926733 - 1.6606787) /
                sin(((0.14577048 * x1) + ((0.111149654 + x1) - -0.8298334)) - -1.2071426),
            ) * (cos(x3 - 2.3201916) + ((x1 - (x1 * x2)) / x2)),
        ) / (0.14854191 - ((cos(x2) * -1.6047639) - 0.023943262))
    )
)

function testfunc()
    out = eval_tree_array(tree, X, options)
    return nothing
end
@btime testfunc()


text:
using Random
using Distributions
function whiteNoise(pw)
    """
    inegrated white noise: H=0.5
    """
    N = 2^pw
    whitenoise = rand(Normal(0.0,1.0), N)
    z = cumsum(whitenoise)
end


text:
using WebBlast, EzXML, DataFrames
using Test

@testset "WebBlast.jl" begin

    read_xml = String(read("test.xml"))
    xmldoc = EzXML.parsexml(read_xml)
    blast_arr = WebBlast.blast_xml_to_dict_arr(xmldoc)
    @test length(blast_arr) == 2
    df = flatten_to_dataframe(blast_arr)
    @test size(df) == (4, 25)
end


text:
"""
    generate_sample_gibbs_perfect(
        [rng::Random.AbstractRNG,]
        ising::Ising{T}
    )::Vector{T} where {T<:Int}

Generate an exact realization of the [`PRS.Ising`](@ref) model using a tailored implementation of the perfect Gibbs sampler of [FeGuYi19](@cite).
"""
function generate_sample_gibbs_perfect(
    rng::Random.AbstractRNG,
    ising::Ising{T}
)::Vector{T} where {T<:Int}

    n = LG.nv(ising.graph)
    R = Set{T}(1:n)
    state = Vector{T}(undef, n)
    generate_sample!(rng, state, R, ising)

    while !isempty(R)
        i = rand(rng, R)
        if bayes_filter(rng, ising, state, i, R)
            generate_sample_conditional!(rng, state, i, ising)
            delete!(R, i)
        else
            union!(R, LG.neighbors(ising.graph, i))
        end
    end

    return state
end

function generate_sample_gibbs_perfect(ising::Ising)
    return generate_sample_gibbs_perfect(Random.default_rng(), ising)
end

"""
    bayes_filter(
        rng::Random.AbstractRNG,
        ising::Ising{T},
        state::AbstractVector{T},
        i::T,
        R::Set{T}
    )::Bool

This function is used as a subroutine of [`PRS.generate_sample_gibbs_perfect`](@ref).
"""
function bayes_filter(
    rng::Random.AbstractRNG,
    ising::Ising{T},
    state::AbstractVector{T},
    i::T,
    R::Set{T}
)::Bool where {T<:Int}
    ∂i_R̄ = setdiff(LG.neighbors(ising.graph, i), R)
    isempty(∂i_R̄) && return true

    Xi_J = state[i] * ising.J
    log_acc_ratio = Xi_J * (-sign(Xi_J) * length(∂i_R̄) - sum(state[j] for j in ∂i_R̄))
    return log(rand(rng)) < log_acc_ratio
end


text:
using C2Julia
using Clang
using Test

@testset "literal trivial" begin
    tu = parse_header(joinpath(@__DIR__, "c", "literal.h"), includes=[LLVM_INCLUDE])
    GC.@preserve tu begin
        root_cursor = getcursor(tu)
        child_cursors = children(root_cursor)
        decl = search(child_cursors, x->name(x)=="a")[]
        integer = children(decl)[]
        @test translate(integer).expr == 0

        decl = search(child_cursors, x->name(x)=="b")[]
        float = children(decl)[]
        @test translate(float).expr == :(Float32(1.0))

        decl = search(child_cursors, x->name(x)=="c")[]
        hex = children(decl)[]
        @test translate(hex).expr == :(0x10)

        decl = search(child_cursors, x->name(x)=="d")[]
        hexu = children(decl)[]
        @test translate(hexu).expr == :(UInt32(0x10))

        decl = search(child_cursors, x->name(x)=="e")[]
        oct = children(decl)[]
        @test translate(oct).expr == :(0o123)

        decl = search(child_cursors, x->name(x)=="f")[]
        char = children(decl)[]
        @test translate(char).expr == :('f')

        decl = search(child_cursors, x->name(x)=="g")[]
        str = children(decl)[]
        @test translate(str).expr == :("abcdefg")
    end
end


text:
"""
    figure(handle::Int = 0) -> Int

Select a figure with the specified handle, or with the next available handle
if none is specified. Make the specified figure current. If the figure exists,
display it.
"""
function figure(handle::Int = 0)
    global gnuplot_state

    # make sure handleandle is valid
    handle < 0 && throw(DomainError(handle, "handleandle must be a positive integer or 0"))

    # determine figure handleandle
    handle == 0 && (handle = nexthandle())
    # set current figure to handle
    gnuplot_state.current = handle

    # if figure exists, display it
    if handle in gethandles()
        i = findfigure(handle)
        fig = gnuplot_state.figs[i]
        display(fig)
    else
        # if it doesn't, create it
        fig = newfigure(handle)
    end

    return handle
end

"""
    closefigure(handle::Int...) -> Int

Close one or more figures, specified by their handles.

If no arguments are given, the current figure is closed.

Returns a handle to the current figure.
"""
function closefigure(x...)

    isempty(x) && (x = (gnuplot_state.current,))
    any(i -> i::Int<1, x) && throw(DomainError(x, " all handles must be positive integers"))

    curr = gnuplot_state.current
    for handle ∈ x
        handles = gethandles()
        handle ∉ handles && continue
        curr = closesinglefigure(handle)
    end
    gnuplot_state.current = curr

    return curr
end

"""
    closeall() -> Int

Closes all existing figures. Returns the number of closed figures.
"""
function closeall()
    global gnuplot_state

    h = gethandles()
    closed = length(h)
    closed > 0 && closefigure(h...)
    gnuplot_state.current = nothing

    return closed
end

# Create a new figure and return it, with the specified handle (or the next
# available one if # handle == 0, and with the specified dimensions, axesconf
# and curve. Update Gaston state as necessary.
function newfigure(handle = 0)

    # make sure handle is valid
    handle === nothing && (handle = 0) # no figures exist yet
    handle < 0 && throw(DomainError(handle,"handle must be a positive integer or 0"))

    # if h == 0, determine next available handle
    handle == 0 && (handle = nexthandle())

    # create and push or update, as necessary
    if handle in gethandles()
        # pre-existing; reset figure without creating a new one
        fig = gnuplot_state.figs[findfigure(handle)]
        fig.layout = (0,0)
        fig.subplots =  [Plot()]
    else
        # new; create and push
        fig = Figure(handle)
        push!(gnuplot_state.figs, fig)
    end

    # make this figure current
    gnuplot_state.current = handle

    return fig
end

# close a single figure, assuming arguments are valid; returns handle of
# the new current figure
function closesinglefigure(handle::Int)
    global gnuplot_state

    term = config[:term]
    term ∈ term_window && gnuplot_send("set term $term $handle close")

    # remove figure from global state
    filter!(h->h.handle!=handle,gnuplot_state.figs)

    # update state
    gnuplot_state.current = mostrecenthandle()
    return gnuplot_state.current
end

# Return index to figure with handle `c`. If no such figure exists, returns 0.
function findfigure(c)
    global gnuplot_state
    i = 0
    for j = 1:length(gnuplot_state.figs)
        if gnuplot_state.figs[j].handle == c
            i = j
            break
        end
    end
    return i
end

# return array of existing handles
function gethandles()
    [f.handle for f in gnuplot_state.figs]
end

# Return the next available handle (smallest non-used positive integer)
function nexthandle()
    isempty(gnuplot_state.figs) && return 1
    handles = gethandles()
    mh = maximum(handles)
    for i = 1:mh+1
        !in(i,handles) && return i
    end
end

# Return the most-recently added handle
function mostrecenthandle()
    isempty(gnuplot_state.figs) && return nothing
    return gnuplot_state.figs[end].handle
end


text:
function load_mkl_gcc(mkllibdir,gcclibdir)

  lmkl_intel_lp64 = joinpath(mkllibdir,"libmkl_intel_lp64")
  lmkl_gnu_thread = joinpath(mkllibdir,"libmkl_gnu_thread")
  lmkl_core       = joinpath(mkllibdir,"libmkl_core")
  lgomp           = joinpath(gcclibdir,"libgomp")

  flags = Libdl.RTLD_LAZY | Libdl.RTLD_DEEPBIND | Libdl.RTLD_GLOBAL

  Libdl.dlopen(lgomp, flags)
  Libdl.dlopen(lmkl_core, flags)
  Libdl.dlopen(lmkl_gnu_thread, flags)
  libmkl = Libdl.dlopen(lmkl_intel_lp64, flags)

  libmkl

end


text:
using AlgebraicRelations.DB
using SQLite

@present WorkplaceSchema <: TheorySQL begin
  # Data tables
  employee::Ob
  emp_data::Attr(employee, Int)

  name::Ob
  name_data::Attr(name, String)

  salary::Ob
  sal_data::Attr(salary, Real)

  # Relation tables
  manager::Ob
  emplm::Hom(manager, employee)
  manag::Hom(manager, employee)

  full_name::Ob
  empln::Hom(full_name, employee)
  namen::Hom(full_name, name)

  income::Ob
  empli::Hom(income, employee)
  sali::Hom(income, salary)
end;

@db_schema Workplace(WorkplaceSchema)
f = Workplace()

db = SQLite.DB()
splt_stmts = split(generate_schema_sql(f), "\n")

@testset "Generate DB Schema" begin
  for stmt in splt_stmts
    @test DBInterface.execute(db, stmt) isa SQLite.Query
  end
end


text:
module MatrixProfile
using Statistics, LinearAlgebra
using LoopVectorization
using ProgressMeter
using RecipesBase

using Distances

using SlidingDistancesBase
import SlidingDistancesBase: floattype, lastlength, distance_profile, distance_profile!, window_dot
export Euclidean, ZEuclidean

export matrix_profile, distance_profile, motifs, anomalies, mpdist, mpdist_profile, onsets, snippets, seqs, resample

struct Profile{TT,TP,QT}
    T::TT
    P::TP
    I::Vector{Int}
    m::Int
    Q::QT
end

"""
    profile = matrix_profile(T, m, [dist = ZEuclidean()]; showprogress=true)

Return the matrix profile and the profile indices of time series `T` with window length `m`. See fields `profile.P, profile.I`. You can also plot the profile. If `dist = ZEuclidean()` the STOMP algorithm will be used.

Reference: [Matrix profile II](https://www.cs.ucr.edu/~eamonn/STOMP_GPU_final_submission_camera_ready.pdf).
"""
function matrix_profile(T::AbstractVector{<:Number}, m::Int; showprogress=true)
    n   = lastlength(T)
    l   = n-m+1
    n > 2m+1 || throw(ArgumentError("Window length too long, maximum length is $((n+1)÷2)"))
    μ,σ  = sliding_mean_std(T, m)
    QT   = window_dot(getwindow(T, m, 1), T)
    QT₀   = copy(QT)
    D    = distance_profile(ZEuclidean(), QT, μ, σ, m)
    P    = copy(D)
    I    = ones(Int, l)
    prog = Progress((l - 1) ÷ 5, dt=1, desc="Matrix profile", barglyphs = BarGlyphs("[=> ]"), color=:blue)
    @inbounds for i = 2:l
        for j = l:-1:2
            @fastmath QT[j] = QT[j-1] - T[j-1] * T[i-1] + T[j+m-1] * T[i+m-1] # Consider updating to eqs. 3-7 https://www.cs.ucr.edu/~eamonn/SCAMP-camera-ready-final1.pdf
            # QT[j] = muladd(-T[j-1], T[i-1],  muladd(T[j+m-1], T[i+m-1], QT[j-1]))
            # The expression with fastmath appears to be both more accurate and faster than both muladd and fma
        end
        QT[1] = QT₀[i]
        distance_profile!(D, ZEuclidean(), QT, μ, σ, m, i)
        update_min!(P, I, D, i)
        showprogress && i % 5 == 0 && next!(prog)
    end
    Profile(T, P, I, m, nothing)
end

"""
    profile = matrix_profile(A, T, m, dist=ZEuclidean(); showprogress=true)

Mutual matrix profile between `A` and `T`.
"""
function matrix_profile(A::AbstractVector{<:Number}, T::AbstractVector{<:Number}, m::Int; showprogress=true)
    n   = length(A)
    l   = n-m+1
    lT   = lastlength(T)-m+1
    # n > 2m+1 || throw(ArgumentError("Window length too long, maximum length is $((n+1)÷2)"))
    μT,σT  = sliding_mean_std(T, m)
    μA,σA  = sliding_mean_std(A, m)
    QT     = window_dot(getwindow(A, m, 1), T)
    @assert length(QT) == lT
    QT₀  = copy(QT)
    D    = distance_profile(ZEuclidean(), QT, μA, σA, μT, σT, m)
    P    = copy(D)
    I    = ones(Int, lT)
    prog = Progress((l - 1) ÷ 5, dt=1, desc="Matrix profile", barglyphs = BarGlyphs("[=> ]"), color=:blue)
    @inbounds for i = 2:l
        for j = lT:-1:2
            @fastmath QT[j] = QT[j-1] - T[j-1] * A[i-1] + T[j+m-1] * A[i+m-1]
        end
        QT[1] = dot(getwindow(A, m, i), getwindow(T,m,1)) #QT₀[i]
        distance_profile!(D, ZEuclidean(), QT, μA, σA, μT, σT, m, i)
        update_min!(P, I, D, i, false)
        showprogress && i % 5 == 0 && next!(prog)
    end
    Profile(T, P, I, m, A)
end

matrix_profile(T::AbstractVector{<:Number}, m::Int, ::ZEuclidean; kwargs...) =
    matrix_profile(T, m; kwargs...)
matrix_profile(A::AbstractVector{<:Number}, T::AbstractVector{<:Number}, m::Int, ::ZEuclidean; kwargs...) =
        matrix_profile(A, T, m; kwargs...)

function update_min!(P, I, D, i, sym=true)
    n = lastlength(P)
    @assert n == lastlength(I) == lastlength(D) "Lengths are not consistent, $(eachindex(P,I,D))"
    @inbounds for j in 1:n
        sym && j == i && continue
        if D[j] < P[j]
            P[j] = D[j]
            I[j] = i
        end
    end
end

## General data and distance ===================================================

function matrix_profile(T, m::Int, dist; showprogress=true)
    n   = lastlength(T)
    l   = n-m+1
    # n > 2m+1 || throw(ArgumentError("Window length too long, maximum length is $((n+1)÷2)"))
    P    = distance_profile(dist, getwindow(T,m,1), T)
    P[1] = typemax(floattype(P))
    D    = similar(P)
    I    = ones(Int, l)
    prog = Progress((l - 1) ÷ 5, dt=1, desc="Matrix profile", barglyphs = BarGlyphs("[=> ]"), color=:blue)
    @inbounds for i = 2:l
        Ti = getwindow(T,m,i)
        distance_profile!(D, dist, Ti, T)
        update_min!(P, I, D, i)
        showprogress && i % 5 == 0 && next!(prog)
    end
    Profile(T, P, I, m, nothing)
end

function matrix_profile(A::AbstractArray{S}, B::AbstractArray{S}, m::Int, dist; showprogress=true) where S
    n  = lastlength(A)
    l  = n-m+1
    lT = lastlength(B)-m+1
    n > 2m+1 || throw(ArgumentError("Window length too long, maximum length is $((n+1)÷2)"))
    P    = distance_profile(dist, getwindow(A,m,1), B)
    # P[1] = typemax(eltype(P))
    D    = similar(P)
    I    = ones(Int, lT)
    prog = Progress((l - 1) ÷ 5, dt=1, desc="Matrix profile", barglyphs = BarGlyphs("[=> ]"), color=:blue)
    @inbounds for i = 2:l
        Ai = getwindow(A,m,i)
        distance_profile!(D, dist, Ai, B)
        update_min!(P, I, D, i, false)
        showprogress && i % 5 == 0 && next!(prog)
    end
    Profile(B, P, I, m, A)
end

include("motifs.jl")
include("mpdist.jl")
include("plotting.jl")

end


text:
@testset "Galileo E1B" begin

    galileo_e1b = GalileoE1B(use_gpu = Val(true))
    @test @inferred(get_center_frequency(galileo_e1b)) == 1.57542e9Hz
    @test @inferred(get_code_length(galileo_e1b)) == 4092
    @test @inferred(get_secondary_code_length(galileo_e1b)) == 1
    CUDA.@allowscalar @test @inferred(get_code(galileo_e1b, 0, 1)) == 1
    CUDA.@allowscalar @test @inferred(get_code(galileo_e1b, 0.0, 1)) == 1
    CUDA.@allowscalar @test @inferred(get_code(galileo_e1b, 0.5, 1)) == -1
    CUDA.@allowscalar @test @inferred(get_code(galileo_e1b, 1.0, 1)) == 1
    CUDA.@allowscalar @test @inferred(get_code(galileo_e1b, 1.5, 1)) == -1
    CUDA.@allowscalar @test @inferred(get_code_unsafe(galileo_e1b, 0.0, 1)) == 1
    @test @inferred(get_data_frequency(galileo_e1b)) == 250Hz
    @test @inferred(get_code_frequency(galileo_e1b)) == 1023e3Hz

end


text:
using HDF5
using DataFrames
# Arguments:
# ARGS[1] = option
# ARGS[2] = table store_sales path e.g."/home/whassan/tmp/csv/store_sales_sanitized.csv"
# ARGS[3] = table item path e.g. "/home/whassan/tmp/csv/item_sanitized.csv"

#num_rows = 2000000000000

function example_dataset(customer,sale,item,class,category)
    #=
    customer    item
    1       1
    1       2
    2       1
    1       3
    2       3
    3       1
    =#
    customer_tmp = [1,1,2,1,2,3]
    append!(customer,customer_tmp)
    sale_tmp = [1,2,1,3,3,1]
    append!(sale,sale_tmp)

    #= item class category
    1   3   1
    2   1   2
    3   2   1
    =#
    item_tmp = [1,2,3]
    append!(item,item_tmp)
    class_tmp = [3,1,2]
    append!(class, class_tmp)
    category_tmp = [1,2,1]
    append!(category, category_tmp)

end

function generate_dataset(customer,sale,item,class,category,table1_path,table2_path)
    store_sales_file = open(table1_path)
    item_file = open(table2_path)
    counter = 0
    item_df = readtable(item_file)
    append!(item,item_df[1])
    append!(class,item_df[2])
    append!(category,item_df[3])

    ss_df = readtable(store_sales_file)
    append!(sale,ss_df[1])
    append!(customer,ss_df[2])
end

function main()

    option = parse(Int,ARGS[1])
    if  option == 1 && length(ARGS) >= 3
        table1_path=ARGS[2]
        table2_path=ARGS[3]
    end

    customer = Int64[]
    sale = Int64[]
    item = Int64[]
    class = Int64[]
    category = Int64[]

    if option == 0
        example_dataset(customer,sale,item,class,category)
    end

    if option == 1
        generate_dataset(customer,sale,item,class,category,table1_path,table2_path)
    end
    println(":D Done reading into arrays whole dataset")
    file_name = "test_q26.hdf5"

    if isfile(file_name)
        rm(file_name)
    end
    h5write(file_name ,"/ss_customer_sk",customer)
    h5write(file_name, "/ss_item_sk",sale)

    h5write(file_name, "/i_item_sk", item)
    h5write(file_name, "/i_class_id", class)
    h5write(file_name, "/i_category", category)
end
main()


text:
using RemoteSemaphores
using RemoteSemaphores: _current_count
using Test

using Dates
using Distributed

include("utils.jl")

@testset "RemoteSemaphores.jl" begin

@testset "Single Process" begin
    @test_throws ArgumentError RemoteSemaphore(0)

    rsem = RemoteSemaphore(2)
    @test _current_count(rsem) == 0
    @test string(rsem) == "$(typeof(rsem))(2, pid=$(myid()))"

    try
        asynctimedwait(1.0; kill=true) do
            release(rsem)
        end
        @test "Expected error but no error thrown" == nothing
    catch err
        @test err isa RemoteException

        if VERSION >= v"1.2.0-DEV.28"
            expected = ErrorException
            @test err.captured.ex isa expected
            @test occursin("release count must match acquire count", err.captured.ex.msg)
        else
            expected = AssertionError
            @test err.captured.ex isa expected
        end

        if !isa(err, RemoteException) || !isa(err.captured.ex, expected)
            rethrow(err)
        end
    end

    @test asynctimedwait(1.0; kill=true) do
        acquire(rsem)
    end
    @test _current_count(rsem) == 1

    @test asynctimedwait(1.0; kill=true) do
        acquire(rsem)
    end
    @test _current_count(rsem) == 2

    acquired = false
    @test asynctimedwait(1.0) do
        acquire(rsem)
        acquired = true
    end == false
    @test !acquired
    @test _current_count(rsem) == 2

    @test asynctimedwait(1.0; kill=true) do
        release(rsem)
    end
    @test acquired
    @test _current_count(rsem) == 2

    @test asynctimedwait(10.0; kill=true) do
        @sync for i = 1:100
            @async (isodd(i) ? acquire(rsem) : release(rsem))
        end
    end

    @test _current_count(rsem) == 2
end

@testset "Multiple Processes" begin
    @testset "Simple remote" begin
        worker_pid = addprocs(1)[1]
        @everywhere using RemoteSemaphores
        @everywhere include("utils.jl")

        rsem = RemoteSemaphore(2, worker_pid)
        @test _current_count(rsem) == 0
        @test string(rsem) == "$(typeof(rsem))(2, pid=$worker_pid)"

        try
            asynctimedwait(1.0; kill=true) do
                release(rsem)
            end
            @test "Expected error but no error thrown" == nothing
        catch err
            @test err isa RemoteException

            if VERSION >= v"1.2.0-DEV.28"
                expected = ErrorException
                @test err.captured.ex isa expected
                @test occursin("release count must match acquire count", err.captured.ex.msg)
            else
                expected = AssertionError
                @test err.captured.ex isa expected
            end

            if !isa(err, RemoteException) || !isa(err.captured.ex, expected)
                rethrow(err)
            end
        end

        @test asynctimedwait(1.0; kill=true) do
            acquire(rsem)
        end
        @test _current_count(rsem) == 1

        @test asynctimedwait(1.0; kill=true) do
            acquire(rsem)
        end
        @test _current_count(rsem) == 2

        acquired = false
        @test asynctimedwait(1.0) do
            acquire(rsem)
            acquired = true
        end == false
        @test !acquired
        @test _current_count(rsem) == 2

        @test asynctimedwait(1.0; kill=true) do
            release(rsem)
        end
        @test acquired
        @test _current_count(rsem) == 2

        @test asynctimedwait(10.0; kill=true) do
            @sync for i = 1:100
                @async (isodd(i) ? acquire(rsem) : release(rsem))
            end
        end

        @test _current_count(rsem) == 2
    end

    @testset "Multiple processes" begin
        addprocs(3 - nprocs())
        worker1_pid, worker2_pid = workers()
        @everywhere using RemoteSemaphores
        @everywhere using RemoteSemaphores: _current_count
        @everywhere include("utils.jl")

        rsem = RemoteSemaphore(3, worker1_pid)
        @test _current_count(rsem) == 0
        @test (@fetchfrom worker1_pid _current_count(rsem)) == 0
        @test (@fetchfrom worker2_pid _current_count(rsem)) == 0

        @test asynctimedwait(10.0; kill=true) do
            acquire(rsem)
        end
        @test _current_count(rsem) == 1
        @test (@fetchfrom worker1_pid _current_count(rsem)) == 1
        @test (@fetchfrom worker2_pid _current_count(rsem)) == 1

        @test @fetchfrom worker2_pid asynctimedwait(1.0; kill=true) do
            acquire(rsem)
        end
        @test _current_count(rsem) == 2
        @test (@fetchfrom worker1_pid _current_count(rsem)) == 2
        @test (@fetchfrom worker2_pid _current_count(rsem)) == 2

        @test @fetchfrom worker1_pid asynctimedwait(1.0; kill=true) do
            acquire(rsem)
        end
        @test _current_count(rsem) == 3
        @test (@fetchfrom worker1_pid _current_count(rsem)) == 3
        @test (@fetchfrom worker2_pid _current_count(rsem)) == 3

        acquired1 = false
        @test asynctimedwait(10.0) do
            acquire(rsem)
            acquired1 = true
        end == false

        acquired2 = Future()
        @test @fetchfrom worker1_pid begin
            asynctimedwait(10.0) do
                acquire(rsem)
                put!(acquired2, true)
            end
        end == false

        acquired3 = Future()
        @test @fetchfrom worker2_pid begin
            asynctimedwait(10.0) do
                acquire(rsem)
                put!(acquired3, true)
            end
        end == false

        conditions_hit() = acquired1 + isready(acquired2) + isready(acquired3)

        sleep(10)

        @test conditions_hit() == 0
        @test asynctimedwait(10.0; kill=true) do
            release(rsem)
        end

        sleep(2)

        @test conditions_hit() == 1
        @test asynctimedwait(10.0; kill=true) do
            release(rsem)
        end

        sleep(2)

        @test conditions_hit() == 2
        @test asynctimedwait(10.0; kill=true) do
            release(rsem)
        end

        sleep(2)

        @test conditions_hit() == 3
        @test acquired1
        @test isready(acquired2)
        @test isready(acquired3)
    end
end

end


text:
### A Pluto.jl notebook ###
# v0.11.14

using Markdown
using InteractiveUtils

# ╔═╡ cbcf36de-f360-11ea-0c7f-719e93324b27
a = 1

# ╔═╡ d71c5ee2-f360-11ea-2753-a132fa41871a
b = 2

# ╔═╡ d8f5a4f6-f360-11ea-043d-47667f6a7e76
c = 3

# ╔═╡ dcd9ebb8-f360-11ea-2050-fd2e11d27c6d
a + b + c

# ╔═╡ Cell order:
# ╠═cbcf36de-f360-11ea-0c7f-719e93324b27
# ╠═d71c5ee2-f360-11ea-2753-a132fa41871a
# ╠═d8f5a4f6-f360-11ea-043d-47667f6a7e76
# ╠═dcd9ebb8-f360-11ea-2050-fd2e11d27c6d


text:
#!/usr/bin/env julia
#
# Run:
#   julia times.jl
#
using Printf

for i in 2:9
    @printf("%4d %4d %4d %4d %4d %4d %4d %4d\n",
        i*2, i*3, i*4, i*5, i*6, i*7, i*8, i*9)
end

max_stars_repo_name: sergev/vak-opensource

max_issues_repo_name: sergev/vak-opensource

max_forks_repo_name: sergev/vak-opensource


text:
using Documenter, DataTables

makedocs(
	modules = [DataTables],
    sitename = "DataTables.jl",
    analytics="UA-132838790-1",
	pages = [
        "Introduction" => "index.md"
    ]
)

deploydocs(
    repo = "github.com/queryverse/DataTables.jl.git"
)


text:
using Documenter, GeometricAlgebra

makedocs(;
    modules=[GeometricAlgebra],
    format=Documenter.HTML(prettyurls = true),
    pages=[
        "Home" => "index.md",
        "Introduction" => "intro.md",
        "API" =>
            "api.md"
        ,
    ],
    repo="https://github.com/serenity4/GeometricAlgebra.jl/blob/{commit}{path}#L{line}",
    sitename="GeometricAlgebra.jl",
    authors="serenity4 <cedric.bel@hotmail.fr>",
)

deploydocs(
    repo = "github.com/serenity4/GeometricAlgebra.jl.git",
)


text:
# For low level cudnn functions that require a pointer to a number
cptr(x,a::DenseCuArray{Float64})=Float64[x]
cptr(x,a::DenseCuArray{Float32})=Float32[x]
cptr(x,a::DenseCuArray{Float16})=Float32[x]

# Conversion between Julia and CUDNN datatypes
cudnnDataType(::Type{Float16})=CUDNN_DATA_HALF
cudnnDataType(::Type{Float32})=CUDNN_DATA_FLOAT
cudnnDataType(::Type{Float64})=CUDNN_DATA_DOUBLE
juliaDataType(a)=(a==CUDNN_DATA_HALF ? Float16 :
                  a==CUDNN_DATA_FLOAT ? Float32 :
                  a==CUDNN_DATA_DOUBLE ? Float64 : error())

tuple_strides(A::Tuple) = _strides((1,), A)
_strides(out::Tuple{Int}, A::Tuple{}) = ()
_strides(out::NTuple{N,Int}, A::NTuple{N}) where {N} = out
function _strides(out::NTuple{M,Int}, A::Tuple) where M
    Base.@_inline_meta
    _strides((out..., out[M]*A[M]), A)
end

# The storage data types for alpha and beta are:
#     float for HALF and FLOAT tensors, and
#     double for DOUBLE tensors.
scalingParameter(T, val) = error("Unknown tensor type $T")
scalingParameter(::Type{Float16}, val) = Ref{Float32}(val)
scalingParameter(::Type{Float32}, val) = Ref{Float32}(val)
scalingParameter(::Type{Float64}, val) = Ref{Float64}(val)