2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Minimax and distribution_explorer to examples. (#620)

* Minimax and distribution_explorer to examples.

* Move minimax to tools.
This commit is contained in:
Nick
2021-05-03 09:12:58 -04:00
committed by GitHub
parent 51bfa96d45
commit 0cd6039cb1
49 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
#include "stdafx.h"
// Copyright Paul A. Bristow & John Maddock 2009, 2010
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
// General Information about an assembly is controlled through the following set of attributes.
// Change these attribute values to modify the information associated with an assembly.
[assembly:AssemblyTitleAttribute("boost_math")];
[assembly:AssemblyDescriptionAttribute("Math Toolkit")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("jmc")];
[assembly:AssemblyProductAttribute("boost_math")];
[assembly:AssemblyCopyrightAttribute("Copyright (c) jmc 2007 - 2010")];
[assembly:AssemblyTrademarkAttribute("")];
[assembly:AssemblyCultureAttribute("")];
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the value or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly:AssemblyVersionAttribute("1.1.*")];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];
// Deprecated:
//[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

View File

@@ -0,0 +1,38 @@
========================================================================
DYNAMIC LINK LIBRARY : boost_math Project Overview
========================================================================
AppWizard has created this boost_math DLL for you.
// Copyright Paul A. Bristow & John Maddock 2009
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
This file contains a summary of what you will find in each of the files that
make up your boost_math application.
boost_math.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
boost_math.cpp
This is the main DLL source file.
boost_math.h
This file contains a class declaration.
AssemblyInfo.cpp
Contains custom attributes for modifying assembly metadata.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,11 @@
// stdafx.cpp : source file that includes just the standard includes
// boost_math.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
// Copyright Paul A. Bristow & John Maddock 2009
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
#include "stdafx.h"

View File

@@ -0,0 +1,54 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently.
// Copyright John Maddock 2007.
// Copyright Paul A. Bristow 2007, 2009, 2010, 2012
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
// Laplace added Aug 2009 PAB, and several others Nov 2010,
// added skew_normal 2012.
#ifdef _MSC_VER
# pragma once
# pragma warning (disable : 4127)
#endif
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
#include <boost/math/distributions/bernoulli.hpp>
#include <boost/math/distributions/beta.hpp>
#include <boost/math/distributions/binomial.hpp>
#include <boost/math/distributions/cauchy.hpp>
#include <boost/math/distributions/chi_squared.hpp>
#include <boost/math/distributions/exponential.hpp>
#include <boost/math/distributions/extreme_value.hpp>
#include <boost/math/distributions/fisher_f.hpp>
#include <boost/math/distributions/gamma.hpp>
#include <boost/math/distributions/geometric.hpp>
#include <boost/math/distributions/hypergeometric.hpp>
#include <boost/math/distributions/inverse_chi_squared.hpp>
#include <boost/math/distributions/inverse_gamma.hpp>
#include <boost/math/distributions/inverse_gaussian.hpp>
#include <boost/math/distributions/laplace.hpp>
#include <boost/math/distributions/logistic.hpp>
#include <boost/math/distributions/lognormal.hpp>
#include <boost/math/distributions/negative_binomial.hpp>
#include <boost/math/distributions/non_central_beta.hpp>
#include <boost/math/distributions/non_central_chi_squared.hpp>
#include <boost/math/distributions/non_central_f.hpp>
#include <boost/math/distributions/non_central_t.hpp>
#include <boost/math/distributions/normal.hpp>
#include <boost/math/distributions/pareto.hpp>
#include <boost/math/distributions/poisson.hpp>
#include <boost/math/distributions/rayleigh.hpp>
#include <boost/math/distributions/students_t.hpp>
#include <boost/math/distributions/skew_normal.hpp>
#include <boost/math/distributions/triangular.hpp>
#include <boost/math/distributions/uniform.hpp>
#include <boost/math/distributions/weibull.hpp>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,63 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon placed first or with lowest ID value becomes application icon
LANGUAGE 9, 2
#pragma code_page(1252)
1 ICON "app.ico"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
"\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,255 @@
// Copyright John Maddock 2007.
// Copyright Paul A. Bristow 2007, 2009, 2012.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
// boost_math.cpp This is the main DLL file.
//#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
//#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
// These are now defined in project properties
// to avoid complications with pre-compiled headers:
// "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
// "BOOST_MATH_OVERFLOW_ERROR_POLICY="errno_on_error""
// so command line shows:
// /D "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
// /D "BOOST_MATH_OVERFLOW_ERROR_POLICY="errno_on_error""
#include "stdafx.h"
#ifdef _MSC_VER
# pragma warning(disable: 4400) // 'const boost_math::any_distribution ^' : const/volatile qualifiers on this type are not supported
# pragma warning(disable: 4244) // 'argument' : conversion from 'double' to 'unsigned int', possible loss of data
# pragma warning(disable: 4512) // assignment operator could not be generated
// hypergeometric expects integer parameters.
# pragma warning(disable: 4127) // constant
#endif
#include "boost_math.h"
namespace boost_math
{
any_distribution::any_distribution(int t, double arg1, double arg2, double arg3)
{
TRANSLATE_EXCEPTIONS_BEGIN
// This is where all the work gets done:
switch(t) // index of distribution to distribution_info distributions[]
{ // New entries must match distribution names, parameter name(s) and defaults defined below.
case 0:
this->reset(new concrete_distribution<boost::math::bernoulli>(boost::math::bernoulli(arg1)));
break;
case 1:
this->reset(new concrete_distribution<boost::math::beta_distribution<> >(boost::math::beta_distribution<>(arg1, arg2)));
break; // Note - no typedef, so need explicit type <> but rely on default = double.
case 2:
this->reset(new concrete_distribution<boost::math::binomial_distribution<> >(boost::math::binomial_distribution<>(arg1, arg2)));
break; // Note - no typedef, so need explicit type <> but rely on default = double.
case 3:
this->reset(new concrete_distribution<boost::math::cauchy>(boost::math::cauchy(arg1, arg2)));
break;
case 4:
this->reset(new concrete_distribution<boost::math::chi_squared>(boost::math::chi_squared(arg1)));
break;
case 5:
this->reset(new concrete_distribution<boost::math::exponential>(boost::math::exponential(arg1)));
break;
case 6:
this->reset(new concrete_distribution<boost::math::extreme_value>(boost::math::extreme_value(arg1)));
break;
case 7:
this->reset(new concrete_distribution<boost::math::fisher_f >(boost::math::fisher_f(arg1, arg2)));
break;
case 8:
this->reset(new concrete_distribution<boost::math::gamma_distribution<> >(boost::math::gamma_distribution<>(arg1, arg2)));
break;
case 9:
this->reset(new concrete_distribution<boost::math::geometric_distribution<> >(boost::math::geometric_distribution<>(arg1)));
break;
case 10:
this->reset(new concrete_distribution<boost::math::hypergeometric_distribution<> >(boost::math::hypergeometric_distribution<>(arg1, arg2, arg3)));
break;
case 11:
this->reset(new concrete_distribution<boost::math::inverse_chi_squared_distribution<> >(boost::math::inverse_chi_squared_distribution<>(arg1, arg2)));
break;
case 12:
this->reset(new concrete_distribution<boost::math::inverse_gamma_distribution<> >(boost::math::inverse_gamma_distribution<>(arg1, arg2)));
break;
case 13:
this->reset(new concrete_distribution<boost::math::inverse_gaussian_distribution<> >(boost::math::inverse_gaussian_distribution<>(arg1, arg2)));
break;
case 14:
this->reset(new concrete_distribution<boost::math::laplace_distribution<> >(boost::math::laplace_distribution<>(arg1, arg2)));
break;
case 15:
this->reset(new concrete_distribution<boost::math::logistic_distribution<> >(boost::math::logistic_distribution<>(arg1, arg2)));
break;
case 16:
this->reset(new concrete_distribution<boost::math::lognormal_distribution<> >(boost::math::lognormal_distribution<>(arg1, arg2)));
break;
case 17:
this->reset(new concrete_distribution<boost::math::negative_binomial_distribution<> >(boost::math::negative_binomial_distribution<>(arg1, arg2)));
break;
case 18:
this->reset(new concrete_distribution<boost::math::non_central_beta_distribution<> >(boost::math::non_central_beta_distribution<>(arg1, arg2, arg3)));
break;
case 19:
this->reset(new concrete_distribution<boost::math::non_central_chi_squared_distribution<> >(boost::math::non_central_chi_squared_distribution<>(arg1, arg2)));
break;
case 20:
this->reset(new concrete_distribution<boost::math::non_central_f_distribution<> >(boost::math::non_central_f_distribution<>(arg1, arg2, arg3)));
break;
case 21:
this->reset(new concrete_distribution<boost::math::non_central_t_distribution<> >(boost::math::non_central_t_distribution<>(arg1, arg2)));
break;
case 22:
this->reset(new concrete_distribution<boost::math::normal_distribution<> >(boost::math::normal_distribution<>(arg1, arg2)));
break;
case 23:
this->reset(new concrete_distribution<boost::math::pareto>(boost::math::pareto(arg1, arg2)));
break;
case 24:
this->reset(new concrete_distribution<boost::math::poisson>(boost::math::poisson(arg1)));
break;
case 25:
this->reset(new concrete_distribution<boost::math::rayleigh>(boost::math::rayleigh(arg1)));
break;
case 26:
this->reset(new concrete_distribution<boost::math::skew_normal>(boost::math::skew_normal(arg1, arg2, arg3)));
break;
case 27:
this->reset(new concrete_distribution<boost::math::students_t>(boost::math::students_t(arg1)));
break;
case 28:
this->reset(new concrete_distribution<boost::math::triangular>(boost::math::triangular(arg1, arg2, arg3)));
break;
case 29:
this->reset(new concrete_distribution<boost::math::uniform>(boost::math::uniform(arg1, arg2)));
break;
case 30:
this->reset(new concrete_distribution<boost::math::weibull>(boost::math::weibull(arg1, arg2)));
break;
default:
// TODO Need some proper error handling here?
BOOST_MATH_ASSERT(0);
}
TRANSLATE_EXCEPTIONS_END
} // any_distribution constructor.
struct distribution_info
{
const char* name; // of distribution.
const char* first_param; // Parameters' name like "degrees of freedom",
const char* second_param; // if required, else "",
const char* third_param; // if required, else "".
// triangular and non-centrals need 3 parameters.
// (Only the Bi-Weibull would need 5 parameters?)
double first_default; // distribution parameter value, often 0, 0.5 or 1.
double second_default; // 0 if there isn't a second argument.
// Note that defaults below follow default argument in constructors,
// if any, but need not be the same.
double third_default; // 0 if there isn't a third argument.
};
distribution_info distributions[] =
{ // distribution name, parameter name(s) and default(s)
// Order must match any_distribution constructor above!
// Null string "" and zero default for un-used arguments.
{ "Bernoulli", "Probability", "", "",0.5, 0, 0}, // case 0
{ "Beta", "Alpha", "Beta", "", 1, 1, 0}, // case 1
{ "Binomial", "Trials", "Probability of success", "", 1, 0.5, 0}, // case 2
{ "Cauchy", "Location", "Scale", "", 0, 1, 0}, // case 3
{ "Chi_squared", "Degrees of freedom", "", "", 1, 0, 0}, // case 4
{ "Exponential", "lambda", "", "", 1, 0, 0}, // case 5
{ "Extreme value", "Location", "Scale", "", 0, 1, 0}, // case 6
{ "Fisher-F", "Degrees of freedom 1", "Degrees of freedom 2", "", 1, 1, 0}, // case 7
{ "Gamma (Erlang)", "Shape", "Scale", "", 1, 1, 0}, // case 8
{ "Geometric", "Probability", "", "", 1, 0, 0}, // case 9
{ "HyperGeometric", "Defects", "Samples", "Objects", 1, 0, 1}, // case 10
{ "InverseChiSq", "Degrees of Freedom", "Scale", "", 1, 1, 0}, // case 11
{ "InverseGamma", "Shape", "Scale", "", 1, 1, 0}, // case 12
{ "InverseGaussian", "Mean", "Scale", "", 1, 1, 0}, // case 13
{ "Laplace", "Location", "Scale", "", 0, 1, 0}, // case 14
{ "Logistic", "Location", "Scale", "", 0, 1, 0}, // case 15
{ "LogNormal", "Location", "Scale", "", 0, 1, 0}, // case 16
{ "Negative Binomial", "Successes", "Probability of success", "", 1, 0.5, 0}, // case 17
{ "Noncentral Beta", "Shape alpha", "Shape beta", "Non-centrality", 1, 1, 0}, // case 18
{ "Noncentral ChiSquare", "Degrees of Freedom", "Non-centrality", "", 1, 0, 0}, // case 19
{ "Noncentral F", "Degrees of Freedom 1", "Degrees of Freedom 2", "Non-centrality", 1, 1, 0}, // case 20
{ "Noncentral t", "Degrees of Freedom", "Non-centrality", "", 1, 0, 0}, // case 21
{ "Normal (Gaussian)", "Mean", "Standard Deviation", "", 0, 1, 0}, // case 22
{ "Pareto", "Location", "Shape","", 1, 1, 0}, // case 23
{ "Poisson", "Mean", "", "", 1, 0, 0}, // case 24
{ "Rayleigh", "Shape", "", "", 1, 0, 0}, // case 25
{ "Skew Normal", "Location", "Shape", "Skew", 0, 1, 0}, // case 27 (defaults to Gaussian).
{ "Student's t", "Degrees of Freedom", "", "", 1, 0, 0}, // case 28
{ "Triangular", "Lower", "Mode", "Upper", -1, 0, +1 }, // case 29 3rd parameter!
// 0, 0.5, 1 also said to be 'standard' but this is most like an approximation to Gaussian distribution.
{ "Uniform", "Lower", "Upper", "", 0, 1, 0}, // case 30
{ "Weibull", "Shape", "Scale", "", 1, 1, 0}, // case 31
};
// How many distributions are supported:
int any_distribution::size()
{
return sizeof(distributions) / sizeof(distributions[0]);
}
// Display name of i'th distribution:
System::String^ any_distribution::distribution_name(int i)
{
if(i >= size())
return "";
return gcnew System::String(distributions[i].name);
}
// Name of first distribution parameter, or null if not supported:
System::String^ any_distribution::first_param_name(int i)
{
if(i >= size())
return "";
return gcnew System::String(distributions[i].first_param);
}
// Name of second distribution parameter, or null if not supported:
System::String^ any_distribution::second_param_name(int i)
{
if(i >= size())
return "";
return gcnew System::String(distributions[i].second_param);
}
// Name of third distribution parameter, or null if not supported:
System::String^ any_distribution::third_param_name(int i)
{
if(i >= size())
return "";
return gcnew System::String(distributions[i].third_param);
}
// default value for first parameter:
double any_distribution::first_param_default(int i)
{
if(i >= size())
return 0;
return distributions[i].first_default;
}
// default value for second parameter:
double any_distribution::second_param_default(int i)
{
if(i >= size())
return 0;
return distributions[i].second_default;
}
// default value for third parameter:
double any_distribution::third_param_default(int i)
{
if(i >= size())
return 0;
return distributions[i].third_default;
}
} // namespace boost_math

