text:
/* Notes:
 *
 * The primary objective of this implementation was minimal size and
 * portablility, while providing robustness and resonable accuracy.
 *
 * This implementation depends on IEEE floating point behavior and expects
 * to be able to generate +/- infinity as a result.
 *
 * There are a number of compile-time options below.
 */

/* July 27, 2003
 *
 * General cleanup and some minor size optimizations.
 * Change implementation to support __strtofpmax() rather than strtod().
 *   Now all the strto{floating pt}() funcs are implemented in terms of
 *   of the internal __strtofpmax() function.
 * Support "nan", "inf", and "infinity" strings (case-insensitive).
 * Support hexadecimal floating point notation.
 * Support wchar variants.
 * Support xlocale variants.
 *
 * TODO:
 *
 * Consider accumulating blocks of digits in longs to save floating pt mults.
 *   This would likely be much better on anything that only supported floats
 *   where DECIMAL_DIG == 9.  Actually, if floats have FLT_MAX_10_EXP == 38,
 *   we could calculate almost all the exponent multipliers (p_base) in
 *   long arithmetic as well.
 */

/**********************************************************************/
/*							OPTIONS									  */
/**********************************************************************/

/* Defined if we want to recognize "nan", "inf", and "infinity". (C99) */
#define _STRTOD_NAN_INF_STRINGS  1

/* Defined if we want support hexadecimal floating point notation. (C99) */
/* Note!  Now controlled by uClibc configuration.  See below. */
#define _STRTOD_HEXADECIMAL_FLOATS 1

/* Defined if we want to scale with a O(log2(exp)) multiplications.
 * This is generally a good thing to do unless you are really tight
 * on space and do not expect to convert values of large magnitude. */

#define _STRTOD_LOG_SCALING	  1

/* WARNING!!!   WARNING!!!   WARNING!!!   WARNING!!!   WARNING!!!
 *
 * Clearing any of the options below this point is not advised (or tested).
 *
 * WARNING!!!   WARNING!!!   WARNING!!!   WARNING!!!   WARNING!!! */

/* Defined if we want strtod to set errno appropriately. */
/* NOTE: Implies all options below. */
#define _STRTOD_ERRNO			1

/* Defined if we want support for the endptr arg. */
/* Implied by _STRTOD_ERRNO. */
#define _STRTOD_ENDPTR		   1

/* Defined if we want to prevent overflow in accumulating the exponent. */
/* Implied by _STRTOD_ERRNO. */
#define _STRTOD_RESTRICT_EXP	 1

/* Defined if we want to process mantissa digits more intelligently. */
/* Implied by _STRTOD_ERRNO. */
#define _STRTOD_RESTRICT_DIGITS  1

/* Defined if we want to skip scaling 0 for the exponent. */
/* Implied by _STRTOD_ERRNO. */
#define _STRTOD_ZERO_CHECK	   1

/**********************************************************************/
/* Don't change anything that follows.									   */
/**********************************************************************/

#ifdef _STRTOD_ERRNO
#undef _STRTOD_ENDPTR
#undef _STRTOD_RESTRICT_EXP
#undef _STRTOD_RESTRICT_DIGITS
#undef _STRTOD_ZERO_CHECK
#define _STRTOD_ENDPTR		   1
#define _STRTOD_RESTRICT_EXP	 1
#define _STRTOD_RESTRICT_DIGITS  1
#define _STRTOD_ZERO_CHECK	   1
#endif

/**********************************************************************/

#define _ISOC99_SOURCE 1
#define _GNU_SOURCE
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <float.h>
#include <bits/uClibc_fpmax.h>

#include <locale.h>

#ifdef __UCLIBC_HAS_WCHAR__

#include <wchar.h>
#include <wctype.h>
#include <bits/uClibc_uwchar.h>

#endif

#ifdef __UCLIBC_HAS_XLOCALE__
#include <xlocale.h>
#endif /* __UCLIBC_HAS_XLOCALE__ */

/* Handle _STRTOD_HEXADECIMAL_FLOATS via uClibc config now. */
#undef _STRTOD_HEXADECIMAL_FLOATS
#ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
#define _STRTOD_HEXADECIMAL_FLOATS 1
#endif /* __UCLIBC_HAS_HEXADECIMAL_FLOATS__ */

/**********************************************************************/

#undef _STRTOD_FPMAX

#if FPMAX_TYPE == 3

#define NEED_STRTOLD_WRAPPER
#define NEED_STRTOD_WRAPPER
#define NEED_STRTOF_WRAPPER

#elif FPMAX_TYPE == 2

#define NEED_STRTOD_WRAPPER
#define NEED_STRTOF_WRAPPER

#elif FPMAX_TYPE == 1

#define NEED_STRTOF_WRAPPER

#else

#error unknown FPMAX_TYPE!

#endif

extern void __fp_range_check(__fpmax_t y, __fpmax_t x);

/**********************************************************************/

#ifdef _STRTOD_RESTRICT_DIGITS
#define EXP_DENORM_ADJUST DECIMAL_DIG
#define MAX_ALLOWED_EXP (DECIMAL_DIG  + EXP_DENORM_ADJUST - FPMAX_MIN_10_EXP)

#if MAX_ALLOWED_EXP > INT_MAX
#error size assumption violated for MAX_ALLOWED_EXP
#endif
#else
/* We want some excess if we're not restricting mantissa digits. */
#define MAX_ALLOWED_EXP ((20 - FPMAX_MIN_10_EXP) * 2)
#endif

#if defined(_STRTOD_RESTRICT_DIGITS) || defined(_STRTOD_ENDPTR) || defined(_STRTOD_HEXADECIMAL_FLOATS)
#undef _STRTOD_NEED_NUM_DIGITS
#define _STRTOD_NEED_NUM_DIGITS 1
#endif

/**********************************************************************/
#if defined(L___strtofpmax) || defined(L___strtofpmax_l) || defined(L___wcstofpmax) || defined(L___wcstofpmax_l)

#if defined(L___wcstofpmax) || defined(L___wcstofpmax_l)

#define __strtofpmax    __wcstofpmax
#define __strtofpmax_l  __wcstofpmax_l

#define Wchar wchar_t
#ifdef __UCLIBC_DO_XLOCALE
#define ISSPACE(C) iswspace_l((C), locale_arg)
#else
#define ISSPACE(C) iswspace((C))
#endif

#else  /* defined(L___wcstofpmax) || defined(L___wcstofpmax) */

#define Wchar char
#ifdef __UCLIBC_DO_XLOCALE
#define ISSPACE(C) isspace_l((C), locale_arg)
#else
#define ISSPACE(C) isspace((C))
#endif

#endif /* defined(L___wcstofpmax) || defined(L___wcstofpmax) */

#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)

__fpmax_t __strtofpmax(const Wchar *str, Wchar **endptr, int exponent_power)
{
	return __strtofpmax_l(str, endptr, exponent_power, __UCLIBC_CURLOCALE);
}

#else  /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */

__fpmax_t __XL_NPP(__strtofpmax)(const Wchar *str, Wchar **endptr, int exponent_power
								 __LOCALE_PARAM )
{
	__fpmax_t number;
	__fpmax_t p_base = 10;			/* Adjusted to 16 in the hex case. */
	Wchar *pos0;
#ifdef _STRTOD_ENDPTR
	Wchar *pos1;
#endif
	Wchar *pos = (Wchar *) str;
	int exponent_temp;
	int negative; /* A flag for the number, a multiplier for the exponent. */
#ifdef _STRTOD_NEED_NUM_DIGITS
	int num_digits;
#endif
#ifdef __UCLIBC_HAS_LOCALE__
	const char *decpt = __LOCALE_PTR->decimal_point;
#if defined(L___wcstofpmax) || defined(L___wcstofpmax)
	wchar_t decpt_wc = __LOCALE_PTR->decimal_point;
#else
	int decpt_len = __LOCALE_PTR->decimal_point_len;
#endif
#endif

#ifdef _STRTOD_HEXADECIMAL_FLOATS
	Wchar expchar = 'e';
	Wchar *poshex = NULL;
	__uint16_t is_mask = _ISdigit;
#define EXPCHAR		expchar
#define IS_X_DIGIT(C) __isctype((C), is_mask)
#else  /* _STRTOD_HEXADECIMAL_FLOATS */
#define EXPCHAR		'e'
#define IS_X_DIGIT(C) isdigit((C))
#endif /* _STRTOD_HEXADECIMAL_FLOATS */

	while (ISSPACE(*pos)) {		/* Skip leading whitespace. */
		++pos;
	}

	negative = 0;
	switch(*pos) {				/* Handle optional sign. */
		case '-': negative = 1;	/* Fall through to increment position. */
		case '+': ++pos;
	}

#ifdef _STRTOD_HEXADECIMAL_FLOATS
	if ((*pos == '0') && (((pos[1])|0x20) == 'x')) {
		poshex = ++pos;			/* Save position of 'x' in case no digits */
		++pos;					/*   and advance past it.  */
		is_mask = _ISxdigit;	/* Used by IS_X_DIGIT. */
		expchar = 'p';			/* Adjust exponent char. */
		p_base = 16;			/* Adjust base multiplier. */
	}
#endif

	number = 0.;
#ifdef _STRTOD_NEED_NUM_DIGITS
	num_digits = -1;
#endif
/* 	exponent_power = 0; */
	pos0 = NULL;

 LOOP:
	while (IS_X_DIGIT(*pos)) {	/* Process string of (hex) digits. */
#ifdef _STRTOD_RESTRICT_DIGITS
		if (num_digits < 0) {	/* First time through? */
			++num_digits;		/* We've now seen a digit. */
		}
		if (num_digits || (*pos != '0')) { /* Had/have nonzero. */
			++num_digits;
			if (num_digits <= DECIMAL_DIG) { /* Is digit significant? */
#ifdef _STRTOD_HEXADECIMAL_FLOATS
				number = number * p_base
					+ (isdigit(*pos)
					   ? (*pos - '0')
					   : (((*pos)|0x20) - ('a' - 10)));
#else  /* _STRTOD_HEXADECIMAL_FLOATS */
				number = number * p_base + (*pos - '0');
#endif /* _STRTOD_HEXADECIMAL_FLOATS */
			}
		}
#else  /* _STRTOD_RESTRICT_DIGITS */
#ifdef _STRTOD_NEED_NUM_DIGITS
		++num_digits;
#endif
#ifdef _STRTOD_HEXADECIMAL_FLOATS
		number = number * p_base
			+ (isdigit(*pos)
			   ? (*pos - '0')
			   : (((*pos)|0x20) - ('a' - 10)));
#else  /* _STRTOD_HEXADECIMAL_FLOATS */
		number = number * p_base + (*pos - '0');
#endif /* _STRTOD_HEXADECIMAL_FLOATS */
#endif /* _STRTOD_RESTRICT_DIGITS */
		++pos;
	}

#ifdef __UCLIBC_HAS_LOCALE__
#if defined(L___wcstofpmax) || defined(L___wcstofpmax)
	if (!pos0 && (*pos == decpt_wc)) { /* First decimal point? */
		pos0 = ++pos;
		goto LOOP;
	}
#else
	if (!pos0 && !memcmp(pos, decpt, decpt_len)) { /* First decimal point? */
		pos0 = (pos += decpt_len);
		goto LOOP;
	}
#endif
#else  /* __UCLIBC_HAS_LOCALE__ */
	if ((*pos == '.') && !pos0) { /* First decimal point? */
		pos0 = ++pos;			/* Save position of decimal point */
		goto LOOP;				/*   and process rest of digits. */
	}
#endif /* __UCLIBC_HAS_LOCALE__ */

#ifdef _STRTOD_NEED_NUM_DIGITS
	if (num_digits<0) {			/* Must have at least one digit. */
#ifdef _STRTOD_HEXADECIMAL_FLOATS
		if (poshex) {			/* Back up to '0' in '0x' prefix. */
			pos = poshex;
			goto DONE;
		}
#endif /* _STRTOD_HEXADECIMAL_FLOATS */

#ifdef _STRTOD_NAN_INF_STRINGS
		if (!pos0) {			/* No decimal point, so check for inf/nan. */
			/* Note: nan is the first string so 'number = i/0.;' works. */
			static const char nan_inf_str[] = "\05nan\0\012infinity\0\05inf\0";
			int i = 0;

#ifdef __UCLIBC_HAS_LOCALE__
			/* Avoid tolower problems for INFINITY in the tr_TR locale. (yuk)*/
#undef _tolower
#define _tolower(C)     ((C)|0x20)
#endif /* __UCLIBC_HAS_LOCALE__ */

			do {
				/* Unfortunately, we have no memcasecmp(). */
				int j = 0;
				while (_tolower(pos[j]) == nan_inf_str[i+1+j]) {
					++j;
					if (!nan_inf_str[i+1+j]) {
						number = i / 0.;
						if (negative) {	/* Correct for sign. */
							number = -number;
						}
						pos += nan_inf_str[i] - 2;
						goto DONE;
					}
				}
				i += nan_inf_str[i];
			} while (nan_inf_str[i]);
		}

#endif /* STRTOD_NAN_INF_STRINGS */
#ifdef _STRTOD_ENDPTR
		pos = (Wchar *) str;
#endif
		goto DONE;
	}
#endif /* _STRTOD_NEED_NUM_DIGITS */

#ifdef _STRTOD_RESTRICT_DIGITS
	if (num_digits > DECIMAL_DIG) { /* Adjust exponent for skipped digits. */
		exponent_power += num_digits - DECIMAL_DIG;
	}
#endif

	if (pos0) {
		exponent_power += pos0 - pos; /* Adjust exponent for decimal point. */
	}

#ifdef _STRTOD_HEXADECIMAL_FLOATS
	if (poshex) {
		exponent_power *= 4;	/* Above is 2**4, but below is 2. */
		p_base = 2;
	}
#endif /* _STRTOD_HEXADECIMAL_FLOATS */

	if (negative) {				/* Correct for sign. */
		number = -number;
	}

	/* process an exponent string */
	if (((*pos)|0x20) == EXPCHAR) {
#ifdef _STRTOD_ENDPTR
		pos1 = pos;
#endif
		negative = 1;
		switch(*++pos) {		/* Handle optional sign. */
			case '-': negative = -1; /* Fall through to increment pos. */
			case '+': ++pos;
		}

		pos0 = pos;
		exponent_temp = 0;
		while (isdigit(*pos)) {	/* Process string of digits. */
#ifdef _STRTOD_RESTRICT_EXP
			if (exponent_temp < MAX_ALLOWED_EXP) { /* Avoid overflow. */
				exponent_temp = exponent_temp * 10 + (*pos - '0');
			}
#else
			exponent_temp = exponent_temp * 10 + (*pos - '0');
#endif
			++pos;
		}

#ifdef _STRTOD_ENDPTR
		if (pos == pos0) {	/* No digits? */
			pos = pos1;		/* Back up to {e|E}/{p|P}. */
		} /* else */
#endif

		exponent_power += negative * exponent_temp;
	}

#ifdef _STRTOD_ZERO_CHECK
	if (number == 0.) {
		goto DONE;
	}
#endif

	/* scale the result */
#ifdef _STRTOD_LOG_SCALING
	exponent_temp = exponent_power;

	if (exponent_temp < 0) {
		exponent_temp = -exponent_temp;
	}

	while (exponent_temp) {
		if (exponent_temp & 1) {
			if (exponent_power < 0) {
				/* Warning... caluclating a factor for the exponent and
				 * then dividing could easily be faster.  But doing so
				 * might cause problems when dealing with denormals. */
				number /= p_base;
			} else {
				number *= p_base;
			}
		}
		exponent_temp >>= 1;
		p_base *= p_base;
	}

#else  /* _STRTOD_LOG_SCALING */
	while (exponent_power) {
		if (exponent_power < 0) {
			number /= p_base;
			exponent_power++;
		} else {
			number *= p_base;
			exponent_power--;
		}
	}
#endif /* _STRTOD_LOG_SCALING */

#ifdef _STRTOD_ERRNO
	if (__FPMAX_ZERO_OR_INF_CHECK(number)) {
		__set_errno(ERANGE);
	}
#endif

 DONE:
#ifdef _STRTOD_ENDPTR
	if (endptr) {
		*endptr = pos;
	}
#endif

	return number;
}

#endif /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */

#endif
/**********************************************************************/
#ifdef L___fp_range_check
#if defined(NEED_STRTOF_WRAPPER) || defined(NEED_STRTOD_WRAPPER)

extern void __fp_range_check(__fpmax_t y, __fpmax_t x)
{
	if (__FPMAX_ZERO_OR_INF_CHECK(y) /* y is 0 or +/- infinity */
		&& (y != 0)	/* y is not 0 (could have x>0, y==0 if underflow) */
		&& !__FPMAX_ZERO_OR_INF_CHECK(x) /* x is not 0 or +/- infinity */
		) {
		__set_errno(ERANGE);	/* Then x is not in y's range. */
	}
}

#endif
#endif
/**********************************************************************/
#if defined(L_strtof) || defined(L_strtof_l) || defined(L_wcstof) || defined(L_wcstof_l)
#if defined(NEED_STRTOF_WRAPPER)

#if defined(L_wcstof) || defined(L_wcstof_l)
#define strtof           wcstof
#define strtof_l         wcstof_l
#define __strtof         __wcstof
#define __strtof_l       __wcstof_l
#define __strtofpmax     __wcstofpmax
#define __strtofpmax_l   __wcstofpmax_l
#define Wchar wchar_t
#else
#define Wchar char
#endif

float __XL(strtof)(const Wchar *str, Wchar **endptr   __LOCALE_PARAM )
{
#if FPMAX_TYPE == 1
	return __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
#else
	__fpmax_t x;
	float y;

	x = __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
	y = (float) x;

	__fp_range_check(y, x);

	return y;
#endif
}

__XL_ALIAS(strtof)

#endif
#endif
/**********************************************************************/
#if defined(L_strtod) || defined(L_strtod_l) || defined(L_wcstod) || defined(L_wcstod_l)
#if defined(NEED_STRTOD_WRAPPER)

#if defined(L_wcstod) || defined(L_wcstod_l)
#define strtod           wcstod
#define strtod_l         wcstod_l
#define __strtod         __wcstod
#define __strtod_l       __wcstod_l
#define __strtofpmax     __wcstofpmax
#define __strtofpmax_l   __wcstofpmax_l
#define Wchar wchar_t
#else
#define Wchar char
#endif

double __XL(strtod)(const Wchar *__restrict str,
					Wchar **__restrict endptr   __LOCALE_PARAM )
{
#if FPMAX_TYPE == 2
	return __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
#else
	__fpmax_t x;
	double y;

	x = __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
	y = (double) x;

	__fp_range_check(y, x);

	return y;
#endif
}

__XL_ALIAS(strtod)

#endif
#endif
/**********************************************************************/
#if defined(L_strtold) || defined(L_strtold_l) || defined(L_wcstold) || defined(L_wcstold_l)
#if defined(NEED_STRTOLD_WRAPPER)

#if defined(L_wcstold) || defined(L_wcstold_l)
#define strtold           wcstold
#define strtold_l         wcstold_l
#define __strtold         __wcstold
#define __strtold_l       __wcstold_l
#define __strtofpmax     __wcstofpmax
#define __strtofpmax_l   __wcstofpmax_l
#define Wchar wchar_t
#else
#define Wchar char
#endif

long double __XL(strtold)(const Wchar *str, Wchar **endptr   __LOCALE_PARAM )
{
#if FPMAX_TYPE == 3
	return __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
#else
	__fpmax_t x;
	long double y;

	x = __XL_NPP(__strtofpmax)(str, endptr, 0   __LOCALE_ARG );
	y = (long double) x;

	__fp_range_check(y, x);

	return y;
#endif
}

__XL_ALIAS(strtold)

#endif
#endif
/**********************************************************************/


text:
@interface SinkVC : UIViewController

@end

redpajama_set_name: RedPajamaGithub


text:
template <typename ColorMap, typename ParentMap,
  typename DiscoverTimeMap, typename FinishTimeMap>
class dfs_test_visitor {
  typedef typename boost::property_traits<ColorMap>::value_type ColorValue;
  typedef typename boost::color_traits<ColorValue> Color;
public:
  dfs_test_visitor(ColorMap color, ParentMap p, DiscoverTimeMap d,
                   FinishTimeMap f)
    : m_color(color), m_parent(p),
    m_discover_time(d), m_finish_time(f), m_time(0) { }

  template <class Vertex, class Graph>
  void initialize_vertex(Vertex u, Graph&) {
    BOOST_CHECK( boost::get(m_color, u) == Color::white() );
  }
  template <class Vertex, class Graph>
  void start_vertex(Vertex u, Graph&) {
    BOOST_CHECK( boost::get(m_color, u) == Color::white() );
  }
  template <class Vertex, class Graph>
  void discover_vertex(Vertex u, Graph&) {
    using namespace boost;
    BOOST_CHECK( get(m_color, u) == Color::gray() );
    BOOST_CHECK( get(m_color, get(m_parent, u)) == Color::gray() );

    put(m_discover_time, u, m_time++);
  }
  template <class Edge, class Graph>
  void examine_edge(Edge e, Graph& g) {
    using namespace boost;
    BOOST_CHECK( get(m_color, source(e, g)) == Color::gray() );
  }
  template <class Edge, class Graph>
  void tree_edge(Edge e, Graph& g) {
    using namespace boost;
    BOOST_CHECK( get(m_color, target(e, g)) == Color::white() );

    put(m_parent, target(e, g), source(e, g));
  }
  template <class Edge, class Graph>
  void back_edge(Edge e, Graph& g) {
    using namespace boost;
    BOOST_CHECK( get(m_color, target(e, g)) == Color::gray() );
  }
  template <class Edge, class Graph>
  void forward_or_cross_edge(Edge e, Graph& g) {
    using namespace boost;
    BOOST_CHECK( get(m_color, target(e, g)) == Color::black() );
  }
  template <class Edge, class Graph>
  void finish_edge(Edge e, Graph& g) {
    using namespace boost;
    BOOST_CHECK( get(m_color, target(e, g)) == Color::gray() ||
                 get(m_color, target(e, g)) == Color::black() );
  }
  template <class Vertex, class Graph>
  void finish_vertex(Vertex u, Graph&) {
    using namespace boost;
    BOOST_CHECK( get(m_color, u) == Color::black() );

    put(m_finish_time, u, m_time++);
  }
private:
  ColorMap m_color;
  ParentMap m_parent;
  DiscoverTimeMap m_discover_time;
  FinishTimeMap m_finish_time;
  typename boost::property_traits<DiscoverTimeMap>::value_type m_time;
};