View File

@@ -0,0 +1,331 @@
// boost_math.h
// Copyright John Maddock 2007.
// Copyright Paul A. Bristow 2007.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
//#define BOOST_MATH_OVERFLOW_ERROR_POLICY errno_on_error
//#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
// These are now defined in project properties
// "BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"
// "BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error"
// to avoid complications with pre-compiled headers.
#ifdef _MSC_VER
# pragma once
# pragma warning (disable : 4127)
#endif
using namespace System;
#define TRANSLATE_EXCEPTIONS_BEGIN try{
#define TRANSLATE_EXCEPTIONS_END \
}catch(const std::exception& e){ \
System::String^ s = gcnew System::String(e.what());\
InvalidOperationException^ se = gcnew InvalidOperationException(s);\
throw se; \
}
namespace boost_math {
class any_imp
{
public:
// Distribution properties.
virtual double mean()const = 0;
virtual double mode()const = 0;
virtual double median()const = 0;
virtual double variance()const = 0;
virtual double standard_deviation()const = 0;
virtual double skewness()const = 0;
virtual double kurtosis()const = 0;
virtual double kurtosis_excess()const = 0;
virtual double coefficient_of_variation()const = 0;
// Values computed from random variate x.
virtual double hazard(double x)const = 0;
virtual double chf(double x)const = 0;
virtual double cdf(double x)const = 0;
virtual double ccdf(double x)const = 0;
virtual double pdf(double x)const = 0;
virtual double quantile(double x)const = 0;
virtual double quantile_c(double x)const = 0;
// Range & support of x
virtual double lowest()const = 0;
virtual double uppermost()const = 0;
virtual double lower()const = 0;
virtual double upper()const = 0;
};
template <class Distribution>
class concrete_distribution : public any_imp
{
public:
concrete_distribution(const Distribution& d) : m_dist(d) {}
// Distribution properties.
virtual double mean()const
{
return boost::math::mean(m_dist);
}
virtual double median()const
{
return boost::math::median(m_dist);
}
virtual double mode()const
{
return boost::math::mode(m_dist);
}
virtual double variance()const
{
return boost::math::variance(m_dist);
}
virtual double skewness()const
{
return boost::math::skewness(m_dist);
}
virtual double standard_deviation()const
{
return boost::math::standard_deviation(m_dist);
}
virtual double coefficient_of_variation()const
{
return boost::math::coefficient_of_variation(m_dist);
}
virtual double kurtosis()const
{
return boost::math::kurtosis(m_dist);
}
virtual double kurtosis_excess()const
{
return boost::math::kurtosis_excess(m_dist);
}
// Range of x for the distribution.
virtual double lowest()const
{
return boost::math::range(m_dist).first;
}
virtual double uppermost()const
{
return boost::math::range(m_dist).second;
}
// Support of x for the distribution.
virtual double lower()const
{
return boost::math::support(m_dist).first;
}
virtual double upper()const
{
return boost::math::support(m_dist).second;
}
// Values computed from random variate x.
virtual double hazard(double x)const
{
return boost::math::hazard(m_dist, x);
}
virtual double chf(double x)const
{
return boost::math::chf(m_dist, x);
}
virtual double cdf(double x)const
{
return boost::math::cdf(m_dist, x);
}
virtual double ccdf(double x)const
{
return boost::math::cdf(complement(m_dist, x));
}
virtual double pdf(double x)const
{
return boost::math::pdf(m_dist, x);
}
virtual double quantile(double x)const
{
return boost::math::quantile(m_dist, x);
}
virtual double quantile_c(double x)const
{
return boost::math::quantile(complement(m_dist, x));
}
private:
Distribution m_dist;
};
public ref class any_distribution
{
public:
// Added methods for this class here.
any_distribution(int t, double arg1, double arg2, double arg3);
~any_distribution()
{
reset(0);
}
// Is it OK for these to be inline?
// Distribution properties as 'pointer-to-implementations'.
double mean()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->mean();
TRANSLATE_EXCEPTIONS_END
}
double median()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->median();
TRANSLATE_EXCEPTIONS_END
}
double mode()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->mode();
TRANSLATE_EXCEPTIONS_END
}
double variance()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->variance();
TRANSLATE_EXCEPTIONS_END
}
double standard_deviation()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->standard_deviation();
TRANSLATE_EXCEPTIONS_END
}
double coefficient_of_variation()
{ // aka Relative Standard deviation.
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->coefficient_of_variation();
TRANSLATE_EXCEPTIONS_END
}
double skewness()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->skewness();
TRANSLATE_EXCEPTIONS_END
}
double kurtosis()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->kurtosis();
TRANSLATE_EXCEPTIONS_END
}
double kurtosis_excess()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->kurtosis_excess();
TRANSLATE_EXCEPTIONS_END
}
// Values computed from random variate x.
double hazard(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->hazard(x);
TRANSLATE_EXCEPTIONS_END
}
double chf(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->chf(x);
TRANSLATE_EXCEPTIONS_END
}
double cdf(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->cdf(x);
TRANSLATE_EXCEPTIONS_END
}
double ccdf(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->ccdf(x);
TRANSLATE_EXCEPTIONS_END
}
double pdf(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->pdf(x);
TRANSLATE_EXCEPTIONS_END
}
double quantile(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->quantile(x);
TRANSLATE_EXCEPTIONS_END
}
double quantile_c(double x)
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->quantile_c(x);
TRANSLATE_EXCEPTIONS_END
}
double lowest()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->lowest();
TRANSLATE_EXCEPTIONS_END
}
double uppermost()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->uppermost();
TRANSLATE_EXCEPTIONS_END
}
double lower()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->lower();
TRANSLATE_EXCEPTIONS_END
}
double upper()
{
TRANSLATE_EXCEPTIONS_BEGIN
return pimpl->upper();
TRANSLATE_EXCEPTIONS_END
}
// How many distributions are supported:
static int size();
// Display name of i'th distribution:
static System::String^ distribution_name(int i);
// Name of first distribution parameter, or null if not supported:
static System::String^ first_param_name(int i);
// Name of second distribution parameter, or null if not supported:
static System::String^ second_param_name(int i);
// Name of third distribution parameter, or null if not supported:
static System::String^ third_param_name(int i);
// Default value for first parameter:
static double first_param_default(int i);
// Default value for second parameter:
static double second_param_default(int i);
// Default value for third parameter:
static double third_param_default(int i);
private:
any_distribution(const any_distribution^)
{ // Constructor is private.
}
const any_distribution^ operator=(const any_distribution^ d)
{ // Copy Constructor is private too.
return d;
}
// We really should use a shared_ptr here,
// but apparently it's not allowed in a managed class like this :-(
void reset(any_imp* p)
{
if(pimpl)
{ // Exists already, so
delete pimpl;
}
pimpl = p;
}
any_imp* pimpl;
};
}

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2024
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost_math", "boost_math.vcxproj", "{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.ActiveCfg = Debug|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.Build.0 = Debug|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.ActiveCfg = Debug|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.Build.0 = Debug|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.ActiveCfg = Release|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.Build.0 = Release|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.ActiveCfg = Release|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3ECDFDBF-9C5F-4C39-B5E5-581C15299AD1}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}</ProjectGuid>
<Keyword>ManagedCProj</Keyword>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BOOST_MATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BOOST_MATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>../../../..</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="AssemblyInfo.cpp" />
<ClCompile Include="boost_math.cpp" />
<ClCompile Include="Stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="boost_math.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="Stdafx.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AssemblyInfo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="boost_math.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="boost_math.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="app.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,9 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by app.rc
// Copyright Paul A. Bristow & John Maddock 2009
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)

View File

@@ -0,0 +1,322 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
FgAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@@ -0,0 +1,193 @@
namespace distribution_explorer
{
partial class AboutDistributionExplorer
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutDistributionExplorer));
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.logoPictureBox = new System.Windows.Forms.PictureBox();
this.labelProductName = new System.Windows.Forms.Label();
this.labelVersion = new System.Windows.Forms.Label();
this.labelCopyright = new System.Windows.Forms.Label();
this.labelCompanyName = new System.Windows.Forms.Label();
this.textBoxDescription = new System.Windows.Forms.TextBox();
this.okButton = new System.Windows.Forms.Button();
this.tableLayoutPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel
//
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11);
this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 6;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326);
this.tableLayoutPanel.TabIndex = 0;
//
// logoPictureBox
//
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
this.logoPictureBox.InitialImage = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.InitialImage")));
this.logoPictureBox.Location = new System.Drawing.Point(4, 4);
this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
this.logoPictureBox.Size = new System.Drawing.Size(175, 318);
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
//
// labelProductName
//
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelProductName.Location = new System.Drawing.Point(191, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelProductName.Name = "labelProductName";
this.labelProductName.Size = new System.Drawing.Size(361, 21);
this.labelProductName.TabIndex = 19;
this.labelProductName.Text = "Product Name Distribution Explorer";
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelVersion
//
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Location = new System.Drawing.Point(191, 32);
this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(361, 21);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version 1.1";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCopyright
//
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCopyright.Location = new System.Drawing.Point(191, 64);
this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCopyright.Name = "labelCopyright";
this.labelCopyright.Size = new System.Drawing.Size(361, 21);
this.labelCopyright.TabIndex = 21;
this.labelCopyright.Text = "Copyright John Maddock and Paul A. Bristow 2007";
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCompanyName
//
this.labelCompanyName.AutoSize = true;
this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Bottom;
this.labelCompanyName.Location = new System.Drawing.Point(191, 111);
this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCompanyName.Name = "labelCompanyName";
this.labelCompanyName.Size = new System.Drawing.Size(361, 17);
this.labelCompanyName.TabIndex = 22;
this.labelCompanyName.Text = "Company Name";
this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// textBoxDescription
//
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxDescription.Location = new System.Drawing.Point(191, 132);
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4);
this.textBoxDescription.Multiline = true;
this.textBoxDescription.Name = "textBoxDescription";
this.textBoxDescription.ReadOnly = true;
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBoxDescription.Size = new System.Drawing.Size(361, 155);
this.textBoxDescription.TabIndex = 23;
this.textBoxDescription.TabStop = false;
this.textBoxDescription.Text = resources.GetString("textBoxDescription.Text");
//
// okButton
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.okButton.Location = new System.Drawing.Point(452, 295);
this.okButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(100, 27);
this.okButton.TabIndex = 24;
this.okButton.Text = "&OK";
//
// AboutDistributionExplorer
//
this.AcceptButton = this.okButton;
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(580, 348);
this.Controls.Add(this.tableLayoutPanel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "AboutDistributionExplorer";
this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "AboutDistributionExplorer";
this.tableLayoutPanel.ResumeLayout(false);
this.tableLayoutPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
private System.Windows.Forms.PictureBox logoPictureBox;
private System.Windows.Forms.Label labelProductName;
private System.Windows.Forms.Label labelVersion;
private System.Windows.Forms.Label labelCopyright;
private System.Windows.Forms.Label labelCompanyName;
private System.Windows.Forms.TextBox textBoxDescription;
private System.Windows.Forms.Button okButton;
}
}

View File

@@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
namespace distribution_explorer
{
partial class AboutDistributionExplorer : Form
{
public AboutDistributionExplorer()
{
InitializeComponent();
// Initialize the AboutBox to display the product information from the assembly information.
// Change assembly information settings for your application through either:
// - Project->Properties->Application->Assembly Information
// - AssemblyInfo.cs
this.Text = String.Format("About {0}", AssemblyTitle);
this.labelProductName.Text = AssemblyProduct;
this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
this.labelCopyright.Text = AssemblyCopyright;
this.labelCompanyName.Text = AssemblyCompany;
this.textBoxDescription.Text = AssemblyDescription;
}
#region Assembly Attribute Accessors
public string AssemblyTitle
{
get
{
// Get all Title attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
// If there is at least one Title attribute
if (attributes.Length > 0)
{
// Select the first one
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
// If it is not an empty string, return it
if (titleAttribute.Title != "")
return titleAttribute.Title;
}
// If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
}
public string AssemblyVersion
{
get
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
}
public string AssemblyDescription
{
get
{
// Get all Description attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
// If there aren't any Description attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Description attribute, return its value
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
}
}
public string AssemblyProduct
{
get
{
// Get all Product attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
// If there aren't any Product attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Product attribute, return its value
return ((AssemblyProductAttribute)attributes[0]).Product;
}
}
public string AssemblyCopyright
{
get
{
// Get all Copyright attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
// If there aren't any Copyright attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Copyright attribute, return its value
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
}
public string AssemblyCompany
{
get
{
// Get all Company attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
// If there aren't any Company attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Company attribute, return its value
return ((AssemblyCompanyAttribute)attributes[0]).Company;
}
}
#endregion
}
}

View File

@@ -0,0 +1,781 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="logoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02YwAAAAAAADYAAAAoAAAAYAAAAFgAAAABABgAAAAAAAAAAAB0EgAAdBIAAAAAAAAAAAAA////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////N/X0NvbzNvXyNvbzNvXzNvXzNvTyNvbzNvXzNvXz
NvTzNvXzNvbzNvXzNvXzNvXzNvX0Nvb0N/X0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvX0NvXzN/X0Nvb0NvX0NvXzNvXzNvXzNvbzNvXzNvTzNvXzNvXzNvbzNvTyNvXzNvXzNvbz
NvXyNvbzN/X0NvXzN/b0R/b0NvTzNvXzNvX0NvXyNvX0NvXzNvbzNvX0NvXzNvXzNvXzNvTyNvXzNvXz
Nvb0NvXzNvX0N/XzNvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvb0
NvXzN/XzNvX0NvXzNvb0NvXzNvXzNvTyNvXzNvXzNvXzNvX0NvbzNvXzNvb0NvXyNvX0NvXzNvTzNfbz
NvTyNfXzNvXyNvXyNfbzNvXyNvXzNvTyNvX0NvXzNvXzNvXzNvTzNvXyNvb0NvXzNvXzNvXzNvXzNvXz
NvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXz
NvXzNvXzNvb0NvXyNvTzNvXzNvXzNvXzNvX0NvTyNvXzNvXyNfbzNvXyNvXyNvTyNfXzNvb0NvXzN/X0
NfXzNfXzNvTzNfXyNvXzNvXzNvTzNvTzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0
NvbzNvTzNvTzNvXzNvXzNfXyNvTzNfXzNfXzN/X0NvXzNvbzNfXzNvbyNfTyNvTyN/XyNvXzNvTyNvX0
NfXzNvXzNvXzNvTzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXz
NvXzNvXzNvXzNvXzODg4NvXzNvXzNvb0NvXzNvXzODg4NvXzNvXzNvXzODg4Nvb0NvXzNvTzODg4NvXz
NfXzNvX0NvTyNvXzN/XyNvTyNfTyNvXzN/X0NfXzN/XzN/XzNfXzNvXzNfbzNvXzNvXzNvTzNvTyNvXy
Nvb0Nvb0NvXzNvb0N/XzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvXzNvb0Nvb0NvXyNvTyNvTzNvXzNvXzNfbzNvXz
NfXzN/XzN/XzNvXyNvTzNfXzNfTzNvX0NvXzNvTzNvXyNfTzNvTzNfTzNvbzNvb0NfXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNfTzNvTzNfTzNvXyNvTzNvXzNfXyNfTzNvXy
NvXzNfX0NvXzNvX0NvX0NfXzNvb0NvXzNvXzNvTyNvXyNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvb0NvXzNvXzNvXyNvTyNvXzNvXzNvb0NfXzNvX0NvX0NvXzNvXzNvXzN/TyNvXzNvXz
NvTzNvXyNfXzNvXzNfTzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNfXzNvb0NvbzNfTzNvXzNfXzNvXyNvTzNvXzNvXzNvbzNvXyNfbzNvX0NvXzNvXzNvb0NvX0NvXz
NvXzNvXyNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXz
NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXy
NvXzNvXzNvX0Nvb0NvXzNvXzNvX0NvTzNvTyNfXyNfXzNvXzNvbzNvXzNvX0NvXzNvTzNvX0NfXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvX0NvTzNvXzNvX0NvXz
NvbzNvXzNfXzN/bzNfXzNvXzNvTzNvTyNvXyNvXzNvXzNvTyNvbzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzODg4NvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvbzNvTyNvXzNvXzNvXyNvTyNvTzNvTy
NvTzNvTyNvXzNvXzNvXzNvTzNvTzNvTzNvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvb0NvTzNvTzNvTzNvXzNvXzNvXzNvX0Nvb0NfX0NvXzNvXz
NvXzNvXzNvXzNvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNfXzNvb0NvbzNvXzNvXzNvXzNvXzNvTyNfXzNvXzNvTzNfTyNvXyN/XzNvTzNvTyNvbz
Nvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzODg4NvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4NvXzODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
Nvb0NvbzNvTyNvTzN/X0NvX0NvTzNvX0NvXzNfX0NvbzNvb0NvXzNvXzNvTyNvX0NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvTyNvXz
NvXzN/b0NvbzNvXzNvXyNvTzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvX0N/b0NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
NvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/b0NvX0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXyNfTzNfbzNvX0NvXzNvXzNvbzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvbzNvXzNvXzNvX0NvbzNvXzNvX0NvbzNvXyNvXz
NvXzNvTzNvXyNvXzNvb0NvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvX0Nvb0NvXzNvXyNvTzNvXzNvXzNvXyNvTzNfXzNvXzNvb0NfXzNvXzNvXzN/bzNvb0
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvb0N/bzNvXzNvXzNfXzNvb0NfTzNvXzN/bzNvb0NvXzNvXzNvXzNvXyNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXyNvXz
NvXzNvXzNvb0NvTzNvXzNvbzNvXyNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXyNvbz
NvXzNvXzNvX0NvXzNvXzNvTyNvb0Nvb0Nvb0NvX0N/b0Nvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvb0NvXzNvb0N/b0NvX0Nvb0Nvb0Nvb0NvTyNvXzNvXzN/X0NvTzNvXzNvXyNvXzNvXz
NvXzNvTyNvXzNfXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0
NvXzNvXzNvXzNvb0NvXzNfXzNvXzNvTyNvXzNvXzNvXzNvbzNvXzNvXzNvXzNvXzNvX0NvTzNvXzNfXz
NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0
NvXzNfXzNvXzNvTzNvX0NvXzNvXzNvbzNvXzNvbzNvXzNvXzNvXzNvTyNvXzNfXzNvXzNvb0NvXzNvXz
NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
ODg4ODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNfXzNvXzNvTy
NvXzNvXzNvXzNvbzNvXzNvXzNvX0NvXzNvXzNvTyNvb0Nvb0Nvb0NvX0N/b0Nvb0NvXzNvb0NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0N/b0NvX0Nvb0Nvb0Nvb0NvTyNvXzNvXzNvX0NvTz
NvXzNvXyNvXyNvXzNvXzNvXzNvb0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzODg4ODg4
ODg4ODg4ODg4ODg4ODg4NvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4Nvb0NvXzNvXzNvXzNvXyNvbzNvXzNvXzNvb0NvXz
NvXzNvXzNvXyNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXyNvXzNvXzNvXzNvb0NvTzNvXzNvbzNvb0NfXzNvXzNvXzN/bzNvb0
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvb0N/bzNvXzNvXzNfXzNvb0NfTzNvXzNfbzNvXyNvXzNvXzNvTzNvXyNvXzNvb0NvX0NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0Nvb0NvXzNvXyNvTz
NvXzNvXzNvXyNvTzNfXzNvXzNfbzNvX0NvXzNvXzNvbzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvbzNvXzNvXzNvX0NfbzNvXz
NvX0NvbzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvX0N/b0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzN/b0NvX0NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNfTzNvXyNfTzNvbzNvb0
NvXzNvXzNvTyNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvX0NvTyNvXzNvXzNvb0NvbzNvXzNvXyNvTzNfTyNvXyN/XzNvTzNvTyNvbz
Nvb0NvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXz
Nvb0NvbzNvTyNvTzN/XzNvXyNfTyNvX0NvXzNfX0NvXzNvXzNvXzNvXzNvXzNvbzNvb0NfXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNvXzNvXz
NvXzNvXzNvXzNfXzNvXzNvTzNfXzNvXzNvXzNvTzNvTzNvTzNvb0ODg4ODg4ODg4NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvb0NvTzNvTzNvTzNvXzNvXzNfXzNvX0
Nvb0NfX0NvTzNvTyNvXyNvXzNvXzNvTyNvbzNvb0ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvbzNvTyNvXzNvXzNvXyNvTyNvTzNvTyNvTzNvTyNfXzNvXz
NvbzNvXzNvX0NvXzNvTzNvX0ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNfXzNvX0NvTzNvXzNvX0NvXzNvbzNvXzNfXzN/bzNfXzNvXzNvX0NvXzNvXyNvb0NvX0NvXz
NvXzNvXyODg4NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXy
NvXzNvXzNvX0Nvb0NvXzNvXzNvX0NvTzNvTyNfXyNvXzNvXzNvTzNvXyNfXzNvXzNfTzNvbzODg4NfXz
NvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NvXzNvXzNvXzNvXzODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NfXzNvXy
NvTzNvXzNvXzNvbzNvXyNfbzNvXzNvX0NvX0NfXzNvb0NvXzNvXzNvTyODg4NvXzNvXzNvb0NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXyNvTyNvXzNvXzNvb0NfXzNvX0NvX0NvXzNvXz
NvXzN/TyNfTzNvX0NvXzNvTzNvb0NfX0NvX0NfTzODg4Nvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNfXzNvb0NvbzNfTzNvX0NfX0Nvb0NvTzNvXzNvX0NfTzNvTyNvb0NfX0N/XzN/Xz
NfXzNvXzNfbzNvXzNvXzNvTzODg4NvXyNvb0Nvb0NvXzNvb0N/XzNvXzNvXzNvXzNvXzNvXzODg4NvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4ODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvXzNvb0
Nvb0NvXyNvTyNvTzNvXzNvXzNfbzNvXzNfXzN/XzN/XzNvXyNvTzNfXzNfTyNvTyN/XyNvXzNvTyNvX0
NfXzNvXzODg4NvTzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0ODg4NvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvTzNvXzNvXz
NfXzNvX0NvTyNvXzN/XyNvTyNfTyNvXzN/X0NfXzNvXzN/X0NfXzNfXzNvTzNfXyODg4ODg4ODg4NvTz
NvbzNvb0NfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNfXzNvb0NvbzNvTzNvTzNvXzNvXzNfXyNvTzNfXz
NfXzN/X0NvXzNvbzNfXzNvTyNvXyNvXyNfTzNvXyNvXzNvTyNvX0NvXzODg4NvXzNvTzNvXyNvb0NvXz
NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvX0NvXzNvXzNvXzNvXzNvXzNvb0NvXyNvTzNvXzNvXzNvXzNvX0NvTyNvXzNvXyNfbzNvXyNvXyNvTy
NfXzNvb0NvTzNvXzNvX0NvXyNvX0NvXzNvbzNvX0NvXzNvXzNvXzNvTyNvXzNvXzNvb0NvXzNvX0N/Xz
NvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvb0NvXzN/XzNvX0NvXz
Nvb0NvXzNvXzNvTyNvXzNvXzNvXzNvX0NvbzNvXzNvX0NvXyNvX0NvXzNvTzNfXzNvTyNfXzN/X0NvTz
NvX0NvbzNvXzNvXzNvTyNvbzNvXzNvXzNvTzNvXzNvbzNvXzNvXzNvXzNvX0Nvb0N/XzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0NvX0NvXzNvXzNvXzNvbzNvXz
NvTzNvXzNvXzNvbzNvTyNvXzNvXzNvbzNvb0NvbzN/X0NvXzN/b0Sfb0NvXyNfTyN/XzNvXyNvbzNfXy
NvXzNvTyNvXyNvXzNvXzNvXzNvTyNvXyNvb0Nvb0NvXzNvb0Nvb0N/XzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzN/XzNvb0Nvb0NvXzNvb0Nvb0NvXyNvTyNvXzNvXzNvXzNvXyNvTy
NvXzNfXyNvbzNvXyN/XzNfTyNvXyN/b0NfXzgvn4N/TzNvXyNvb0NvXzNfXzNvXzNvXyNvTzNvbzNvX0
NfTzNvXzNvXzNvXzN/XyNvb0N/b0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzODg4ODg4NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzN/b0Nvb0N/XyNvXzNvXzNvXzNfTzNvX0NvbzNvTzNvXyNvXzNfXzNvXz
Nvb0NvXyN/TzNvXzWff0p/r5Nvb0NfXzN/X0NvXzNvX0NvTzNvXzNfXzNvXzNvXyN/X0N/XzN/XzNvXz
NvXzN/XzNvb0Nvb0NvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXz
NvXzNvb0Nvb0N/XzNvXzNvXzN/XzN/XzN/X0NvXyNvXzNfXzNvXzNvTzNvX0NvXzN/X0NfXzNvb0PvXz
mPn4rfv6N/XzNvTyNvXzNvb0NfbzNfXyNfTzNvXyNvX0NvXzNvbzNvXzNvXzNvTzNvXzNvXzN/XyNvb0
NvXzNvb0NvXzNvXzNvXzN/XzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzN/XzNvXzNvXzNvXzNvb0NvXzNvb0N/XyNvXz
NvXzNvTzNvXzNvXzNvbzNvXzNvX0NvXyNfTzNfXyNfbzNvb0NvXzNvTyN/Xzd/j2qvr6svv6UPf0NvXz
NfTzNvXyNvTzNvbzNvTzNvbzNvX0NvX0NvTzNvXyNvXzNvXzNvTzNvXzNvXzNvXyNvXzNvXzNvXzNvb0
NvXzNvb0NvXzN/b0NvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXz
NvXzNvXzNvXzNvXzNvXzN/b0NvXzNvb0NvXzNvb0NvXzNvXzNvXzNvXyNvXzNvXzNvTzNvXzNvXzNvXy
NvTzNvX0NvX0NvbzNvTzNvbzNvTzNvXyNfTzNvXzUPf1qPv6r/v6uPv7mfr5QPb0Nvb0NvXzODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4
ODg4ODg4ODg4NvXzNvb0QPb0mfr5rfv6tvz7vfz7q/v6ivr5OPXzNvb0NfXzN/TyN/bzN/XzNfTzNvTz
N/X0NvXzNvXzNvXyNvXzN/XzNvXzNvXzNvXzNvTyNvXyNvb0NvX0Nvb0NvXzNvb0NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvb0
NvX0Nvb0NvXyNvTyNvXzNvXzNvXzN/XzNvXzNvXyNvXzNvXzN/X0NvTzNfTzN/XzN/bzN/TyNfXzNvb0
OPXzivr5q/v6s/z7u/z7w/z8sfv6qfv6c/n3N/XzN/byNvXzNvXyNvTzNvXyN/XzNvTzN/X0NvXzNvTz
NvbzN/X0NfTzNvXzNvTyNvXzNvTyNvXzNvXzNvb0NfXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXz
Nvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNfXzNvb0NvXzNvXzNvTyNvXz
NvTyNvXzNfTzN/X0NvbzNvTzNvXzN/X0NvTzN/XzNvX0NvTzNvXyNvXzN/byN/Xzc/n3qfv6sfv6ufv6
wfz7yPz7t/v6r/v6qPv6Xfb0N/XzNvb0NvXzNvX0NvXzNvX0N/XzNvTzN/XyNvX0NvXzNvXyNvX0NvX0
NvXzNvXzNvXzNvTyNvTzNvXyNvb0NvXzNfXzNvXzNvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvb0NvXzNvXzNvXzNvb0NvXzNvXzNfXzNvXzNvb0NvXyNvTzNvTyNvXzNvXzNvXzNvX0NvX0NvXy
NvXzNvX0N/XyNvTzN/XzNvX0NvXzNvX0NvXzNvb0N/XzXfb2qPv6r/v6t/v6v/z7xvz7zfz8vvz7tvv6
r/v6pfv6VPf0NvXzNvTyNvb0NvTyNvXzNvXyNfTzNvbzNvX0NvX0NvXzNvTzNvXyNvXzNvTzNvXzNvTz
NvXzNvTyNvbzNvX0Nvb0NvXzNfXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvb0NvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXz
NvXzNvXzNfXzNvXzNvb0NvX0NvbzNvTyNvXzNvTzNvXzNvTzNvXzNvXyNvTzNvXzNvX0NvX0NvbzNfTz
NvXyNvXzNvTyNvb0NvTyNvXzVPf2pfv6r/v7tvv6vvz7xfz7zPz80vz8w/v7vPv6tfv6rvv7ovv6UPb1
NvXzNvb0Nvb0NvX0NvTzN/XzNvXzNvTzNvbzNfXzN/XzN/bzNvXzNvX0NvXzNvXzNvXzNvTzNfTzNvTy
NvbzNvX0Nvb0NvXzNvb0Nvb0NvXzNvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXz
NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvXzNvb0Nvb0NvXzNvb0NvX0
NvbzNvTyNfTzNvTzNvXzNvXzNvXzNvX0NvXzN/bzN/XzNfXzNvbzNvTzNvXzN/XzNvTzNvX0Nvb0Nvb0
NvXzUPb1ovv6rvv7tfv6vPv6w/v7yvz80Pz81/38yfz8wvv7u/v6tPv6rfv6ofr5Tvb0NvXzNvTyNvXz
NvTyN/TzNvXzNvX0NvbzNvXzNvXyNvX0NvTyNvTzNvX0NvXzNfX0NvXzNvTzNvXzNvXzNvTyNvbzNvXy
NvXzNvb0NvXzNvb0Nvb0NvXzNvXzNvXzNvXzNvb0NvXzNvXzNvXzNvX0Nvb0NvXzNvXzNvXzNvb0NvX0
NvXzNvXzNvXzNvb0NvXzNvXzNvXzNvXzNvb0Nvb0NvXzNvb0NvXzNvXyNvbzNvTyNvXzNvXzNvTzNvXz
NfX0NvXzNvX0NvTzNvTyNvX0NvXyNvXzNvbzNvX0NvXzN/TzNvTyNvXzNvTyNvXzTvb0oPr5rfv6tPv6
u/v6wvv7yfz80Pz81v392/39z/z8yPz8wvz8u/z7tPv7rfv6n/r5TPb0NvXzNvb0NvXzN/X0NfTzNvXz
NfTyNvbzNvXzNfXyNvXzNvXzNvTyNfXyNvb0NvXzNvXzNvXzNvX0NvTzNfTyNvXzNvTyNvbzNvb0Nvb0
NvXzNvXzNvXzNfXzNvXzNvb0NvXzNvXzNvb0NvXzNvXzNvXzODg4ODg4ODg4NvXzNvb0NvXzNvXzNvb0
NvXzNfXzNvXzNvXzNvXzNvb0Nvb0NvbzNvTyNvXzNfTyNvTzNvX0NvXzNvXzNvXzNvb0NfXyNvTyNvXz
NvXzNfXyNvXzNvbzNfTyNvXzNfTzN/X0NvXzNvb0NvXzTPb0n/r5rfv6tPv7u/z7wvz8yPz8z/z81f39
2/394P7+1P39z/39yf38wfz7u/z7tPv7rfv6ovv6Wff0N/XzN/TyNfbzNvTyNvTzNfXzNvX0NfTzNvbz
NvXzNvX0NvXzNvTzNvTzNvbzNvXyNvXzNfX0NvXzNvXzNvXzNvTyNvXzNvXzNvTzNvXyNfXyNvb0NvXz
Nvb0NvXzNvb0NvXzNvX0Nvb0NfXzNfXzNfXzODg4NfXzNvb0NvX0NvXzNvb0NvXzNvb0NvXzNvb0NfXy
NvXyNvTzNvXzNvXzNvTyNvXzNvXzNvXzNfX0NvXzNvXyNvbzNvTzNvTzNvXzNvX0NvXzNvbzNfTzNvX0
NfXzNvTzNvTyNfb0N/TyN/XzWff0ovv6rfv6tPv7u/z7wfz7yf38z/391P392v393/7+5P7+2f381f39
zvz8yPz7wfz7u/z7tPv6rvv6p/v6Zvf1NfXzNvb0Nvb0N/XzNvbyNvbzNvXzNvXyNvTzNvXyNvXyNfXz
NvXzNvXzNvTzNvbzNvb0NvX0NfXzNvXzNvXzNvTzNvXzNvTzNfXzNvXzNvTzNvTyNvbzNvXyN/bzNvXy
Nvb0Nvb0NvXzNvXzNvXzODg4NvXzNvb0Nvb0NvXyN/bzNvXyNvbzNvTyNvTzNvXzNfXzNvTzNvXzNvTz
NvXzNvXzNfXzNvX0Nvb0NvbzNvTzNvXzNvXzNfXzNvXyNvXyNvTzNvXyNvXzNvbzNvbyN/XzNvb0Nvb0
NfXzZvf1p/v6rvv6tPv6u/z7wfz7yPz7zvz81f392f383/794/7+5/793v382f381Pz8zvz8yf38wvz8
vPz7tfv6r/v6p/r6c/n3N/XzNvTyNfTzNvXyNfX0NvbzNfXzNvX0NvX0NfTzNfbzN/XyNfX0NvX0NvXz
NvTzNfXyNvb0NvXzNvX0NfX0NvXzNvTzNfXzNvXzNvX0NvTyNvXzNvXzNvXzNvXzNvXzNvTyNvTzNvXz
NvXzODg4NvTzNvTyNvXzNvXzNvXzNvXzNvXzNvTyNvX0NvXzNfXzNvTzNvXzNfX0NvX0NvXzNvb0NfXy
NvTzNvXzNfTzNfX0N/XyNfbzNfTzNvX0NvX0NfXzNvbzNfX0NvXyNfTzNvTyN/Xzc/n3p/r6r/v6tfv6
vPz7wvz8yf38zvz81Pz82f393v394v395v396v794v393v382f381P39z/39yPz7w/z8vfz7t/z7r/v6
qfv6ivn5Qvb0NvXzNvTyNfXzNvTyNfTyNvTzNvXzNvXyN/TzNvTzN/bzN/X0NfXzNvXzNvXzN/bzNvTz
NvXyNvXyNvXzNvXzNvX0NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvTzNvXzODg4NvXzNvXz
NvXzNvXzNvXzNvXzNvXzNvXzNvXzNvXzNvX0NvXzNvXzNvX0NvXyNvTzN/bzNvXzNvXzNfXzN/X0N/bz
NvTzN/TzNvXyNvXzNvTzNfTyNvTyNfXzNvTyNvXzQvb0ivn5qfv6r/v6t/z7vfz7w/z8yPz8z/391P39
2f393v394v395v396v7+7f7+5v394v393v382v791P38z/z8yfz8xPz8vvz7t/v6svz7rPv6oPv6W/f0
NfXzNvb0NfTzNvTyNfX0NvTzNvXzNvXzNfXyN/XzN/b0NfXzNvX0NvXzNvXzNfXzNvXzNfbzNvTzNfXz
NvXyNvb0NfXzNvb0NvTzNvX0NfXzNvXzNvXzNvXzNvXzNvX0Nvb0ODg4NvXzNvXzNvX0NvXzNfX0NvX0
NvTzNvb0NfXzNvb0NvXyNfXzNvTzNfbzNvXzNfXzNvXzNvXzNvX0NfXzN/b0N/XzNfXyNvXzNvXzNvTz
NfX0NvTyNfTzNvb0NfXzW/f0oPv6rPv6svz7t/v6vvz7xPz8yfz8z/z81P382v793v394v395v396v7+
7f7+8f/+6v7+5v394v393v792v391f380Pz8y/38xfz7v/z7uvz7s/v6rvv7p/v6ffj3PfXzNvXzN/b0
NvXzNfTyNvXyNvTzNvXzNvXzNvX0NfXzNvb0NvbzNvXzN/X0Nvb0NvXzNfXzNvXzNvXzNvbzNvTyNvbz
NfXyNvXyNvb0Nvb0NvXyN/X0NvXzNvX0Nvb0ODg4NvXzN/X0NvXyNvb0Nvb0NvXyNfXyNvbzNvTyNvbz
NvXzNvXzNfXzNvXzNvb0N/X0NvXzNvbzNvb0NfXzNvX0NvXzNvXzNvTzNvXyNfTyNvXzN/b0NvXzPfXz
ffj3p/v6rvv7s/v6uvz7v/z7xfz7y/380Pz81f392v393v794v395v396v7+7v7+8f/+8//+7f7+6v7+
5/7+4/793/792/391v380f38zPz8xvz7wfv7u/v7tvv7sPv7qvr5mvn4X/f1NfXzNvTyNvTyNfXzNfXz
NvX0Nvb0Nvb0NvXzNvX0NvXzNvbzNfbzNvXzNvXyNfXyNvX0NfTzNvXzNfTyNfXzNvX0NvTzNfTzNvTz
NvbzNvTzNvbzNvb0NvTzODg4NvbzNvTzNvbzNvTzNfTzNvTzNvX0NfXzNfTyNvXzNfTzNvX0NfXyNvXy
NvXzNfbzNvbzNvXzNvX0NvXzNvb0Nvb0NvX0NfXzNfXzNvTyNvTyNfXzX/f1mvn4qvr5sPv7tvv7u/v7
wfv7xvz7zPz80f391v382/393/794/7+5/7+6v7+7f7+8f/+8//+9f//8f/+7f7+6v795/795P7+4P79
2/391/380vz8zfz8yfz8w/z7vfv7uPv7svv6rfr6p/r5jvr5S/b0NfXzNvTyNfTzNfbzNfXzN/X0Nvbz
NvTzN/XzNfXzNvXyNvX0NvTzNfTzNvbzNfXzNvbzNvX0NvX0Nvb0NfXzNvXzNvXzNvXzNvX0NvXzNvX0
NvX0ODg4NvXzNvX0NvXzNvX0NvXzNfXzNvb0NvX0NvX0NvbzNfXzNvbzNfTzNvTzNvX0NvXyNfXzN/Xz
NvTzNvbzN/X0NfXzNfbzNfTzNvTyNfXzS/b0jvr5p/r5rfr6svv6uPv7vfv7w/z8yfz8zfz80vz81/38
2/394P7+5P7+5/796v797f7+8f/+8//+9f//9///8/7+8f7+7v7+6/7+6P7+5f7+4f793f792P390/z8
z/z8yvz8xfz7wPv7u/z7tfv6sfv7q/v6p/v6e/j2Q/b0NfTzNvb0NvTyNvbzNvXzNvX0NvTyNvTzNvXz
NfbzNfXyNvX0NvXyNvX0NvbzNvbzNfTzNvb0NvXzNfbzNvbzNvbzNvXzNvbzODg4ODg4ODg4NvbzNvXz
NvbzNvbzNfbzNvXzNvb0NfTzNvbzNvbzNvX0NvXyNvX0NfXyNfbzNvXzNvTzNvTyNvX0NvXzNvbzNvTy
Nvb0NfTzQ/b0e/j2p/v6q/v6sfv7tfv6u/z7wPv7xfz8yvz8z/z80/z82P393f794f7+5f7+6P7+6/7+
7v7+8f7+8/7+9f//9///+f//9f/+8/7+8P7+7v7+7P7+6f7+5v7+4v793v392v391v390f38zPz8yPz7
w/z7vvz7uvz7tfz7r/v6qvv6pvr6fvj3TPb1NfXzNfb0N/byN/TzN/bzNfXzNfXyNvTyNvbzNfb0NfXy
NvXzNfXyNvX0NvX0NvXyNvX0NfTzNfXzNvbzNvb0NvbzNvb0Nvb0ODg4NvbzNvb0NvbzNfXzNfTzNvX0
NvXyNvX0NvX0NfXyNvXzNfXyNfb0NvbzNvTyNfXyNfXzN/bzN/TzN/byNfb0NfXzTPb1fvj3pvr6qvv6
r/v6tfz7uvz7vvz7w/z7yPz8zPz80f381v392v393v394v795v7+6f7+7P7+7v7+8P7+8/7+9f//9///
+f//+v//9/7+9f7+9P//8f7+7/7+7f7+6v7+5v7+4/7+3/392/391/381P38z/z8y/38xvz7wfz7vfv7
ufz7tPv7r/v6qvr6p/v6ivr5V/f1NvXzNvXzNvb0Nvb0NvXzNfXzNfXzNvX0NvTyNvb0NvTzNfbzNvb0
NvXzNfXzNvXzNvbzNvbzNfXzNvXyNvX0NvX0NvX0NvXyNfXzNvbzNvbzNvXzNfXzNvXzNvb0NfbzNvTz
Nvb0NvTyNvX0NfXzNfbzNvXzNvb0Nvb0NvXzNvXzV/f1ivr5p/v6qvr6r/v6tPv7ufz7vfv7wfz7xvz7
y/38z/z81P381/382/393/394/7+5v7+6v7+7f7+7/7+8f7+9P//9f7+9/7++P//+v//+///+P7++P//
9v//9P7+8v7+8P7+7v7+6v795/395f7+4f393v792v391v390v38zv38yfz7xfz8wPv7vfz7ufz7tPv6
sPv6rPv6qPv6mvv6cff2Tvb0NfXzNvXzNvTyN/b0NfTzNvXzNvXzNvXzNvXzNvX0N/X0NvX0Nvb0Nfb0
Nvb0NvbzNvTzNvTzNvb0NvTzNvTzNvbzNvb0Nfb0Nvb0NvX0N/X0NvX0NvXzNvXzNvXzNvXzNfTzN/b0
NvTyNvXzNfXzTvb0cff2mvv6qPv6rPv6sPv6tPv6ufz7vfz7wPv7xfz8yfz8zv380v381v392v393v79
4f395f7+5/396v797v7+8P7+8v7+9P7+9v//+P//+P7++v//+////P//+v//+f//+P//9v7+9f7+8///
8f7+7v7+7P7+6f7+5v394v393/393P392P381Pz80f39zf38yf38xfz8wfz8vfv7ufv6tvz7svv7rvv6
qvr6p/v6l/r5b/f2UPb1OPTyN/XzNfX0NvTyNfTyNvTyNfb0NvXzNfXzN/XzNvXzNvXzNvXzNfXzNfXz
N/b0NfXzNfXzNvXzNvXzNvXzN/XzNfXzNvXzNfb0NvTyNfTyNvTyNfX0N/XzOPTzUPb1bfn3l/r5p/v6
qvr6rvv6svv7tvz7ufv6vfv7wfz8xfz8yf38zf380f391Pz82P383P393/394v395v396f7+7P7+7v7+
8f7+8///9f7+9v7++P//+f//+v//+////P///P//+/7++v7++f//+P7+9///9v//9P//8f7+7/7+7f7+
6v7+6P7+5f7+4v793v392/791/381P390P38zf38yfz8xfz8wfv7vvz7u/z8t/v7tPz7sPv6rfv6q/v6
p/v6ovr5hvj3a/f1Ufb1OvXzNfXzN/XzNvXzNfTyNvb0Nvb0NfTyNfb0N/TyN/b0N/b0N/b0N/TyNfb0
NfTyNvb0Nvb0NfT0NvXzN/XzNfXzOvXzUfb1a/f1hvj3ovr5p/v6q/v6rfv6sPv6s/v6t/v7uvv7vvz7
wfv7xfz8yfz8zf380P381P391/392/793v394v795f7+6P7+6v7+7f7+7/7+8f7+9P//9v//9///+P7+
+f//+v7++/7+/P///P///f///P7+/P//+///+f7++f//9/7+9v//9P7+8v7+8P7+7v7+7P7+6v7+5v39
5P7+4f393v392v391/391P390f39zfz8yvz8x/z8xPz8wPv7vPv7ufv6t/z7tPv7sfv6rvv6rPv6qvv6
p/v6pfr5l/n4ivn3dff2Zvf1Wff1Svb0S/b0S/b0Qvb0NvXzNvXzNvXzQvb0S/b0S/b0Svb1Wff1Zvf1
dff2ivn3l/n4pfr5p/v6qvv6rPv6rvv6sfv6tPv7t/z7ufv6vPv7wPv7w/v7x/z8yvz8zfz80f391P39
1/392v393v394f395P7+5v396v7+7P7+7v7+8P7+8v7+9P7+9v//9/7++f//+f7++////P///P7+/P7+
/f///f7+/f///f///P//+///+v//+P7++P/+9v7+9f7+8/7+8f7+8P//7v7+6/7+6f7+5v7+4/394f7+
3v392v382P391f390v39z/z8zPz8yPz8xv38w/z7wPz7vfz7uvv6uPv6tvv6s/v6svv7r/v6rvv6rPv6
q/v6qfr5qPv6qPv6p/v6pvr6pvv6pfr5pfr6pfr5pvv6pvr6p/v6qPv6qPv6qfr6q/v6rPv6rvv6r/v6
svv7s/v6tvv6uPv6uvv6vfz7wPz7w/z7xfz7yPz8zPz8z/380v391f392P392v383v394f7+4/395v7+
6f7+6/7+7v7+8P//8f7+8/7+9f7+9v7++P//+P7++v//+////P///f///f///f///v///v///f///f//
/P///P//+/7++v7++f/++f//9/7+9v//9f//8///8f7+7/7+7f7+6v796f7+5/7+4/394f393/792/39
2f391vz81P390Pz8zv38zP38yPz7xvz7xPz7wfz7v/z7vvz7u/v7uvz7uPz7t/z7tfv7s/v6s/v7svv7
sfv7sPv6sPv7r/v6r/v6r/v6sPv7sPv6sfv7svv7s/v7s/v6tfv7t/z7uPz7uvz7u/z7vvz7v/z7wfz7
xPz7xvz7yPz7zP38zv380Pz81P391v382f392/393/794f394/395/7+6f7+6v797f7+7/7+8f7+8///
9f//9v//9/7++f//+f//+v7++/7+/P///P///f///f///v///v///v///v///f///f///P///f///P//
+///+v//+P7++P7+9///9f//9P7+8v7+8f7+7///7f7+6/7+6f7+5v7+5P794v393/393f392/392P39
1v391P390f39z/38zP38yvz8yf38xvz7xfz8w/z8wvz8wPz7vvz7vvz7vPv7u/v7uvv7uvz7ufv7uvz7
uvz7uvz7ufv7uvz7uvv7u/v7vPv7vvz7vvz7wPz7wvz8w/z8xfz8xvz7yf38yvz8zP38z/380f391P39
1v392P392/393f393/394v395P795v7+6f7+6/7+7f7+7///8f7+8v7+9P7+9f//9///+P7++P7++v//
+////P///f///P///f///f///v///v///v///////v///v///f7+/f///f///P///P//+/7++v7++f7+
+P//+P//9v7+9v//9P//8v/+8f7+7///7f7+6/7+6f395/7+5f394v394f793v393P392/392P391v38
1P390vz80P38z/38zf38zP38yvz8yPz8yP38xvz7xfz7xPz8xPz7xPz8w/z7w/z8w/z8w/z8w/z7xPz8
xPz7xPz8xfz7xvz7yP38yPz8yvz8zP38zf38z/380P380vz81P391v382P392/393P393v394f794v39
5f395/7+6f396/7+7f7+7///8f7+8v/+9P//9v//9v7++P//+P//+f7++v7++/7+/P///P///f///f//
/f7+/v///v///v///////////v7+/v///v///v///f///f///P///f///P//+///+v//+f//+f//+P//
9v//9f7+9P//8v7+8f7+7/7+7v7+7P7+6f396P795v7+5P394v394f793v393f392/392v392P391/39
1f391P380vz80f38z/z8z/z8zvz8zfz8zPz8zP38zPz8zPz8zPz8zPz8zPz8zP38zPz8zfz8zvz8z/z8
z/z80f380vz81P381f391/392P392v392/393f393v394f794v395P395v7+6P796f397P7+7v7+7/7+
8f7+8v7+9P//9f7+9v//+P//+f//+f//+v//+////P///f///P///f///f///v///v///v///v7+////
/////////////////v///v///v///f7+/f///f///P///P7+/P//+///+v//+f//+f//9/7+9v//9v//
9P7+8v7+8v//8P7+7v7+7f7+6/7+6f7+6P795v795f794/394v394P393/393v7+3P392/392v392f79
1/381/391v381f381f391P391P391f391Pz81f391P391P391f391f381v381/391/382f792v392/39
3P393v7+3/394P394v394/395f795v796P7+6f7+6/7+7f7+7v7+8P7+8v//8v7+9P7+9v//9v//9/7+
+f//+f//+v//+////P///P7+/P///f///f///f7+/v///v///v//////////////////////////////
/////v7+/v///v///v///f///f///P7+/P///P///P//+///+v//+f//+f//+P//9v7+9f//9f//8/7+
8f7+8f7+7/7+7v/+7f7+6/796f396f7+5/795/7+5f7+5P7+4/794v794P393/393/393v393f393f79
3P392/392/393P393P393P392/392/393P393f793f393v393/393/394P394v7+4/795P7+5f7+5/7+
5/796f7+6f396/797f7+7v/+7/7+8f7+8f7+8/7+9f//9f//9v7++P//+f//+f//+v//+////P///P//
/P///P7+/f///f///v///v///v///v7+/////////////////////////////////////////////v//
/v///v///v///f///f///P///P///P///P//+///+v//+f//+P//+P//9///9v//9f7+9P7+8///8f7+
8f7+7/797v7+7v7+7P796/7+6v7+6f796P795/795v795v7+5f7+5P794/394/7+4v794/7+4v394v39
4v394v394v394/7+4v794/7+4/395P795f7+5v7+5v7+5/7+6P796f796v7+6/7+7P797v7+7v7+7/79
8f7+8f7+8///9P7+9f7+9v//9///+P//+P//+f//+v//+////P///P///P///P///f///f///v///v//
/v///v///////////////////////////////////////////////////////////////v///v///v//
/f7+/f///f///P///P///P///P//+///+v//+f//+P7++f//+P//9v7+9f7+9f7+9P7+8/7+8v7+8v/+
8f/+7/7+7v7+7f7+7f7+7P796/796v796v7+6v7+6f796f7+6P796P7+6P7+6P7+5/396P7+6P7+6P7+
6P796f7+6f796v7+6v7+6v796/797P7+7f7+7f7+7v7+7/7+8f/+8v/+8v7+8/7+9P7+9f7+9f7+9v7+
+P//+f//+P7++f//+v//+////P///P///P///P///f///f///f7+/v///v///v//////////////////
////////////////////////
</value>
</data>
<data name="logoPictureBox.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
FgAAAABJRU5ErkJggg==
</value>
</data>
<data name="textBoxDescription.Text" xml:space="preserve">
<value>Description: Statistical Distribution Explorer.
Allows calculation, display and save to file
of a wide variety of statistical distributions
with given parameters and values of random variate,
Probability Density, Cumulative Distribution, complement,
and quantiles and critical values.
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
/wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</value>
</data>
</root>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Font Name="Tahoma" Size="8.4" />
<Class Name="distribution_explorer.distexSplash" Collapsed="true">
<Position X="0.5" Y="0.5" Width="1.5" />
<TypeIdentifier>
<FileName>DistexSplash.cs</FileName>
<HashCode>AAAAAACAACAAABQAAACAAAACAAAAAAAAAAAAAAAAAIA=</HashCode>
</TypeIdentifier>
</Class>
</ClassDiagram>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,610 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.IO;
using System.Reflection;
namespace distribution_explorer
{
/// <summary>
/// Main distribution explorer.
/// </summary>
public partial class DistexForm : Form
{
EventLog log = new EventLog();
/// <summary>
/// Main form
/// </summary>
public DistexForm()
{
if (!EventLog.SourceExists("EventLogDistex"))
{
EventLog.CreateEventSource("EventLogDistex", "Application");
}
log.Source = "EventLogDistex";
log.WriteEntry("DistexForm");
InitializeComponent();
Application.DoEvents();
}
private void Form_Load(object sender, EventArgs e)
{ // Load distribution & parameters names, and default values.
try
{
// Create and show splash screen:
this.Hide();
distexSplash frmSplash = new distexSplash();
frmSplash.Show();
frmSplash.Update();
// Now load our data while the splash is showing:
if (boost_math.any_distribution.size() <= 0)
{
MessageBox.Show("Problem loading any distributions, size = " + boost_math.any_distribution.size().ToString());
}
for (int i = 0; i < boost_math.any_distribution.size(); ++i)
{
distribution.Items.Add(boost_math.any_distribution.distribution_name(i));
}
distribution.SelectedIndex = 0; // 1st in array, but could be any other.
// All parameters are made zero by default, but updated from chosen distribution.
parameter1.Text = boost_math.any_distribution.first_param_default(0).ToString();
parameter2.Text = boost_math.any_distribution.second_param_default(0).ToString();
parameter3.Text = boost_math.any_distribution.third_param_default(0).ToString();
//
// Sleep and then close splash;
Thread.Sleep(3000);
frmSplash.Close();
this.Visible = true;
}
catch
{ //
log.WriteEntry("DistexForm_load exception!");
MessageBox.Show("Problem loading distributions, size = " + boost_math.any_distribution.size().ToString());
}
}
private void distribution_SelectedIndexChanged(object sender, EventArgs e)
{
int i = distribution.SelectedIndex; // distribution tab.
parameter1Label.Text = boost_math.any_distribution.first_param_name(i);
parameterLabel1.Text = boost_math.any_distribution.first_param_name(i); // properties tab.
parameter2Label.Text = boost_math.any_distribution.second_param_name(i);
parameter3Label.Text = boost_math.any_distribution.third_param_name(i);
if (boost_math.any_distribution.first_param_name(i).Length.CompareTo(0) != 0)
{ // Actually all the distributions have at least one parameters,
parameter1.Visible = true; // so should always be true.
parameterLabel1.Visible = true;
}
else
{ // If distribution chosen has no parameter name(s) then hide.
parameter1.Visible = false;
parameterLabel1.Visible = false;
}
parameter1.Text = boost_math.any_distribution.first_param_default(i).ToString();
// Update parameter default to match distribution.
if (boost_math.any_distribution.second_param_name(i).Length.CompareTo(0) != 0)
{
parameter2.Visible = true;
parameterLabel2.Visible = true;
parameter2ValueLabel.Visible = true;
}
else
{ // hide
parameter2.Visible = false;
parameterLabel2.Visible = false;
parameter2ValueLabel.Visible = false;
}
parameter2.Text = boost_math.any_distribution.second_param_default(i).ToString();
if (boost_math.any_distribution.third_param_name(i).Length.CompareTo(0) != 0)
{
parameter3.Visible = true;
parameterLabel3.Visible = true;
parameter3ValueLabel.Visible = true;
}
else
{ // hide
parameter3.Visible = false;
parameterLabel3.Visible = false;
parameter3ValueLabel.Visible = false;
}
parameter3.Text = boost_math.any_distribution.third_param_default(i).ToString();
// Update tool tips to show total and supported ranges.
PropertiesTabPage.ToolTipText = "Shows properties and ranges of chosen distribution.";
}
private boost_math.any_distribution dist;
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{ // Display a grid of pdf, cdf... values from user's random variate x value.
try
{
if (e.ColumnIndex == 0)
{ // Clicked on left-most random variate x column to enter a value.
int i = e.RowIndex;
string s = CDF_data.Rows[i].Cells[0].Value.ToString();
double x = double.Parse(s); // Get value of users random variate x.
double pdf = dist.pdf(x); // Compute pdf values from x
double cdf = dist.cdf(x); // & cdf
double ccdf = dist.ccdf(x); // & complements.
CDF_data.Rows[i].Cells[1].Value = pdf; // and display values.
CDF_data.Rows[i].Cells[2].Value = cdf;
CDF_data.Rows[i].Cells[3].Value = ccdf;
}
}
catch (SystemException se)
{
MessageBox.Show("Error in random variable value: " + se.Message, "Calculation Error");
}
}
private void tabPage2_Enter(object sender, EventArgs e)
{ // Properties tab shows distribution's mean, mode, median...
try
{ // Show chosen distribution name, and parameter names & values.
int i = distribution.SelectedIndex;
distributionValueLabel.Text = boost_math.any_distribution.distribution_name(i).ToString();
parameterLabel1.Text = boost_math.any_distribution.first_param_name(i).ToString();
parameter1ValueLabel.Text = double.Parse(parameter1.Text).ToString();
parameterLabel2.Text = boost_math.any_distribution.second_param_name(i).ToString();
parameter2ValueLabel.Text = double.Parse(parameter2.Text).ToString();
parameterLabel3.Text = boost_math.any_distribution.third_param_name(i).ToString();
parameter3ValueLabel.Text = double.Parse(parameter3.Text).ToString();
// Show computed properties of distribution.
try
{
mean.Text = dist.mean().ToString();
}
catch
{
mean.Text = "Undefined.";
}
try
{
mode.Text = dist.mode().ToString();
}
catch
{
mode.Text = "Undefined.";
}
try
{
median.Text = dist.median().ToString();
}
catch
{
median.Text = "Undefined.";
}
try
{
variance.Text = dist.variance().ToString();
}
catch
{
variance.Text = "Undefined.";
}
try
{
standard_deviation.Text = dist.standard_deviation().ToString();
}
catch
{
standard_deviation.Text = "Undefined.";
}
try
{
skewness.Text = dist.skewness().ToString();
}
catch
{
skewness.Text = "Undefined.";
}
try
{
kurtosis.Text = dist.kurtosis().ToString();
}
catch
{
kurtosis.Text = "Undefined.";
}
try
{
kurtosis_excess.Text = dist.kurtosis_excess().ToString();
}
catch
{
kurtosis_excess.Text = "Undefined.";
}
try
{
coefficient_of_variation.Text = dist.coefficient_of_variation().ToString();
}
catch
{
coefficient_of_variation.Text = "Undefined.";
}
rangeLowestLabel.Text = dist.lowest().ToString();
rangeGreatestLabel.Text = dist.uppermost().ToString();
supportLowerLabel.Text = dist.lower().ToString();
supportUpperLabel.Text = dist.upper().ToString();
cdfTabPage.ToolTipText = "Random variate can range from " + rangeLowestLabel.Text
+ " to " + rangeGreatestLabel.Text
+ ",\nbut is said to be supported from " + supportLowerLabel.Text
+ " to " + supportUpperLabel.Text
+ "\nWithin this supported range the PDF and CDF have values between 0 and 1,\nbut below " + supportLowerLabel.Text + " both are zero, and above "
+ supportUpperLabel.Text + " both are unity";
}
catch (SystemException se)
{
MessageBox.Show(se.Message, "Calculation Error!");
}
}
private void properties_tab_Deselecting(object sender, TabControlCancelEventArgs e)
{
try
{
if (e.TabPageIndex == 0)
{ // Update selected distribution object:
double x = double.Parse(parameter1.Text);
double y = double.Parse(parameter2.Text);
double z = double.Parse(parameter3.Text);
int i = distribution.SelectedIndex;
dist = new boost_math.any_distribution(i, x, y, z);
// Clear existing CDF data (has to be a better way?):
while (CDF_data.Rows.Count > 1)
{
CDF_data.Rows.Remove(CDF_data.Rows[0]);
}
// Clear existing quantile data (has to be a better way?):
while (QuantileData.Rows.Count > 1)
{
QuantileData.Rows.Remove(QuantileData.Rows[0]);
}
}
}
catch (SystemException se)
{
MessageBox.Show(se.Message +
" Please check the distribution's parameters and try again.", "Distribution Error");
this.propertiesTab.SelectedIndex = 0;
e.Cancel = true;
}
}
private void QuantileData_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{ // aka Risk & critical values tab.
try
{
if (e.ColumnIndex == 0)
{
int i = e.RowIndex;
string s = QuantileData.Rows[i].Cells[0].Value.ToString();
double x = double.Parse(s);
// Remember x is alpha: 1 - the probability:
double lcv = dist.quantile(x);
double ucv = dist.quantile_c(x);
QuantileData.Rows[i].Cells[1].Value = lcv;
QuantileData.Rows[i].Cells[2].Value = ucv;
}
}
catch (SystemException se)
{
// TODO add some proper handling here!
MessageBox.Show("Error in probability value: " + se.Message, "Calculation Error");
}
}
private void QuantileTab_Enter(object sender, EventArgs e)
{ // Evaluate critical values (quantiles) for pre-chosen risk level.
// and then, optionally, for other user-provided risk levels.
try
{
if (QuantileData.Rows.Count == 1)
{
// Add some defaults:
QuantileData.Rows.Add(5); // 5 Risk levels.
QuantileData.Rows[0].Cells[0].Value = "0.001"; // Risk values as text,
QuantileData.Rows[0].Cells[1].Value = dist.quantile(0.001); // & as double.
QuantileData.Rows[0].Cells[2].Value = dist.quantile_c(0.001);
QuantileData.Rows[1].Cells[0].Value = "0.01";
QuantileData.Rows[1].Cells[1].Value = dist.quantile(0.01); // 99% confidence.
QuantileData.Rows[1].Cells[2].Value = dist.quantile_c(0.01);
QuantileData.Rows[2].Cells[0].Value = "0.05";
QuantileData.Rows[2].Cells[1].Value = dist.quantile(0.05);
QuantileData.Rows[2].Cells[2].Value = dist.quantile_c(0.05);
QuantileData.Rows[3].Cells[0].Value = "0.1";
QuantileData.Rows[3].Cells[1].Value = dist.quantile(0.1);
QuantileData.Rows[3].Cells[2].Value = dist.quantile_c(0.1);
QuantileData.Rows[4].Cells[0].Value = "0.33333333333333333";
QuantileData.Rows[4].Cells[1].Value = dist.quantile(0.33333333333333333);
QuantileData.Rows[4].Cells[2].Value = dist.quantile_c(0.33333333333333333);
}
}
catch (SystemException se)
{
// TODO add some proper handling here!
MessageBox.Show(se.Message, "Calculation Error");
}
}
private void properties_tab_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void tabPage1_Click(object sender, EventArgs e)
{
}
private void CDF_data_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
distexAboutBox DistexAboutBox = new distexAboutBox();
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
DistexAboutBox.ShowDialog();
}
private void DistexForm_Activated(object sender, EventArgs e)
{
}
/// get AssemblyDescription
public string AssemblyDescription
{
get
{
// Get all Description attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
// If there aren't any Description attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Description attribute, return its value
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
}
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
using (StreamWriter sw = new StreamWriter(this.saveFileDialog.FileName))
{ // Write distribution info and properties to file.
sw.WriteLine( AssemblyDescription);
sw.WriteLine("Version " + Assembly.GetExecutingAssembly().GetName().Version.ToString());
// Get parameter names (null "" if no parameter).
int i = distribution.SelectedIndex;
distributionValueLabel.Text = boost_math.any_distribution.distribution_name(i).ToString();
sw.WriteLine(distributionValueLabel.Text + " distribution");
parameterLabel1.Text = boost_math.any_distribution.first_param_name(i).ToString();
parameterLabel2.Text = boost_math.any_distribution.second_param_name(i).ToString();
parameterLabel3.Text = boost_math.any_distribution.third_param_name(i).ToString();
string separator = "\t "; // , or tab or space?
// Write parameter name & value.
sw.WriteLine(parameterLabel1.Text + separator + this.parameter1.Text);
if (boost_math.any_distribution.second_param_name(i).Length.CompareTo(0) != 0)
{ // Is a 2nd parameter.
sw.WriteLine(parameterLabel2.Text + separator + this.parameter2.Text);
}
if (boost_math.any_distribution.third_param_name(i).Length.CompareTo(0) != 0)
{ // Is a 3rd parameter.
sw.WriteLine(parameterLabel3.Text + separator + this.parameter3.Text);
}
sw.WriteLine();
sw.WriteLine("Properties");
// Show computed properties of distribution.
double x = double.Parse(parameter1.Text);
double y = double.Parse(parameter2.Text);
double z = double.Parse(parameter3.Text);
dist = new boost_math.any_distribution(i, x, y, z);
// Note global dist might not have been calculated yet if no of the tabs clicked.
try
{
mean.Text = dist.mean().ToString();
}
catch
{
mean.Text = "Undefined";
}
sw.WriteLine("Mean" + separator + mean.Text);
try
{
mode.Text = dist.mode().ToString();
}
catch
{
mode.Text = "Undefined";
}
sw.WriteLine("mode" + separator + mode.Text);
try
{
median.Text = dist.median().ToString();
}
catch
{
median.Text = "Undefined";
}
sw.WriteLine("Median" + separator + median.Text);
try
{
variance.Text = dist.variance().ToString();
}
catch
{
variance.Text = "Undefined";
}
sw.WriteLine("Variance" + separator + variance.Text);
try
{
standard_deviation.Text = dist.standard_deviation().ToString();
}
catch
{
standard_deviation.Text = "Undefined";
}
sw.WriteLine("Standard Deviation" + separator + standard_deviation.Text);
try
{
skewness.Text = dist.skewness().ToString();
}
catch
{
skewness.Text = "Undefined";
}
sw.WriteLine("Skewness" + separator + skewness.Text);
try
{
coefficient_of_variation.Text = dist.coefficient_of_variation().ToString();
}
catch
{
coefficient_of_variation.Text = "Undefined";
}
sw.WriteLine("Coefficient of variation" + separator + coefficient_of_variation.Text);
try
{
kurtosis.Text = dist.kurtosis().ToString();
}
catch
{
kurtosis.Text = "Undefined";
}
sw.WriteLine("Kurtosis" + separator + kurtosis.Text);
try
{
kurtosis_excess.Text = dist.kurtosis_excess().ToString();
}
catch
{
kurtosis_excess.Text = "Undefined";
}
sw.WriteLine("Kurtosis excess" + separator + kurtosis_excess.Text);
sw.WriteLine();
sw.WriteLine("Range from" + separator + dist.lowest().ToString() + separator +
"to" + separator + dist.uppermost().ToString());
sw.WriteLine("Support from " + separator + dist.lower().ToString() +separator+
"to " + separator + dist.upper().ToString());
sw.WriteLine();
//
sw.WriteLine("Quantiles");
if (QuantileData.Rows.Count == 1)
{ // Add some defaults:
QuantileData.Rows.Add(5); // 5 Risk levels.
QuantileData.Rows[0].Cells[0].Value = "0.001"; // Risk values as text,
QuantileData.Rows[0].Cells[1].Value = dist.quantile(0.001); // & as double.
QuantileData.Rows[0].Cells[2].Value = dist.quantile_c(0.001);
QuantileData.Rows[1].Cells[0].Value = "0.01";
QuantileData.Rows[1].Cells[1].Value = dist.quantile(0.01); // 99% confidence.
QuantileData.Rows[1].Cells[2].Value = dist.quantile_c(0.01);
QuantileData.Rows[2].Cells[0].Value = "0.05";
QuantileData.Rows[2].Cells[1].Value = dist.quantile(0.05);
QuantileData.Rows[2].Cells[2].Value = dist.quantile_c(0.05);
QuantileData.Rows[3].Cells[0].Value = "0.1";
QuantileData.Rows[3].Cells[1].Value = dist.quantile(0.1);
QuantileData.Rows[3].Cells[2].Value = dist.quantile_c(0.1);
QuantileData.Rows[4].Cells[0].Value = "0.33333333333333333";
QuantileData.Rows[4].Cells[1].Value = dist.quantile(0.33333333333333333);
QuantileData.Rows[4].Cells[2].Value = dist.quantile_c(0.33333333333333333);
}
// else have already been calculated by entering the quantile tab.
for (int r = 0; r < QuantileData.Rows.Count-1; r++)
{ // Show all the rows of quantiles, including any optional user values.
sw.WriteLine(QuantileData.Rows[r].Cells[0].Value.ToString() + separator +
QuantileData.Rows[r].Cells[1].Value.ToString() + separator +
QuantileData.Rows[r].Cells[2].Value.ToString());
}
sw.WriteLine();
sw.WriteLine("PDF, CDF & complement(s)");
for (int r = 0; r < CDF_data.Rows.Count-1; r++)
{ // Show all the rows of pdf, cdf, including any optional user values.
sw.WriteLine(CDF_data.Rows[r].Cells[0].Value.ToString() + separator + // x value.
CDF_data.Rows[r].Cells[1].Value.ToString() + separator + // pdf
CDF_data.Rows[r].Cells[2].Value.ToString() + separator + // cdf
CDF_data.Rows[r].Cells[3].Value.ToString());// cdf complement.
}
sw.WriteLine();
}
} // saveFileDialog1_FileOk
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
this.saveFileDialog.ShowDialog();
}
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{ // Same as Save.
this.saveFileDialog.ShowDialog();
}
private void contentsToolStripMenuItem_Click(object sender, EventArgs e)
{ // In lieu of proper help.
string helpText = "\n" + AssemblyDescription +
"\nVersion " + Assembly.GetExecutingAssembly().GetName().Version.ToString() +
"\nA Windows utility to show the properties of distributions " +
"\nand permit calculation of probability density (or mass) function (PDF) " +
"\nand cumulative distribution function (CDF) and complements from values provided." +
"\nQuantiles are also calculated for typical risk (alpha) probabilities" +
"\nand for probabilities provided by the user." +
"\n" +
"\nResults can be saved to text files using Save or SaveAs." +
"\nAll the values on the four tabs are output to the file chosen," +
"\nand are tab separated to assist input to other programs," +
"\nfor example, spreadsheets or text editors." +
"\nNote: when importing to Excel, by default only 10 decimal digits are shown by Excel:" +
"\nit is necessary to format all cells to display the full 15 decimal digits," +
"\nalthough not all computed values will be as accurate as this." +
"\n\nValues shown as NaN cannot be calculated for the value given," +
"\nmost commonly because the value is outside the range for the distribution." +
"\n" +
"\nFor more information, including downloads, see " +
"\nhttp://sourceforge.net/projects/distexplorer/" +
"\n(Note that .NET framework 4.0 and VC Redistribution X86 are requirements for this program.)" +
"\n\nCopyright John Maddock & Paul A. Bristow 2007, 2009, 2010, 2012";
MessageBox.Show("Statistical Distribution Explorer\n" + helpText);
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("New is not yet implemented.");
}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Open is not yet implemented.");
}
private void printToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Print is not yet implemented." +
"\nSave all values to a text file and print that file.");
}
private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Print Preview is not yet implemented." +
"\nSave all values to a text file and print that file.");
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{ // exit DistexForm
this.Close();
}
} // class DistexForm
} // namespace distribution_explorer