template <typename Graph>
struct dfs_test
{
  typedef boost::graph_traits<Graph> Traits;
  typedef typename Traits::vertices_size_type
    vertices_size_type;

  static void go(vertices_size_type max_V) {
    using namespace boost;
    typedef typename Traits::vertex_descriptor vertex_descriptor;
    typedef typename boost::property_map<Graph,
      boost::vertex_color_t>::type ColorMap;
    typedef typename boost::property_traits<ColorMap>::value_type ColorValue;
    typedef typename boost::color_traits<ColorValue> Color;

    vertices_size_type i, k;
    typename Traits::edges_size_type j;
    typename Traits::vertex_iterator vi, vi_end, ui, ui_end;

    boost::mt19937 gen;

    for (i = 0; i < max_V; ++i)
      for (j = 0; j < i*i; ++j) {
        Graph g;
        generate_random_graph(g, i, j, gen);

        ColorMap color = get(boost::vertex_color, g);
        std::vector<vertex_descriptor> parent(num_vertices(g));
        for (k = 0; k < num_vertices(g); ++k)
          parent[k] = k;
        std::vector<int> discover_time(num_vertices(g)),
          finish_time(num_vertices(g));

        // Get vertex index map
        typedef typename boost::property_map<Graph, boost::vertex_index_t>::const_type idx_type;
        idx_type idx = get(boost::vertex_index, g);

        typedef
          boost::iterator_property_map<typename std::vector<vertex_descriptor>::iterator, idx_type>
          parent_pm_type;
        parent_pm_type parent_pm(parent.begin(), idx);
        typedef
          boost::iterator_property_map<std::vector<int>::iterator, idx_type>
          time_pm_type;
        time_pm_type discover_time_pm(discover_time.begin(), idx);
        time_pm_type finish_time_pm(finish_time.begin(), idx);

        dfs_test_visitor<ColorMap, parent_pm_type,
          time_pm_type, time_pm_type>
          vis(color, parent_pm,
              discover_time_pm, finish_time_pm);

        boost::depth_first_search(g, visitor(vis).color_map(color));

        // all vertices should be black
        for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
          BOOST_CHECK(get(color, *vi) == Color::black());

        // check parenthesis structure of discover/finish times
        // See CLR p.480
        for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
          for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
            vertex_descriptor u = *ui, v = *vi;
            if (u != v) {
              BOOST_CHECK( finish_time[u] < discover_time[v]
                          || finish_time[v] < discover_time[u]
                          || (discover_time[v] < discover_time[u]
                               && finish_time[u] < finish_time[v]
                               && boost::is_descendant(u, v, parent_pm))
                          || (discover_time[u] < discover_time[v]
                               && finish_time[v] < finish_time[u]
                               && boost::is_descendant(v, u, parent_pm))
                        );
            }
          }
      }

  }
};

// usage: dfs.exe [max-vertices=15]

int test_main(int argc, char* argv[])
{
  int max_V = 7;
  if (argc > 1)
    max_V = atoi(argv[1]);

  // Test directed graphs.
  dfs_test< boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
           boost::property<boost::vertex_color_t, boost::default_color_type> >
    >::go(max_V);
  // Test undirected graphs.
  dfs_test< boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS,
           boost::property<boost::vertex_color_t, boost::default_color_type> >
    >::go(max_V);

  return 0;
}


text:
<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use ZF\Apigility\Admin\Module as AdminModule;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        if (class_exists(AdminModule::class, false)) {
            return $this->redirect()->toRoute('zf-apigility/ui');
        }
        return new ViewModel();
    }
}


text:
typedef struct _Test {
    EObject parent;
    int x;
    struct TestPrivate * priv;
} Test;

typedef struct _TestClass {
    EObjectClass parent;
    EObjectClass* super;
    int (*add) (Test* self, int x);
} TestClass;

extern EType test_get_type();
#define TEST_T(x) ((TestClass*)(((EObject*)x)->vtable))


text:
default['rosetta']['agent']['include_loggen'] = false
default['rosetta']['agent']['loggen_bin'] = '/home/vagrant/.rbenv/shims/apache-loggen'
default['rosetta']['agent']['loggen_options'] = '--rate 2 --rotate 86400'
default['rosetta']['agent']['apache_access_dir'] = '/var/log/apache2'
default['rosetta']['agent']['apache_access_file'] = 'access.log'

## broker ##
default['rosetta']['broker']['redis_host'] = 'localhost'
default['rosetta']['broker']['redis_port'] = 6379
default['rosetta']['broker']['redis_db'] = 0