View File

@@ -0,0 +1,294 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>284, 17</value>
</metadata>
<metadata name="RandomVariable.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="PDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CCDF.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="RiskLevel.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="LowerCriticalValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="UpperCriticalValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="newToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAQ9JREFUOE+t09lqwkAUBmBfyr5DfY32jaReSOmFCyKCgkKLFrVUBZeKiEbshqRuaNw1
xiXmLxMJBJ0Zc+GBw9zMfDPnHMZmu1ZE35s4zXCqjmC8Al+sgHLjD9y7yGFWPIbecOO45yORtMAEHnxx
JHL1IyKI9JeEXqtMwOl50Q8bSS0l8PzBBPbqAQQxICrgjeapgKZpkJUdBmNZB+y3d/QSnsIZKrDdqZjM
FYj9OR9wB1NngHrQsJC36EkrfIkTPuDyJ84AZbOHNF2j1Z2h9i3xAVKfOUjjZssN2oMFmq0xSkLfOmBu
3E97iurnENlKxzpgbpzwO0Kh1kOyKFoDjHmzVuYYjRmTDZfyWh9Yd/4B2Mz2w1z7EGUAAAAASUVORK5C
YII=
</value>
</data>
<data name="openToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAlpJREFUOE+tk21Ik1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxo
U9Pp5ubUlS5rU9f8rCyjsA+pUCRCTR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2
n+Mij+XLRLLYULdF2pxlEVIDcw0pAsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpa
vwatjPebqCzOprPt8YKQgzFagqL0BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4V
Wm5WM/rVPNN5SjDTLQebZEHNA1wrUvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkG
tcyZptSYzvC7XByx3zQoqCnTMvlGCX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6i
uSO8CIfmECYa/bE/8ON1iRipJNh5F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHoz
ymgfYRy5E1CgTWKgXcZ1i5qWp0KSrjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01Gf
zA1LFvQkQ6sQ9/khxhoCGHnox1DtNvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql
3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRn
raf7Xz/xf/rJ/kvxb84I3U1y+9/WAAAAAElFTkSuQmCC
</value>
</data>
<data name="saveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAixJREFUOE+tk91Lk3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYt
XyBb4dJJy+kknFT4BqZIjaFMJUszV7TEoabYRDD49ju/6Pm1Mi+iH5zLz+c855zvo1L9j/fsaRRUvvZl
tHmX8Ni9gMaGCO47ZlBb8wn22yHcKJ9CackECgteIy93FBfOB6H0JrC3B6ipXsVGb2V1Dca0XhxOe8JL
EXhbF7mgsuLLX3mCIwsr2G1+DrVahuWQRwjcj+a5oLTk87qCn/D78CLiTD4UXJ7GAXOTEDjrZ7ngku3d
H4Jf4ZHJCLZJXlhzxpGa4hSCurthLsjOGo0R/A4PBsPYrHdDlgMwmRxCUF31kQvkMwFFsB7c4/+ATYkN
OHL0BZKSaoXgZuU0urvATgkcP/kKlmMDfNu0MJqZPps6/4D7cNDSCUmyC8HVskl0+MAyADS5vrG7f0X5
9Tm+VFoYzZyZEVTg5NR2GAwVQnClcByeZuChc40FJwpjek5MmU/YkH6uiHdOTmHwfg/0+jIhsOWNMRio
uhPlnUnAQoI4rYSht7MYm5qDnHsNe41tHNbucUGnKxICiqXjHpTPJgHBZ/Nv4U1oHqGZJVwstiNe72Jw
I+J3PYA2MV8IMjOG2dzLfOatBg+27JDQ0tEPX9cguvv8GHg5hH0mC9S6eiQweLumDhqNVQgo06dP9fN4
UsIoJHRnOhVtmxZGM1NXKoJ3JmTHCv71r/4OTrQ4xWMwWlcAAAAASUVORK5CYII=
</value>
</data>
<data name="printToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAi1JREFUOE+1k/9PUlEYxv2nWK2tVlttGmpltrCcEQ1XUjSMaUHJNLIpNcnCragplBvU
oC/okJhZLG92ySUpU8RNICdIhAioEF+e7r1UZMDW1jrb+8t7z/N83vucc8rK/sdyeYIwvpopWYbRaZTk
0uIx0o0/V/JbGt7lVTwxT6CKKyltoLd8xGYihS/hKGz2WaaeWUnoTATsMz7UCztx9Ex7cYN3jkUQU4tb
4DR5LZaAcyEAg4VE5YlLMFmJQoNQJA61gUA6k4XPH9pCN9s+gZz2oq5Jjlq+DDfUz3Fba86bOGY9jHiU
dDF0mvqT7A/F4fKEcE9nZf5d1jOIB4ZxVJ2U5gyc8z70akegMX3AXb0ND1+8R6/GgvZbeog61OA2K3CA
2lxR34JjZ69B2T8EsVyN/Q0XcwY3B14iGk8UpE43UukMNqhA6QyC4Q0srcQg7dagsbWHmuDHScj7jDC9
nsJTqx0a4xjuaIfRqXoMSXc/hG0q8C4owGnqwEGeFOXHxThH9eoEV7G7VpiboE2pK0qnm9H1JLz+NUzO
BfHWEcAQsQSuqAuVDa1gVZzKGUgUjwoMqAzxNZbC3Od1jDvDYPdth+7NCpP8Yf4V7KoR5A1arg8gmQIo
GMLxLJYjWSwEMphwb2J4MoZB2yqULBZUIxHGYB9HlBfTE4jl9+GmBPTHv6lfo//+GGoaZajmXQabumXl
1HHt5TRjz5Hz2HlIgB3Vp7GNzWeoRcX/+pq/AwHYL0leVl8fAAAAAElFTkSuQmCC
</value>
</data>
<data name="printPreviewToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAY5JREFUOE+d081LAkEUAPD1T+hYhzoERV77OHUo8JBBt+4RRkSQ4U0SunaJOkSRKQWZ
WCiF5kdroa0WRAoRFXXoEEkWCUFYWbvrvnqz7NK6OxANPIZh5v1m3uyOKZK5AaamiaLICILACDzPtDXX
M+3mRlPtGnWMAK15g4fQabVBYDej20QFdtJXVGBxg4Xk8aWMRDhjJLh/TgUW1hPQ1T+ihmEZgXieCghi
FRBRIEPAFzkxBO4fSsByOfBsRkkE4xkoFEv6Mla3szoAF2Jy+E2A0KMc/nyRINe3BS2yspXSAf4YR5Kf
q/LUE1QJopxEU8qSP6kD5nwxFUAEA0E8hdM1rz0BXtDvhheHwMEnwKkkJ2OPAJMuw+TUDB2QJAneKzxg
CRNnHwTBUJJd3ijYx8fowBcvwstrBXIXdxBOZAmCu2JgssMxBGvOOmNA+d5KP+sJw17qiJRjn3bDwOAo
cF4LQMWtRTABf9W/hLWjFcpsA0Fctm76+6C+vJ+J4b4WgmAp/0bMTXVg6ekFNrQM3y3xMcC3lb+tAAAA
AElFTkSuQmCC
</value>
</data>
<data name="cutToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAYdJREFUOE+t001LQlEQBuB+TdCmRVEJRRIWtRAUlKsQhFmkpZQtIiWyAlMwP5KkXS0s
hLqGFkgoFqWQmaRR2qIvU7FMwWhd8JZXkFx0uVGzOcNh5jkDw6mr+++4SN7B6fbju/uQecYm6a25+/Hd
l2IJptWNmmJyL4DwWZwZUJbtayT8RxGqIV8oQaaaRfrxkTmw4z2G+WuKbC6PYDgOkUSJp6ccc+AgdI4l
uwPbHh/UCxb0S0aZN5fHTmefMTVvwfDEHIiBMegMpt8BZUShNoGQTIKQGxA8TTIHMoUPGF1vEOvTWHTc
gqeJQahNwLqVQiRRpIdS+XcM2l4h1t2DI3WAP7oGoSYE3kwSPQofljcqm/kxjK4SCH0OXSMetItsUC26
wZuOVptYhI0eEOuz1YI2gZnKBdpr6iR9V2jkKOkBQpeiCryhFFr4eioft16iU7qNho4h1Dc00QOqlRuw
pSSa+UawuZXdByIZsPoUaOmWwrUfowcOozlwZeto7ZXDuXvCfHV/+dGfqqrf44qgu28AAAAASUVORK5C
YII=
</value>
</data>
<data name="copyToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAeJJREFUOE+lk9FPklEYxv1TSsecde0f0FpZrTbbal7URVvZuuJCr7pq2WzLNWy0iSHN
wtIB9qG0ltLSYRJpBomUgZPMGSyU8SmJIOiv7zssCdrAzXd77s77e5/nnPdUVR20HBPfUCWNB4QsI176
HB8IL/9iX2y1ubTMwx6utz0nuLhcGWIfCxT153Z26ep/g9Md4FJLZ2WIZdQnAM4QSJ/BH5Z5aH6NNClj
m0hgdSV4MppAPxQXCq5kil31OTx7DjLbOeSNNJFYUgBKq31glfpmN76F9QLEZHOJc73ubXQjMreln7Q+
DdP/du0/QIsxhmNK5mjTMJ/m43mIQcmr5t5MZVlNpFiKrPM1vIbpVVQAOqSckF+ZekUX5UjTS+ouDFLb
+CwPUPNupbN7k7WmEDcMX3hgXSpyIP/OsrCyhXtuA6M0g+bc4wJATqaZ/x7DF4zg8f9g/OMibb355701
kERriHL5fojzd2aFjNI0mjPdBUD96auUqlU/KwBZJV4skWUuvMmYV8b+Ls6jQQ81DfryO3KtfUoA/p38
10G37T3VJ3TlARdvukhldjANeemxz2B8MS0mq80GyySHj98rD2jQOpXbtgrVNprRnO2h5lQX1Sc7leYO
Dh27W3nN9/WZDnroDx0A5wwhdtmtAAAAAElFTkSuQmCC
</value>
</data>
<data name="pasteToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAASdAAA
EnQB3mYfeAAAAlBJREFUOE+1k1lIlGEUhn/owm6KFuqqq4LoJooIqouMwixMM4zEjKyJGJUSlcnSITU1
RSe3SdPGyGVQc6tEUSkSIXFo13CMFonUyGmy5p9xz+Lp/z8ZbGjzpgMv5+a8z1n4Pkn6H9HZnEH7zVQa
yxKYF7+hMg+3ynKO4LBVMWa7xmBfNme1vuSl67hi0GNMj/sVqBon5XqmnXVMOqoxF+sYH6kgJyWKF13x
nD/tT7xmM7bOY4y0riY6bL8nRAWo5mlnDUUZR+m2ZCO/L2C4T89bywmaSgIJD/WmKnEVT/MkIg/v8wTU
VeTMAuQbGBLDSNaFoI8K5lxkEDptIDEafyJCfciPXiMAIX7enoDqUgNTci1TdhPjQ5nYn0dhrVgu1Fu+
jO7iRTwyegmzKp9tGz0BZlMGE/YyJgbSGH95irFnB5GbF5Nb3kqmqZELl2uJN5iJSS0hPMFIWGyWJ6C0
MJXRQSNjfVpGH/vjur+Jj7dXCLM7pme+4XBOMjDsIDgihYDj+jlISW4S8qs0XA99cXWsx9m2ksFySXRW
o/RWp5Cppp3efpsw3+2ysidIMwspzErgc88ZnO3rkFuWYq/3ov+6JMb+OvOdLy6l8wcHvW9sWHre4Rca
g69i3rX3AN7bdyDlX4zD/iBCMS/hU8NChioXYC2SiFZ2Vsd2T3BVmaDA3EZTh1VkVVs3rEW6lBwrHoj7
yu6sVQ72c+d7ltfCXH+nm5rWJ3MAdY3cpJPKCwtEE7SbgJ1bBFm9trqzu9vvspjgT3FIubZa8C/N67P9
regHTvjvLQ3rR38AAAAASUVORK5CYII=
</value>
</data>
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
/wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</value>
</data>
</root>

View File

@@ -0,0 +1,141 @@
namespace distribution_explorer
{
partial class distexSplash
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(distexSplash));
this.labelApplicationTitle = new System.Windows.Forms.Label();
this.labelApplicationVersion = new System.Windows.Forms.Label();
this.labelApplicationCopyright = new System.Windows.Forms.Label();
this.labelApplicationDescription = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// labelApplicationTitle
//
this.labelApplicationTitle.BackColor = System.Drawing.SystemColors.Control;
this.labelApplicationTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F);
this.labelApplicationTitle.ForeColor = System.Drawing.Color.Black;
this.labelApplicationTitle.Location = new System.Drawing.Point(331, 27);
this.labelApplicationTitle.Name = "labelApplicationTitle";
this.labelApplicationTitle.Size = new System.Drawing.Size(313, 133);
this.labelApplicationTitle.TabIndex = 0;
this.labelApplicationTitle.Text = "labelApplicationTitle";
this.labelApplicationTitle.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// labelApplicationVersion
//
this.labelApplicationVersion.BackColor = System.Drawing.SystemColors.Control;
this.labelApplicationVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelApplicationVersion.ForeColor = System.Drawing.SystemColors.ControlText;
this.labelApplicationVersion.Location = new System.Drawing.Point(302, 158);
this.labelApplicationVersion.Name = "labelApplicationVersion";
this.labelApplicationVersion.Size = new System.Drawing.Size(320, 20);
this.labelApplicationVersion.TabIndex = 1;
this.labelApplicationVersion.Text = "labelApplicationVersion";
this.labelApplicationVersion.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.labelApplicationVersion.Click += new System.EventHandler(this.labelApplicationVersion_Click);
//
// labelApplicationCopyright
//
this.labelApplicationCopyright.BackColor = System.Drawing.SystemColors.Control;
this.labelApplicationCopyright.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
this.labelApplicationCopyright.ForeColor = System.Drawing.SystemColors.ControlText;
this.labelApplicationCopyright.Location = new System.Drawing.Point(59, 191);
this.labelApplicationCopyright.Name = "labelApplicationCopyright";
this.labelApplicationCopyright.Size = new System.Drawing.Size(563, 20);
this.labelApplicationCopyright.TabIndex = 2;
this.labelApplicationCopyright.Text = "labelApplicationCopyright";
this.labelApplicationCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// labelApplicationDescription
//
this.labelApplicationDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
this.labelApplicationDescription.ForeColor = System.Drawing.SystemColors.ControlText;
this.labelApplicationDescription.Location = new System.Drawing.Point(27, 234);
this.labelApplicationDescription.Name = "labelApplicationDescription";
this.labelApplicationDescription.Size = new System.Drawing.Size(608, 29);
this.labelApplicationDescription.TabIndex = 3;
this.labelApplicationDescription.Text = "labelApplicationDescription";
this.labelApplicationDescription.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(27, 27);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(282, 92);
this.pictureBox1.TabIndex = 4;
this.pictureBox1.TabStop = false;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.labelApplicationVersion);
this.groupBox1.Controls.Add(this.labelApplicationCopyright);
this.groupBox1.Location = new System.Drawing.Point(13, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(644, 254);
this.groupBox1.TabIndex = 5;
this.groupBox1.TabStop = false;
//
// distexSplash
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(669, 276);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.labelApplicationDescription);
this.Controls.Add(this.labelApplicationTitle);
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "distexSplash";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Statistical Distribution Explorer";
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label labelApplicationTitle;
private System.Windows.Forms.Label labelApplicationVersion;
private System.Windows.Forms.Label labelApplicationCopyright;
private System.Windows.Forms.Label labelApplicationDescription;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.GroupBox groupBox1;
}
}