## filter ##
default['rosetta']['filter']['flush_size'] = 100
default['rosetta']['filter']['s3']['access_key_id'] = ""
default['rosetta']['filter']['s3']['secret_access_key'] = ""
default['rosetta']['filter']['s3']['bucket'] = ""
default['rosetta']['filter']['s3']['endpoint_region'] = "us-east-1"
default['rosetta']['filter']['s3']['size_file'] = 0
default['rosetta']['filter']['s3']['time_file'] = 0
default['rosetta']['filter']['s3']['codec'] = 'json'
default['rosetta']['filter']['s3']['format'] = 'json'
default['rosetta']['filter']['s3']['use_ssl'] = false


text:
#pragma once
#include <aws/rekognition/Rekognition_EXPORTS.h>
#include <aws/rekognition/RekognitionRequest.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/rekognition/model/OutputConfig.h>
#include <aws/core/utils/memory/stl/AWSMap.h>
#include <utility>

namespace Aws
{
namespace Rekognition
{
namespace Model
{

  /**
   */
  class AWS_REKOGNITION_API CopyProjectVersionRequest : public RekognitionRequest
  {
  public:
    CopyProjectVersionRequest();

    // Service request name is the Operation name which will send this request out,
    // each operation should has unique request name, so that we can get operation's name from this request.
    // Note: this is not true for response, multiple operations may have the same response name,
    // so we can not get operation's name from response.
    inline virtual const char* GetServiceRequestName() const override { return "CopyProjectVersion"; }

    Aws::String SerializePayload() const override;

    Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline const Aws::String& GetSourceProjectArn() const{ return m_sourceProjectArn; }

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline bool SourceProjectArnHasBeenSet() const { return m_sourceProjectArnHasBeenSet; }

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline void SetSourceProjectArn(const Aws::String& value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn = value; }

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline void SetSourceProjectArn(Aws::String&& value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn = std::move(value); }

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline void SetSourceProjectArn(const char* value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn.assign(value); }

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline CopyProjectVersionRequest& WithSourceProjectArn(const Aws::String& value) { SetSourceProjectArn(value); return *this;}

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline CopyProjectVersionRequest& WithSourceProjectArn(Aws::String&& value) { SetSourceProjectArn(std::move(value)); return *this;}

    /**
     *
The ARN of the source project in the trusting AWS account.

     */
    inline CopyProjectVersionRequest& WithSourceProjectArn(const char* value) { SetSourceProjectArn(value); return *this;}

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline const Aws::String& GetSourceProjectVersionArn() const{ return m_sourceProjectVersionArn; }

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline bool SourceProjectVersionArnHasBeenSet() const { return m_sourceProjectVersionArnHasBeenSet; }

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline void SetSourceProjectVersionArn(const Aws::String& value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn = value; }

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline void SetSourceProjectVersionArn(Aws::String&& value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn = std::move(value); }

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline void SetSourceProjectVersionArn(const char* value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn.assign(value); }

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline CopyProjectVersionRequest& WithSourceProjectVersionArn(const Aws::String& value) { SetSourceProjectVersionArn(value); return *this;}

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline CopyProjectVersionRequest& WithSourceProjectVersionArn(Aws::String&& value) { SetSourceProjectVersionArn(std::move(value)); return *this;}

    /**
     *
The ARN of the model version in the source project that you want to copy to a
     * destination project.

     */
    inline CopyProjectVersionRequest& WithSourceProjectVersionArn(const char* value) { SetSourceProjectVersionArn(value); return *this;}

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline const Aws::String& GetDestinationProjectArn() const{ return m_destinationProjectArn; }

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline bool DestinationProjectArnHasBeenSet() const { return m_destinationProjectArnHasBeenSet; }

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline void SetDestinationProjectArn(const Aws::String& value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn = value; }

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline void SetDestinationProjectArn(Aws::String&& value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn = std::move(value); }

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline void SetDestinationProjectArn(const char* value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn.assign(value); }

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline CopyProjectVersionRequest& WithDestinationProjectArn(const Aws::String& value) { SetDestinationProjectArn(value); return *this;}

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline CopyProjectVersionRequest& WithDestinationProjectArn(Aws::String&& value) { SetDestinationProjectArn(std::move(value)); return *this;}

    /**
     *
The ARN of the project in the trusted AWS account that you want to copy the
     * model version to.

     */
    inline CopyProjectVersionRequest& WithDestinationProjectArn(const char* value) { SetDestinationProjectArn(value); return *this;}

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline const Aws::String& GetVersionName() const{ return m_versionName; }

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline bool VersionNameHasBeenSet() const { return m_versionNameHasBeenSet; }

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline void SetVersionName(const Aws::String& value) { m_versionNameHasBeenSet = true; m_versionName = value; }

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline void SetVersionName(Aws::String&& value) { m_versionNameHasBeenSet = true; m_versionName = std::move(value); }

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline void SetVersionName(const char* value) { m_versionNameHasBeenSet = true; m_versionName.assign(value); }

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline CopyProjectVersionRequest& WithVersionName(const Aws::String& value) { SetVersionName(value); return *this;}

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline CopyProjectVersionRequest& WithVersionName(Aws::String&& value) { SetVersionName(std::move(value)); return *this;}

    /**
     *
A name for the version of the model that's copied to the destination
     * project.

     */
    inline CopyProjectVersionRequest& WithVersionName(const char* value) { SetVersionName(value); return *this;}

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline const OutputConfig& GetOutputConfig() const{ return m_outputConfig; }

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline bool OutputConfigHasBeenSet() const { return m_outputConfigHasBeenSet; }

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline void SetOutputConfig(const OutputConfig& value) { m_outputConfigHasBeenSet = true; m_outputConfig = value; }

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline void SetOutputConfig(OutputConfig&& value) { m_outputConfigHasBeenSet = true; m_outputConfig = std::move(value); }

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline CopyProjectVersionRequest& WithOutputConfig(const OutputConfig& value) { SetOutputConfig(value); return *this;}