View File

@@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace distribution_explorer
{ /// namespace distribution_explorer
public partial class distexSplash : Form
{ /// Splash
public distexSplash()
{
InitializeComponent();
this.labelApplicationTitle.Text = AssemblyTitle;
this.labelApplicationDescription.Text = AssemblyDescription;
this.labelApplicationCopyright.Text = AssemblyCopyright;
this.labelApplicationVersion.Text = "Version " + AssemblyVersion;
}
#region Assembly Attribute Accessors
/// get AssemblyTitle
public string AssemblyTitle
{
get
{
// Get all Title attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
// If there is at least one Title attribute
if (attributes.Length > 0)
{
// Select the first one
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
// If it is not an empty string, return it
if (titleAttribute.Title != "")
return titleAttribute.Title;
}
// If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
}
/// get AssemblyVersion
public string AssemblyVersion
{
get
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
}
//public string AssemblyGuid
//{ // error CS0117: 'System.Reflection.AssemblyName' does not contain a definition for 'Guid'
// get
// {
// return Assembly.GetExecutingAssembly().GetName().Guid.ToString();
// }
//}
/// get AssemblyDescription
public string AssemblyDescription
{
get
{
// Get all Description attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
// If there aren't any Description attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Description attribute, return its value
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
}
}
/// get AssemblyProduct
public string AssemblyProduct
{
get
{
// Get all Product attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
// If there aren't any Product attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Product attribute, return its value
return ((AssemblyProductAttribute)attributes[0]).Product;
}
}
/// get AssemblyCopyright
public string AssemblyCopyright
{
get
{
// Get all Copyright attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
// If there aren't any Copyright attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Copyright attribute, return its value
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
}
/// get AssemblyCompany
public string AssemblyCompany
{
get
{
// Get all Company attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
// If there aren't any Company attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Company attribute, return its value
return ((AssemblyCompanyAttribute)attributes[0]).Company;
}
}
#endregion
private void labelApplicationVersion_Click(object sender, EventArgs e)
{
}
}
}

View File

@@ -0,0 +1,384 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAH//j/j/jwAAf/+P+P+PAAB4iIiIiIgAAH93h3h3
jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4iIiIiIgAAH93h3h3jwAAf3eHeHePAAB4
iIiIgAAAAH//j/j39wAAf/+P+PdwAAB3d3d3dwAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAB
AADAAQAAwAEAAMABAADAAQAAwAEAAMADAADABwAAwA8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
/wD/AAAA/wD/AP//AAD///8Au7u7u7u7u7u7u7u7RLREu7u7u7u7u7u7u7u7u7S7S7u7u7u7u7u7u7u7
u7u7u7u7u7u7u7u7u7u7u7u0RERES7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u0RLu7u7u7u7u7
u7u0u7S7u0u7u7u7u7u7u7u7RLtES7RLu7u7u7u7u7u7u7S7tLu7S7u7u7u7u7u7u7u7u7u7u7u7u7u7
u7u7u7u0REREREREREu7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7u7u7u0RLu7u7u7u7u0u7S7u7u7u0u7
u7u7u7u7RLtES7u7u7RLu7u7u7u7u7S7tLu7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u0RLu7RERERERE
RERERERLu0u7u7u7u7u7u7u7u7u7u7tLu0u7u7u7u0RLu7u7u7u7S7REu7u7u7u0u7u7u7u7tEu7S7u7
u7u7RLu7u7u7u7tLu7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u7u7u7u7u7tERERERERERERERERERES7u7
u7u7u7u7u7u7u7u7u7u7u7u7u7u7REu7u7u7u7u7u7u7u7u7u7S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7
u7u7u7u7u7u7tLu7u7u7u7u7u7u7u7u7u0S7u7u7u7u7u7u7u7u7u7u0u7u7u7u7u7sAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace distribution_explorer
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DistexForm());
}
}
}