    /**
     *
The S3 bucket and folder location where the training output for the source
     * model version is placed.

     */
    inline CopyProjectVersionRequest& WithOutputConfig(OutputConfig&& value) { SetOutputConfig(std::move(value)); return *this;}

    /**
     *
The key-value tags to assign to the model version.

     */
    inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }

    /**
     *
The key-value tags to assign to the model version.

     */
    inline CopyProjectVersionRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); }

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline CopyProjectVersionRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;}

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline CopyProjectVersionRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;}

    /**
     *
The identifier for your AWS Key Management Service key (AWS KMS key). You can
     * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key,
     * an alias for your KMS key, or an alias ARN. The key is used to encrypt training
     * results and manifest files written to the output Amazon S3 bucket
     * (OutputConfig).

If you choose to use your own KMS key, you
     * need the following permissions on the KMS key.

     *
kms:CreateGrant

kms:DescribeKey

     *
kms:GenerateDataKey

kms:Decrypt

If you
     * don't specify a value for KmsKeyId, images copied into the service
     * are encrypted using a key that AWS owns and manages.

     */
    inline CopyProjectVersionRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;}

  private:

    Aws::String m_sourceProjectArn;
    bool m_sourceProjectArnHasBeenSet = false;

    Aws::String m_sourceProjectVersionArn;
    bool m_sourceProjectVersionArnHasBeenSet = false;

    Aws::String m_destinationProjectArn;
    bool m_destinationProjectArnHasBeenSet = false;

    Aws::String m_versionName;
    bool m_versionNameHasBeenSet = false;

    OutputConfig m_outputConfig;
    bool m_outputConfigHasBeenSet = false;

    Aws::Map<Aws::String, Aws::String> m_tags;
    bool m_tagsHasBeenSet = false;

    Aws::String m_kmsKeyId;
    bool m_kmsKeyIdHasBeenSet = false;
  };

} // namespace Model
} // namespace Rekognition
} // namespace Aws


text:
layout: page
title: "Hyman Brown"
comments: true
description: "blanks"
keywords: "Hyman Brown,CU,Boulder"
---
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://dl.dropboxusercontent.com/s/pc42nxpaw1ea4o9/highcharts.js?dl=0"></script>
<!-- <script src="../assets/js/highcharts.js"></script> -->
<style type="text/css">@font-face {
	font-family: "Bebas Neue";
	src: url(https://www.filehosting.org/file/details/544349/BebasNeue Regular.otf) format("opentype");
	}
	h1.Bebas {
		font-family: "Bebas Neue", Verdana, Tahoma;
	}
</style>
</head>

#### TEACHING INFORMATION

**College**: College of Engineering and Applied Science

**Classes taught**: CVEN 3246, CVEN 4087, CVEN 4266, CVEN 5206, CVEN 5226, CVEN 5256

#### CVEN 3246: INTRO TO CONSTRUCTION

**Terms taught**: Fall 2006, Spring 2007, Fall 2007

**Instructor rating**: 4.22

**Standard deviation in instructor rating**: 0.56

**Average grade** (4.0 scale): 2.93

**Standard deviation in grades** (4.0 scale): 0.32

**Average workload** (raw): 1.99

**Standard deviation in workload** (raw): 0.07

#### CVEN 4087: ENGINEERING CONTRACTS

**Terms taught**: Fall 2006

**Instructor rating**: 4.66

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.14

**Standard deviation in grades** (4.0 scale): 0.0

**Average workload** (raw): 2.0

**Standard deviation in workload** (raw): 0.0

#### CVEN 4266: PROJECT ADMINISTRATION

**Terms taught**: Spring 2008

**Instructor rating**: 0.0

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.85

**Standard deviation in grades** (4.0 scale): 0.0

**Average workload** (raw): 0.0

**Standard deviation in workload** (raw): 0.0

#### CVEN 5206: DESIGN DEVELOPMENT

**Terms taught**: Fall 2006, Fall 2007

**Instructor rating**: 5.42

**Standard deviation in instructor rating**: 0.11

**Average grade** (4.0 scale): 3.78

**Standard deviation in grades** (4.0 scale): 0.22

**Average workload** (raw): 2.69

**Standard deviation in workload** (raw): 0.09

#### CVEN 5226: QUALITY AND SAFETY

**Terms taught**: Fall 2006, Spring 2008

**Instructor rating**: 5.45

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.9

**Standard deviation in grades** (4.0 scale): 0.07

**Average workload** (raw): 2.91

**Standard deviation in workload** (raw): 0.0

#### CVEN 5256: STRATEGIC ISSUES/CONSTR

**Terms taught**: Spring 2007

**Instructor rating**: 5.52

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.69

**Standard deviation in grades** (4.0 scale): 0.0

**Average workload** (raw): 2.26

**Standard deviation in workload** (raw): 0.0


text:
{% load i18n qa_tags %}

{% with QUESTION_ID="000000000" %} {# placeholder for url #}


text:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Text.RegularExpressions;
using UnityEngine;

public class InvisibleWallsComponentSolver : ComponentSolver
{
    public InvisibleWallsComponentSolver(BombCommander bombCommander, MonoBehaviour bombComponent, IRCConnection ircConnection, CoroutineCanceller canceller) :
        base(bombCommander, bombComponent, ircConnection, canceller)
    {
        _buttons = (IList)_buttonsField.GetValue(bombComponent);

        helpMessage = "!{0} move up down left right, !{0} move udlr [make a series of white icon moves]";
        manualCode = "Mazes";
    }

    protected override IEnumerator RespondToCommandInternal(string inputCommand)
    {
        if (!inputCommand.StartsWith("move ", StringComparison.InvariantCultureIgnoreCase))
        {
            yield break;
        }

        inputCommand = inputCommand.Substring(5);

        int beforeButtonStrikeCount = StrikeCount;

        foreach (Match move in Regex.Matches(inputCommand, @"[udlr]", RegexOptions.IgnoreCase))
        {
            MonoBehaviour button = (MonoBehaviour)_buttons[  buttonIndex[ move.Value.ToLowerInvariant() ]  ];

            if (button != null)
            {
                yield return move.Value;

                if (Canceller.ShouldCancel)
                {
                    Canceller.ResetCancel();
                    yield break;
                }

                DoInteractionStart(button);
                yield return new WaitForSeconds(0.1f);
                DoInteractionEnd(button);

                //Escape the sequence if a part of the given sequence is wrong
                if (StrikeCount != beforeButtonStrikeCount || Solved)
                {
                    break;
                }
            }
        }
    }

    static InvisibleWallsComponentSolver()
    {
        _invisibleWallsComponentType = ReflectionHelper.FindType("InvisibleWallsComponent");
        _buttonsField = _invisibleWallsComponentType.GetField("Buttons", BindingFlags.Public | BindingFlags.Instance);
    }

    private static Type _invisibleWallsComponentType = null;
    private static FieldInfo _buttonsField = null;
    private static readonly Dictionary<string, int> buttonIndex = new Dictionary<string, int>
    {
        {"u", 0}, {"l", 1}, {"r", 2}, {"d", 3}
    };

    private IList _buttons = null;
}


text:
'use strict';

// VARIABLES //

// See [D3 documentation]{@link https://github.com/mbostock/d3/wiki/Ordinal-Scales#category10}.
var OPTS = [
	'category10',
	'category20',
	'category20b',
	'category20c'
];

// WATCHER //

/**
* FUNCTION: colorsChanged( val[, newVal] )
*	Event handler for changes to the color scale range.
*
* @param {String|Array} val - change event value
* @param {String|Array} [newVal] - new color scale domain
*/
function colorsChanged( val, newVal ) {
	/* jslint validthis:true */
	var err;
	if ( arguments.length > 1 ) {
		if ( typeof newVal === 'string' ) {
			if ( OPTS.indexOf( newVal ) === -1 ) {
				err = new TypeError( 'colors::invalid assignment. Unrecognized color set. Value: `' + newVal + '`.' );
				this.fire( 'err', err );
				this.colors = val;
				return;
			}
		}
		else if ( !Array.isArray( newVal ) ) {
			err = new TypeError( 'colors::invalid assignment. Colors must be an `array` of strings or a recognized color set. Value: `' + newVal + '`.' );
			this.fire( 'err', err );
			this.colors = val;
			return;
		}
	}
	if ( typeof this.colors === 'string' ) {
		this._colors = this._d3.scale[ this.colors ]().range();
	} else {
		this._colors = this.colors.slice();
	}
	this._cScale.range( this._colors );

	if ( this.autoUpdate ) {
		this.$.cells.attr( 'fill', this._color );
	}
	this.fire( 'colors', {
		'type': 'changed'
	});
	if ( newVal === void 0 ) {
		this.fire( 'change', {
			'attr': 'colors',
			'data': val[ 0 ]
		});
	} else {
		this.fire( 'change', {
			'attr': 'colors',
			'prev': val,
			'curr': newVal
		});
	}
} // end FUNCTION colorsChanged()

// EXPORTS //

module.exports = colorsChanged;


text:
<!DOCTYPE html>

	<meta charset="UTF-8">
	<title>good day!</title>
	<link rel="stylesheet" href="/blog/lib/prism/prism.css">
	<link rel="stylesheet" href="/blog/lib/dialog/dialog.css">
	<link rel="stylesheet" href="/blog/lib/bootstrap.min.css">
	<link rel="stylesheet" href="/blog/pages/createBlog/createBlog.css">

					介绍图

				点击上传吧

					已上传的图片

				点击上传吧

					<input type="text" class="form-control titleInput" style="" name="title" placeholder="title">

					<button class="btn btn-info btn-sm" style="margin-bottom:10px;" onclick="document.execCommand('bold')">加粗</button>
					<button class="btn btn-info btn-sm" style="margin-bottom:10px;" onclick="document.execCommand('italic')">倾斜</button>
					<button class="btn btn-info btn-sm" style="margin-bottom:10px;" onclick="document.execCommand('underline')">下划线</button>
					<button class="btn btn-info btn-sm" style="margin-bottom:10px;" onclick="document.execCommand('strikeThrough')">中划线</button>
					<button class="btn btn-info btn-sm " style="margin-bottom:10px;" id="op_createLink"  >插入链接</button>
					<button class="btn btn-info btn-sm " style="margin-bottom:10px;" id="op_backColor"  >背景色</button>
					<button class="btn btn-info btn-sm " style="margin-bottom:10px;" onclick="document.execCommand('insertHorizontalRule')"  >插入水平线</button>

					<textarea class="form-control" id="introductionContent" name="introductionContent" rows="5" style="margin-bottom:10px;" placeholder="引言"></textarea>
					<button class="submit btn btn-primary btn-block">提交</button>

		<input type="file" name="upfile" id="upfile">