View File

@@ -0,0 +1,34 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Statistical Distribution Explorer")]
[assembly: AssemblyDescription("Shows most properties for 31 Statistical Distributions (mean, mode, median, variance, skewness, kurtosis, range).\n Calculates probability distribution function (PDF), cumulative distribution function (CDF), quantiles, and complements, and upper and lower critical values for given risk levels (alpha).")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Boost 1.52")]
[assembly: AssemblyProduct("Statistical Distribution Explorer")]
[assembly: AssemblyCopyright("Copyright © John Maddock & Paul A. Bristow 2007 - 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a8cd54bd-81b1-4bd3-be18-2cd56fffa1f1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.1.52")]
[assembly: AssemblyFileVersion("1.0.1.52")]
[assembly: AssemblyInformationalVersion("From Boost 1.52")]

View File

@@ -0,0 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace distribution_explorer.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("distribution_explorer.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
internal static System.Drawing.Bitmap ToolkitLogo {
get {
object obj = ResourceManager.GetObject("ToolkitLogo", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="ToolkitLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\ToolkitLogo.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace distribution_explorer.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<applicationRequestMinimum>
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
</security>
</trustInfo>
</asmv1:assembly>

View File

@@ -0,0 +1,28 @@
namespace distribution_explorer.Properties {
// This class allows you to handle specific events on the settings class:
// The SettingChanging event is raised before a setting's value is changed.
// The PropertyChanged event is raised after a setting's value is changed.
// The SettingsLoaded event is raised after the setting values are loaded.
// The SettingsSaving event is raised before the setting values are saved.
internal sealed partial class Settings {
public Settings() {
// // To add event handlers for saving and changing settings, uncomment the lines below:
//
// this.SettingChanging += this.SettingChangingEventHandler;
//
// this.SettingsSaving += this.SettingsSavingEventHandler;
//
}
private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
// Add code to handle the SettingChangingEvent event here.
}
private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
// Add code to handle the SettingsSaving event here.
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,190 @@
namespace distribution_explorer
{
partial class distexAboutBox
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.logoPictureBox = new System.Windows.Forms.PictureBox();
this.labelProductName = new System.Windows.Forms.Label();
this.labelVersion = new System.Windows.Forms.Label();
this.labelCopyright = new System.Windows.Forms.Label();
this.labelCompanyName = new System.Windows.Forms.Label();
this.textBoxDescription = new System.Windows.Forms.TextBox();
this.okButton = new System.Windows.Forms.Button();
this.tableLayoutPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel
//
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11);
this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 6;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326);
this.tableLayoutPanel.TabIndex = 0;
//
// logoPictureBox
//
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.logoPictureBox.Image = global::distribution_explorer.Properties.Resources.ToolkitLogo;
this.logoPictureBox.InitialImage = global::distribution_explorer.Properties.Resources.ToolkitLogo;
this.logoPictureBox.Location = new System.Drawing.Point(4, 4);
this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
this.logoPictureBox.Size = new System.Drawing.Size(175, 318);
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
//
// labelProductName
//
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelProductName.Location = new System.Drawing.Point(191, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelProductName.Name = "labelProductName";
this.labelProductName.Size = new System.Drawing.Size(361, 21);
this.labelProductName.TabIndex = 19;
this.labelProductName.Text = "Product Name";
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelVersion
//
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Location = new System.Drawing.Point(191, 32);
this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(361, 21);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCopyright
//
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCopyright.Location = new System.Drawing.Point(191, 64);
this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCopyright.Name = "labelCopyright";
this.labelCopyright.Size = new System.Drawing.Size(361, 21);
this.labelCopyright.TabIndex = 21;
this.labelCopyright.Text = "Copyright";
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCompanyName
//
this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCompanyName.Location = new System.Drawing.Point(191, 96);
this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCompanyName.Name = "labelCompanyName";
this.labelCompanyName.Size = new System.Drawing.Size(361, 21);
this.labelCompanyName.TabIndex = 22;
this.labelCompanyName.Text = "Company Name";
this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// textBoxDescription
//
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxDescription.Location = new System.Drawing.Point(191, 132);
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4);
this.textBoxDescription.Multiline = true;
this.textBoxDescription.Name = "textBoxDescription";
this.textBoxDescription.ReadOnly = true;
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBoxDescription.Size = new System.Drawing.Size(361, 155);
this.textBoxDescription.TabIndex = 23;
this.textBoxDescription.TabStop = false;
this.textBoxDescription.Text = "Description";
//
// okButton
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.okButton.Location = new System.Drawing.Point(452, 295);
this.okButton.Margin = new System.Windows.Forms.Padding(4);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(100, 27);
this.okButton.TabIndex = 24;
this.okButton.Text = "&OK";
//
// distexAboutBox
//
this.AcceptButton = this.okButton;
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(580, 348);
this.Controls.Add(this.tableLayoutPanel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Margin = new System.Windows.Forms.Padding(4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "distexAboutBox";
this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "About Statistical Distribution Explorer";
this.tableLayoutPanel.ResumeLayout(false);
this.tableLayoutPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
private System.Windows.Forms.PictureBox logoPictureBox;
private System.Windows.Forms.Label labelProductName;
private System.Windows.Forms.Label labelVersion;
private System.Windows.Forms.Label labelCopyright;
private System.Windows.Forms.Label labelCompanyName;
private System.Windows.Forms.TextBox textBoxDescription;
private System.Windows.Forms.Button okButton;
}
}

View File

@@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
namespace distribution_explorer
{
partial class distexAboutBox : Form
{
public distexAboutBox()
{
InitializeComponent();
// Initialize the AboutBox to display the product information from the assembly information.
// Change assembly information settings for your application through either:
// - Project->Properties->Application->Assembly Information
// - AssemblyInfo.cs
this.Text = String.Format("About {0}", AssemblyTitle);
this.labelProductName.Text = AssemblyProduct;
this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
this.labelCopyright.Text = AssemblyCopyright;
this.labelCompanyName.Text = AssemblyCompany;
this.textBoxDescription.Text = AssemblyDescription;
// URL http://sourceforge.net/projects/distexplorer
}
#region Assembly Attribute Accessors
public string AssemblyTitle
{
get
{
// Get all Title attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
// If there is at least one Title attribute
if (attributes.Length > 0)
{
// Select the first one
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
// If it is not an empty string, return it
if (titleAttribute.Title != "")
return titleAttribute.Title;
}
// If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
}
}
public string AssemblyVersion
{
get
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
}
public string AssemblyDescription
{
get
{
// Get all Description attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
// If there aren't any Description attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Description attribute, return its value
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
}
}
public string AssemblyProduct
{
get
{
// Get all Product attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
// If there aren't any Product attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Product attribute, return its value
return ((AssemblyProductAttribute)attributes[0]).Product;
}
}
public string AssemblyCopyright
{
get
{
// Get all Copyright attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
// If there aren't any Copyright attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Copyright attribute, return its value
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
}
}
public string AssemblyCompany
{
get
{
// Get all Company attributes on this assembly
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
// If there aren't any Company attributes, return an empty string
if (attributes.Length == 0)
return "";
// If there is a Company attribute, return its value
return ((AssemblyCompanyAttribute)attributes[0]).Company;
}
}
#endregion
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,10 @@
Statistical Distribution Explorer
Version 1.0.1.52
Company Boost Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Copyright Copyright © John Maddock and Paul A. Bristow 2009, 2010, 2012
Product Distribution_Explorer
Title Distribution_Explorer
Mean
MeanParameter 1 0
Parameter 2 1

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{77742493-4236-4975-9BD9-AA3611F0DC0E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>distribution_explorer</RootNamespace>
<AssemblyName>distribution_explorer</AssemblyName>
<ApplicationIcon>
</ApplicationIcon>
<IsWebBootstrapper>false</IsWebBootstrapper>
<ManifestCertificateThumbprint>393B9B4A721C946375D6D44F80492CFFA03E57B5</ManifestCertificateThumbprint>
<ManifestKeyFile>distribution_explorer_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<SignManifests>false</SignManifests>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<PublishUrl>\\hetpA\H%24\Distex\</PublishUrl>
<Install>true</Install>
<InstallFrom>Unc</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<SupportUrl>http://sourceforge.net/projects/distexplorer/</SupportUrl>
<ProductName>Statistical Distribution Explorer</ProductName>
<PublisherName>hetp</PublisherName>
<ApplicationRevision>8</ApplicationRevision>
<ApplicationVersion>1.0.1.8</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<DocumentationFile>bin\Release\distribution_explorer.XML</DocumentationFile>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DocumentationFile>bin\Release\distribution_explorer.XML</DocumentationFile>
<Optimize>true</Optimize>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="distexAboutBox.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="distexAboutBox.Designer.cs">
<DependentUpon>distexAboutBox.cs</DependentUpon>
</Compile>
<Compile Include="DistexForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DistexForm.Designer.cs">
<DependentUpon>DistexForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="distexAboutBox.resx">
<SubType>Designer</SubType>
<DependentUpon>distexAboutBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DistexForm.resx">
<SubType>Designer</SubType>
<DependentUpon>DistexForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="DistexSplash.resx">
<SubType>Designer</SubType>
<DependentUpon>DistexSplash.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="DistexSplash.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DistexSplash.Designer.cs">
<DependentUpon>DistexSplash.cs</DependentUpon>
</Compile>
<Compile Include="Settings.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="IconToolkit.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="ClassDiagram1.cd" />
<None Include="ClassDiagram2.cd" />
<None Include="ToolkitLogo.bmp" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Visual.C++.10.0.x86">
<Visible>False</Visible>
<ProductName>Visual C++ 2010 Runtime Libraries %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
<Visible>False</Visible>
<ProductName>Windows Installer 4.5</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\boost_math\boost_math.vcxproj">
<Project>{cee4bad0-967a-4193-9edb-c0dd6c3b05c9}</Project>
<Name>boost_math</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<PublishUrlHistory>\\hetpA\H%24\Distex\|\\hetp7\H%24\Distex\|\\hetp7\H%24\|I:\boost-sandbox\libs\math_functions\dot_net_example\Distex\|publish\</PublishUrlHistory>
<InstallUrlHistory>\\hetp7\H%24\</InstallUrlHistory>
<SupportUrlHistory>
</SupportUrlHistory>
<UpdateUrlHistory>
</UpdateUrlHistory>
<BootstrapperUrlHistory>
</BootstrapperUrlHistory>
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<EnableSecurityDebugging>false</EnableSecurityDebugging>
<ErrorReportUrlHistory />
</PropertyGroup>
<PropertyGroup>
<ReferencePath>I:\boost-trunk\libs\math\dot_net_example\boost_math\</ReferencePath>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,50 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2024
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "distribution_explorer", "distribution_explorer.csproj", "{77742493-4236-4975-9BD9-AA3611F0DC0E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost_math", "..\boost_math\boost_math.vcxproj", "{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
Description = Statistical Distribution Explorer
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x64.ActiveCfg = Debug|x64
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x64.Build.0 = Debug|x64
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x86.ActiveCfg = Debug|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Debug|x86.Build.0 = Debug|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|Any CPU.Build.0 = Release|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x64.ActiveCfg = Release|x64
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x64.Build.0 = Release|x64
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x86.ActiveCfg = Release|Any CPU
{77742493-4236-4975-9BD9-AA3611F0DC0E}.Release|x86.Build.0 = Release|Any CPU
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.ActiveCfg = Debug|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x64.Build.0 = Debug|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.ActiveCfg = Debug|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Debug|x86.Build.0 = Debug|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|Any CPU.ActiveCfg = Release|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.ActiveCfg = Release|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x64.Build.0 = Release|x64
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.ActiveCfg = Release|Win32
{80E5F29C-93FB-4C84-A818-D2B8263C7CA1}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E7B27F35-B063-4E0E-AA07-9A53BEA22670}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,86 @@
Statistical Distribution Explorer
Paul A. Bristow
John Maddock
Copyright © 2008 , 2009, 2010, 2012 Paul A. Bristow, John Maddock
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
A Windows utility to show the properties of statistical distributions using parameters provided interactively by the user.
The 31 distributions provided (by version 1.0.1.52) are:
* bernoulli
* beta
* binomial
* cauchy
* chi_squared
* exponential
* extreme_value
* fisher_f
* gamma
* geometric
* hypergeometric
* inverse_chi_squared
* inverse_gamma
* inverse_gaussian
* laplace
* logistic
* lognormal
* negative_binomial
* non-central beta
* non-central_chi_squared
* non-central_F
* non-central_t
* normal (Gaussian)
* pareto
* poisson
* rayleigh
* students_t
* skew_normal
* triangular
* uniform
* weibull
Properties of distributions computed (where possible) are:
* mean
* mode
* median
* variance
* standard deviation
* coefficient of variation,
* skewness
* kurtosis
* excess
* range supported
Calculated, from values provided, are:
* probability density (or mass) function (PDF)
* cumulative distribution function (CDF), and complement
* Quantiles (percentiles) are calculated for typical risk (alpha) probabilities (0.001, 0.01, 0.5, 0.1, 0.333) and for additional probabilities that can be requested by the user.
Results can be saved to text files using Save or SaveAs. All the values on the four tabs are output to the file chosen, and are tab separated to assist input to other programs, for example, spreadsheets or text editors.
Note: Excel (for example), by default, only shows 10 decimal digits: to display the maximum possible precision (about 15 decimal digits), it is necessary to format all cells to display this precision. Although unusually accurate, not all values computed by Statistical Distribution Explorer will be as accurate as 15 decimal digits. Values shown as NaN cannot be calculated from the value(s) given, most commonly because the value input is outside the range for the distribution.
For more information, including downloads, and this index.html file, see Distexplorer at Sourceforge.
This Microsoft Windows 32 package was generated from a C# program and uses a boost_math.dll generated using the Boost.Math C++ source code containing the underlying statistical distribution classes and functions (C++ was compiled in CLI mode).
All source code is freely available for view and for use under the Boost Open Source License.
Math Toolkit C++ source code to produce boost_math.dll is in the most recent Boost release, currently 1.52.0 (and the Boost version used to build the explorer is embedded in its version number). You can download the current Boost library and find the source to build the Distribution Explorer at /libs/math/dot_net_example/.
Installation
============
Statistical Distribution Explorer is distributed as a single Windows Installer package setupdistex.msi. Unzip the distexplorer.zip file to a temporary location of your choice and run setupdistex.msi.
(If the program installs OK, but does not run, it will be necessary to run setup.exe to install Microsoft redistributables. This is because .NET Framework 4.0 Client Profile and VC Redistributable X86 are requirements for this program. Most recent and updated Windows environments will already have these installed, but they are quickly, easily and safely installed from the Microsoft site if required. This program has been tested on Windows 200 up to Windows 8).
(The package cannot be run on other platforms at present but it should be possible to build an equivalent utility on any C/C++ platform if anyone would like to undertake this task.)
Last revised: 15 Oct 2012