# Makefile.in generated by automake 1.14 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2013 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
noinst_PROGRAMS = calcclient$(EXEEXT) calcserver$(EXEEXT)
DIST_COMMON = $(srcdir)/../Makefile.defines \
	$(srcdir)/../Makefile.cpp_proxy_rules $(srcdir)/Makefile.in \
	$(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
	$(top_srcdir)/depcomp
subdir = gsoap/samples/calc++
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
PROGRAMS = $(noinst_PROGRAMS)
am__objects_1 =
am__objects_2 = soapC.$(OBJEXT)
am_calcclient_OBJECTS = calcclient.$(OBJEXT) $(am__objects_1) \
	$(am__objects_2) soapcalcProxy.$(OBJEXT)
calcclient_OBJECTS = $(am_calcclient_OBJECTS)
am__DEPENDENCIES_1 =
calcclient_DEPENDENCIES = $(SOAP_CPP_LIB) $(am__DEPENDENCIES_1)
am_calcserver_OBJECTS = calcserver.$(OBJEXT) $(am__objects_1) \
	$(am__objects_2) soapcalcService.$(OBJEXT)
calcserver_OBJECTS = $(am_calcserver_OBJECTS)
calcserver_DEPENDENCIES = $(SOAP_CPP_LIB) $(am__DEPENDENCIES_1)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo "  CXX     " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
	-o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo "  CXXLD   " $@;
am__v_CXXLD_1 =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo "  CC      " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 =
SOURCES = $(calcclient_SOURCES) $(calcserver_SOURCES)
DIST_SOURCES = $(calcclient_SOURCES) $(calcserver_SOURCES)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates.  Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
  BEGIN { nonempty = 0; } \
  { items[$$0] = 1; nonempty = 1; } \
  END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique.  This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
  list='$(am__tagged_files)'; \
  unique=`for i in $$list; do \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BISON_DEFINE = @BISON_DEFINE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = $(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_SAMPLES = @ENABLE_SAMPLES@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_DEFINE = @LEX_DEFINE@
LEX_FLAGS = @LEX_FLAGS@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SAMPLE_DIRS = @SAMPLE_DIRS@
SAMPLE_EXTRA_LIBS = @SAMPLE_EXTRA_LIBS@
SAMPLE_INCLUDES = @SAMPLE_INCLUDES@
SAMPLE_SSL_LIBS = @SAMPLE_SSL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOAPCPP2_DEBUG = @SOAPCPP2_DEBUG@
SOAPCPP2_IMPORTPATH = @SOAPCPP2_IMPORTPATH@
SOAPCPP2_IPV6 = @SOAPCPP2_IPV6@
SOAPCPP2_NONAMESPACES = @SOAPCPP2_NONAMESPACES@
STRIP = @STRIP@
VERSION = @VERSION@
WSDL2H_EXTRA_FLAGS = @WSDL2H_EXTRA_FLAGS@
WSDL2H_EXTRA_LIBS = @WSDL2H_EXTRA_LIBS@
WSDL2H_IMPORTPATH = @WSDL2H_IMPORTPATH@
WSDL2H_SOAP_CPP_LIB = @WSDL2H_SOAP_CPP_LIB@
YACC = @YACC@
YACC_LIB = @YACC_LIB@
YFLAGS = @YFLAGS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
platform = @platform@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

####### This is the input file for automake, which will generate Makefile.in ##########
AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
SOAPHEADER = calc.h
AM_CFLAGS = -D$(platform)
AM_CXXFLAGS = -D$(platform)
SOAP = $(top_srcdir)/gsoap/src/soapcpp2
SOAP_NS_DEF = ns.nsmap ns.wsdl
SOAP_H_FILES = soapH.h soapStub.h
SOAP_C_CORE = soapC.c
SOAP_C_CLIENT = soapClient.c $(SOAP_C_CORE)
SOAP_C_SERVER = soapServer.c $(SOAP_C_CORE)
SOAP_C_LIB = $(top_builddir)/gsoap/libgsoap.a
SOAP_C_LIB_CK = $(top_builddir)/gsoap/libgsoapck.a
SOAP_C_LIB_SSL = $(top_builddir)/gsoap/libgsoapssl.a
SOAP_CPP_CORE = soapC.cpp
SOAP_CPP_CLIENT = soapClient.cpp $(SOAP_CPP_CORE)
SOAP_CPP_SERVER = soapServer.cpp $(SOAP_CPP_CORE)
SOAP_CPP_LIB = $(top_builddir)/gsoap/libgsoap++.a
SOAP_CPP_LIB_CK = $(top_builddir)/gsoap/libgsoapck++.a
SOAP_CPP_LIB_SSL = $(top_builddir)/gsoap/libgsoapssl++.a
SOAP_CPP_SRC = $(SOAP_H_FILES) $(SOAP_NS)
LDADD = $(SOAP_CPP_LIB) $(SAMPLE_EXTRA_LIBS)
BUILT_SOURCES = $(SOAP_CPP_SRC)
CLEANFILES = $(SOAP_CPP_SRC) *.req.xml *.res.xml *.nsmap *.xsd soapStub.h soapH.h soapC.cpp soap*Proxy.h soap*Proxy.cpp soap*Object.h soap*Service.h soap*Service.cpp soapClient.cpp soapServer.cpp soapClientLib.cpp soapServerLib.cpp *~
SOAP_NS = calc.nsmap calc.wsdl
calcclient_SOURCES = calcclient.cpp $(SOAPHEADER) $(SOAP_CPP_CORE) soapcalcProxy.cpp
calcclient_LDADD = $(SOAP_CPP_LIB) $(SAMPLE_EXTRA_LIBS)
calcserver_SOURCES = calcserver.cpp $(SOAPHEADER) $(SOAP_CPP_CORE) soapcalcService.cpp
calcserver_LDADD = $(SOAP_CPP_LIB) $(SAMPLE_EXTRA_LIBS) -lm
all: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) all-am

.SUFFIXES:
.SUFFIXES: .cpp .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/../Makefile.defines $(srcdir)/../Makefile.cpp_proxy_rules $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gsoap/samples/calc++/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign gsoap/samples/calc++/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;
$(srcdir)/../Makefile.defines $(srcdir)/../Makefile.cpp_proxy_rules:

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):

clean-noinstPROGRAMS:
	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)

calcclient$(EXEEXT): $(calcclient_OBJECTS) $(calcclient_DEPENDENCIES) $(EXTRA_calcclient_DEPENDENCIES)
	@rm -f calcclient$(EXEEXT)
	$(AM_V_CXXLD)$(CXXLINK) $(calcclient_OBJECTS) $(calcclient_LDADD) $(LIBS)

calcserver$(EXEEXT): $(calcserver_OBJECTS) $(calcserver_DEPENDENCIES) $(EXTRA_calcserver_DEPENDENCIES)
	@rm -f calcserver$(EXEEXT)
	$(AM_V_CXXLD)$(CXXLINK) $(calcserver_OBJECTS) $(calcserver_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calcclient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calcserver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soapC.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soapcalcProxy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soapcalcService.Po@am__quote@

.cpp.o:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<

.cpp.obj:
@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(am__define_uniq_tagged_files); \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: ctags-am

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && $(am__cd) $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(PROGRAMS)
installdirs:
install: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am

clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am

distclean: distclean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: all check install install-am install-strip

.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
	clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
	distclean-compile distclean-generic distclean-tags distdir dvi \
	dvi-am html html-am info info-am install install-am \
	install-data install-data-am install-dvi install-dvi-am \
	install-exec install-exec-am install-html install-html-am \
	install-info install-info-am install-man install-pdf \
	install-pdf-am install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
	uninstall-am

$(SOAP_CPP_SRC) : $(SOAPHEADER)
	$(SOAP) -i -I$(top_srcdir)/gsoap/import:$(top_srcdir)/gsoap $(SOAP_FLAGS) $<

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

{'repo_name': 'hummatli/onvif-qt-server-client', 'stars': '108', 'repo_language': 'C++', 'file_name': 'deviceserviceext.h', 'mime_type': 'text/x-c++', 'hash': -6094310026368026612, 'source_dataset': 'data'}


DO NOT EDIT - See: https://www.eclipse.org/jetty/documentation/current/startup-modules.html

[files]
maven://org.mortbay.jetty.alpn/alpn-boot/8.1.7.v20160121|lib/alpn/alpn-boot-8.1.7.v20160121.jar

[exec]
-Xbootclasspath/p:lib/alpn/alpn-boot-8.1.7.v20160121.jar

{'repo_name': 'google/caja', 'stars': '1046', 'repo_language': 'Java', 'file_name': 'README', 'mime_type': 'text/plain', 'hash': -8530299458838094528, 'source_dataset': 'data'}


//===- Transforms/Instrumentation/GCOVProfiler.h ----------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
/// \file
/// This file provides the interface for the GCOV style profiler  pass.
//===----------------------------------------------------------------------===//

#ifndef LLVM_TRANSFORMS_GCOVPROFILER_H
#define LLVM_TRANSFORMS_GCOVPROFILER_H

#include "llvm/IR/PassManager.h"
#include "llvm/Transforms/Instrumentation.h"

namespace llvm {
/// The gcov-style instrumentation pass
class GCOVProfilerPass : public PassInfoMixin<GCOVProfilerPass> {
public:
  GCOVProfilerPass(const GCOVOptions &Options = GCOVOptions::getDefault()) : GCOVOpts(Options) { }
  PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);

private:
  GCOVOptions GCOVOpts;
};

} // End llvm namespace
#endif

{'repo_name': 'IIJ-NetBSD/netbsd-src', 'stars': '114', 'repo_language': 'None', 'file_name': 'cross.pl', 'mime_type': 'text/x-perl', 'hash': 8263366872157997826, 'source_dataset': 'data'}


#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED

// Copyright Aleksey Gurtovoy 2000-2004
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.lslboost.org/LICENSE_1_0.txt)
//
// See http://www.lslboost.org/libs/mpl for documentation.

// $Id: list40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
// $Revision: 49267 $

#if !defined(BOOST_MPL_PREPROCESSING_MODE)
#   include <lslboost/mpl/list/list30_c.hpp>
#endif

#include <lslboost/mpl/aux_/config/use_preprocessed.hpp>

#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
 && !defined(BOOST_MPL_PREPROCESSING_MODE)

#   define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
#   include <lslboost/mpl/list/aux_/include_preprocessed.hpp>

#else

#   include <lslboost/preprocessor/iterate.hpp>

namespace lslboost { namespace mpl {

#   define BOOST_PP_ITERATION_PARAMS_1 \
    (3,(31, 40, <lslboost/mpl/list/aux_/numbered_c.hpp>))
#   include BOOST_PP_ITERATE()

}}

#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS

#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED

{'repo_name': 'sccn/lsl_archived', 'stars': '250', 'repo_language': 'C++', 'file_name': 'ReceiveData.m', 'mime_type': 'text/plain', 'hash': -6872587062615899626, 'source_dataset': 'data'}


<?php

namespace Viber\Api\Keyboard;

use Viber\Api\Entity;

/**
 * Keyboard button.
 *
 * Pressing a keyboard button would trigger a different reply depending on the
 * buttons “ActionType” value.
 *
 * @see https://developers.viber.com/tools/keyboards/index.html
 * @see https://developers.viber.com/img/keyboard_guidelines.png
 *
 * @author Novikov Bogdan <hcbogdan@gmail.com>
 */
class Button extends Entity
{
    /**
     * Button width in columns (1-6)
     *
     * @var integer
     */
    protected $Columns = 6;

    /**
     * Button height in rows (1-2)
     *
     * @var integer
     */
    protected $Rows = 1;

    /**
     * Background color of button
     *
     * @var string
     */
    protected $BgColor;

    /**
     * Type of the background media ("picture" or "gif")
     * For picture - JPEG and PNG files are supported.
     * Max size: 500 kb
     *
     * @var string
     */
    protected $BgMediaType;

    /**
     * URL for background media content.
     * Will be placed with aspect to fill logic.
     *
     * @var string
     */
    protected $BgMedia;

    /**
     * When true - animated background media (gif) will loop continuously.
     * When false - animated background media will play once and stop.
     *
     * @var boolean
     */
    protected $BgLoop;

    /**
     * Type of action pressing the button will perform.
     * "reply" - will send a reply to the PA.
     * "open-url" - will open the specified URL and send the URL as reply to the PA.
     *
     * @see https://developers.viber.com/tools/keyboards/index.html#replyLogic
     *
     * @var string
     */
    protected $ActionType;

    /**
     * Text for reply ActionType OR URL for "open-url".
     * For ActionType reply - text
     * For ActionType open-url - Valid URL.
     * Max length: Android - 250 characters; iOS - 100 characters
     *
     * @var string
     */
    protected $ActionBody;

    /**
     * URL of image to place on top of background (if any). Can be a partially
     * transparent image that will allow showing some of the background.
     * Will be placed with aspect to fill logic.
     *
     * Valid URL. JPEG and PNG files are supported. Max size: 500 kb
     *
     * @var string
     */
    protected $Image;

    /**
     * Text to be displayed on the button. Can contain some HTML tags.
     *
     * Free text. Valid and allowed HTML tags Max 250 characters. If the text
     * is too long to display on the button it will be cropped and ended
     * with "..."
     *
     * @var string
     */
    protected $Text;

    /**
     * Vertical alignment of the text
     *
     * Avail: top, middle, bottom
     *
     * @var string
     */
    protected $TextVAlign;

    /**
     * Horizontal align of the text
     *
     * Avail: left, center, right
     *
     * @var string
     */
    protected $TextHAlign;

    /**
     * Text opacity. Range: 0-100
     *
     * @var integer
     */
    protected $TextOpacity;

    /**
     * Text size out of 3 available options: small, regular, large
     *
     * @var string
     */
    protected $TextSize;

    /**
     * Option for enable/disable display text on open-url action
     *
     * @var bool
     */
    protected $Silent;

    /**
     * {@inheritDoc}
     */
    public function toArray()
    {
        return [
            'Columns' => $this->getColumns(),
            'Rows' => $this->getRows(),
            'BgColor' => $this->getBgColor(),
            'BgMediaType' => $this->getBgMediaType(),
            'BgMedia' => $this->getBgMedia(),
            'BgLoop' => $this->getBgLoop(),
            'ActionType' => $this->getActionType(),
            'ActionBody' => $this->getActionBody(),
            'Image' => $this->getImage(),
            'Text' => $this->getText(),
            'TextVAlign' => $this->getTextVAlign(),
            'TextHAlign' => $this->getTextHAlign(),
            'TextOpacity' => $this->getTextOpacity(),
            'TextSize' => $this->getTextSize(),
            'Silent' => $this->isSilent(),
        ];
    }

    /**
     * Get the value of Button width in columns (1-6)
     *
     * @return integer
     */
    public function getColumns()
    {
        return $this->Columns;
    }

    /**
     * Set the value of Button width in columns (1-6)
     *
     * @param integer Columns
     *
     * @return self
     */
    public function setColumns($Columns)
    {
        $this->Columns = $Columns;

        return $this;
    }

    /**
     * Get the value of Button height in rows (1-2)
     *
     * @return integer
     */
    public function getRows()
    {
        return $this->Rows;
    }

    /**
     * Set the value of Button height in rows (1-2)
     *
     * @param integer Rows
     *
     * @return self
     */
    public function setRows($Rows)
    {
        $this->Rows = $Rows;

        return $this;
    }

    /**
     * Get the value of Background color of button
     *
     * @return string
     */
    public function getBgColor()
    {
        return $this->BgColor;
    }

    /**
     * Set the value of Background color of button
     *
     * @param string BgColor
     *
     * @return self
     */
    public function setBgColor($BgColor)
    {
        $this->BgColor = $BgColor;

        return $this;
    }

    /**
     * Get the value of Type of the background media ("picture" or "gif")
     *
     * @return string
     */
    public function getBgMediaType()
    {
        return $this->BgMediaType;
    }

    /**
     * Set the value of Type of the background media ("picture" or "gif")
     *
     * @param string BgMediaType
     *
     * @return self
     */
    public function setBgMediaType($BgMediaType)
    {
        $this->BgMediaType = $BgMediaType;

        return $this;
    }

    /**
     * Get the value of URL for background media content.
     *
     * @return string
     */
    public function getBgMedia()
    {
        return $this->BgMedia;
    }

    /**
     * Set the value of URL for background media content.
     *
     * @param string BgMedia
     *
     * @return self
     */
    public function setBgMedia($BgMedia)
    {
        $this->BgMedia = $BgMedia;

        return $this;
    }

    /**
     * Get the value of When true - animated background media (gif) will loop continuously.
     *
     * @return boolean
     */
    public function getBgLoop()
    {
        return $this->BgLoop;
    }

    /**
     * Set the value of When true - animated background media (gif) will loop continuously.
     *
     * @param boolean BgLoop
     *
     * @return self
     */
    public function setBgLoop($BgLoop)
    {
        $this->BgLoop = $BgLoop;

        return $this;
    }

    /**
     * Get the value of Type of action pressing the button will perform.
     *
     * @return string
     */
    public function getActionType()
    {
        return $this->ActionType;
    }

    /**
     * Set the value of Type of action pressing the button will perform.
     *
     * @param string ActionType
     *
     * @return self
     */
    public function setActionType($ActionType)
    {
        $this->ActionType = $ActionType;

        return $this;
    }

    /**
     * Get the value of Text for reply ActionType OR URL for "open-url".
     *
     * @return string
     */
    public function getActionBody()
    {
        return $this->ActionBody;
    }

    /**
     * Set the value of Text for reply ActionType OR URL for "open-url".
     *
     * @param string ActionBody
     *
     * @return self
     */
    public function setActionBody($ActionBody)
    {
        $this->ActionBody = $ActionBody;

        return $this;
    }

    /**
     * Get the value of URL of image to place on top of background (if any). Can be a partially
     *
     * @return string
     */
    public function getImage()
    {
        return $this->Image;
    }

    /**
     * Set the value of URL of image to place on top of background (if any). Can be a partially
     *
     * @param string Image
     *
     * @return self
     */
    public function setImage($Image)
    {
        $this->Image = $Image;

        return $this;
    }

    /**
     * Get the value of Text to be displayed on the button. Can contain some HTML tags.
     *
     * @return string
     */
    public function getText()
    {
        return $this->Text;
    }

    /**
     * Set the value of Text to be displayed on the button. Can contain some HTML tags.
     *
     * @param string Text
     *
     * @return self
     */
    public function setText($Text)
    {
        $this->Text = $Text;

        return $this;
    }

    /**
     * Get the value of Vertical alignment of the text
     *
     * @return string
     */
    public function getTextVAlign()
    {
        return $this->TextVAlign;
    }

    /**
     * Set the value of Vertical alignment of the text
     *
     * @param string TextVAlign
     *
     * @return self
     */
    public function setTextVAlign($TextVAlign)
    {
        $this->TextVAlign = $TextVAlign;

        return $this;
    }

    /**
     * Get the value of Horizontal align of the text
     *
     * @return string
     */
    public function getTextHAlign()
    {
        return $this->TextHAlign;
    }

    /**
     * Set the value of Horizontal align of the text
     *
     * @param string TextHAlign
     *
     * @return self
     */
    public function setTextHAlign($TextHAlign)
    {
        $this->TextHAlign = $TextHAlign;

        return $this;
    }

    /**
     * Get the value of Text opacity. Range: 0-100
     *
     * @return integer
     */
    public function getTextOpacity()
    {
        return $this->TextOpacity;
    }

    /**
     * Set the value of Text opacity. Range: 0-100
     *
     * @param integer TextOpacity
     *
     * @return self
     */
    public function setTextOpacity($TextOpacity)
    {
        $this->TextOpacity = $TextOpacity;

        return $this;
    }

    /**
     * Get the value of Text size out of 3 available options: small, regular, large
     *
     * @return string
     */
    public function getTextSize()
    {
        return $this->TextSize;
    }

    /**
     * Set the value of Text size out of 3 available options: small, regular, large
     *
     * @param string TextSize
     *
     * @return self
     */
    public function setTextSize($TextSize)
    {
        $this->TextSize = $TextSize;

        return $this;
    }

    /**
     * @return bool
     */
    public function isSilent()
    {
        return (bool) $this->Silent;
    }

    /**
     * @param bool $Silent
     *
     * @return self
     */
    public function setSilent($Silent)
    {
        $this->Silent = $Silent;

        return $this;
    }
}

{'repo_name': 'Bogdaan/viber-bot-php', 'stars': '185', 'repo_language': 'PHP', 'file_name': 'ButtonTest.php', 'mime_type': 'text/x-php', 'hash': 7073326377401580784, 'source_dataset': 'data'}


fileFormatVersion: 2
guid: b086b02903ca51e479499efe5af7778a
timeCreated: 1491139675
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:

{'repo_name': 'RosaryMala/armok-vision', 'stars': '268', 'repo_language': 'C#', 'file_name': 'Stocking Alpha.tga.meta', 'mime_type': 'text/plain', 'hash': -1999688951476951876, 'source_dataset': 'data'}


/*
 * MinIO Java SDK for Amazon S3 Compatible Cloud Storage, (C) 2020 MinIO, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.minio;

/** Argument class of MinioClient.getBucketEncryption(). */
public class GetBucketEncryptionArgs extends BucketArgs {
  public static Builder builder() {
    return new Builder();
  }

  /** Argument builder of {@link GetBucketEncryptionArgs}. */
  public static final class Builder extends BucketArgs.Builder<Builder, GetBucketEncryptionArgs> {}
}

{'repo_name': 'minio/minio-java', 'stars': '342', 'repo_language': 'Java', 'file_name': 'FunctionalTest.java', 'mime_type': 'text/x-java', 'hash': -87617597174320704, 'source_dataset': 'data'}


/*
 * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package jdk.javadoc.internal.doclets.toolkit;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
import javax.tools.FileObject;
import javax.tools.JavaFileManager.Location;

import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.util.JavacTask;
import com.sun.source.util.TreePath;
import com.sun.tools.doclint.DocLint;
import com.sun.tools.javac.api.BasicJavacTask;
import com.sun.tools.javac.code.Attribute;
import com.sun.tools.javac.code.Flags;
import com.sun.tools.javac.code.Scope;
import com.sun.tools.javac.code.Source.Feature;
import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.Symbol.ClassSymbol;
import com.sun.tools.javac.code.Symbol.MethodSymbol;
import com.sun.tools.javac.code.Symbol.ModuleSymbol;
import com.sun.tools.javac.code.Symbol.PackageSymbol;
import com.sun.tools.javac.code.Symbol.VarSymbol;
import com.sun.tools.javac.code.TypeTag;
import com.sun.tools.javac.comp.AttrContext;
import com.sun.tools.javac.comp.Env;
import com.sun.tools.javac.model.JavacElements;
import com.sun.tools.javac.model.JavacTypes;
import com.sun.tools.javac.util.Names;

import jdk.javadoc.internal.doclets.toolkit.util.Utils;
import jdk.javadoc.internal.tool.ToolEnvironment;
import jdk.javadoc.internal.tool.DocEnvImpl;

import static com.sun.tools.javac.code.Kinds.Kind.*;
import static com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE;

import static javax.lang.model.element.ElementKind.*;

/**
 * A quarantine class to isolate all the workarounds and bridges to
 * a locality. This class should eventually disappear once all the
 * standard APIs support the needed interfaces.
 *
 *
 *
This is NOT part of any supported API.
 *  If you write code that depends on this, you do so at your own risk.
 *  This code and its internal interfaces are subject to change or
 *  deletion without notice.
 */
public class WorkArounds {

    public final BaseConfiguration configuration;
    public final ToolEnvironment toolEnv;
    public final Utils utils;

    private DocLint doclint;

    public WorkArounds(BaseConfiguration configuration) {
        this.configuration = configuration;
        this.utils = this.configuration.utils;
        this.toolEnv = ((DocEnvImpl)this.configuration.docEnv).toolEnv;
    }

    Map<CompilationUnitTree, Boolean> shouldCheck = new HashMap<>();
    // TODO: fix this up correctly
    public void runDocLint(TreePath path) {
        CompilationUnitTree unit = path.getCompilationUnit();
        if (doclint != null && shouldCheck.computeIfAbsent(unit, doclint::shouldCheck)) {
            doclint.scan(path);
        }
    }

    // TODO: fix this up correctly
    public void initDocLint(Collection<String> opts, Collection<String> customTagNames, String htmlVersion) {
        ArrayList<String> doclintOpts = new ArrayList<>();
        boolean msgOptionSeen = false;

        for (String opt : opts) {
            if (opt.startsWith(DocLint.XMSGS_OPTION)) {
                if (opt.equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))
                    return;
                msgOptionSeen = true;
            }
            doclintOpts.add(opt);
        }

        if (!msgOptionSeen) {
            doclintOpts.add(DocLint.XMSGS_OPTION);
        }

        String sep = "";
        StringBuilder customTags = new StringBuilder();
        for (String customTag : customTagNames) {
            customTags.append(sep);
            customTags.append(customTag);
            sep = DocLint.SEPARATOR;
        }
        doclintOpts.add(DocLint.XCUSTOM_TAGS_PREFIX + customTags.toString());
        doclintOpts.add(DocLint.XHTML_VERSION_PREFIX + htmlVersion);

        JavacTask t = BasicJavacTask.instance(toolEnv.context);
        doclint = new DocLint();
        // standard doclet normally generates H1, H2
        doclintOpts.add(DocLint.XIMPLICIT_HEADERS + "2");
        doclint.init(t, doclintOpts.toArray(new String[doclintOpts.size()]), false);
    }

    // TODO: fix this up correctly
    public boolean haveDocLint() {
        return (doclint == null);
    }

    /*
     * TODO: This method exists because of a bug in javac which does not
     * handle "@deprecated tag in package-info.java", when this issue
     * is fixed this method and its uses must be jettisoned.
     */
    public boolean isDeprecated0(Element e) {
        if (!utils.getDeprecatedTrees(e).isEmpty()) {
            return true;
        }
        JavacTypes jctypes = ((DocEnvImpl)configuration.docEnv).toolEnv.typeutils;
        TypeMirror deprecatedType = utils.getDeprecatedType();
        for (AnnotationMirror anno : e.getAnnotationMirrors()) {
            if (jctypes.isSameType(anno.getAnnotationType().asElement().asType(), deprecatedType))
                return true;
        }
        return false;
    }

    // TODO: fix jx.l.m add this method.
    public boolean isSynthesized(AnnotationMirror aDesc) {
        return ((Attribute)aDesc).isSynthesized();
    }

    // TODO: fix the caller
    public Object getConstValue(VariableElement ve) {
        return ((VarSymbol)ve).getConstValue();
    }

    // TODO: DocTrees: Trees.getPath(Element e) is slow a factor 4-5 times.
    public Map<Element, TreePath> getElementToTreePath() {
        return toolEnv.elementToTreePath;
    }

    // TODO: we need ElementUtils.getPackage to cope with input strings
    // to return the proper unnamedPackage for all supported releases.
    PackageElement getUnnamedPackage() {
        return (Feature.MODULES.allowedInSource(toolEnv.source))
                ? toolEnv.syms.unnamedModule.unnamedPackage
                : toolEnv.syms.noModule.unnamedPackage;
    }

    // TODO: implement in either jx.l.m API (preferred) or DocletEnvironment.
    FileObject getJavaFileObject(PackageElement packageElement) {
        return ((PackageSymbol)packageElement).sourcefile;
    }

    // TODO: needs to ported to jx.l.m.
    public TypeElement searchClass(TypeElement klass, String className) {
        TypeElement te;

        // search by qualified name in current module first
        ModuleElement me = utils.containingModule(klass);
        if (me != null) {
            te = configuration.docEnv.getElementUtils().getTypeElement(me, className);
            if (te != null) {
                return te;
            }
        }

        // search inner classes
        for (TypeElement ite : utils.getClasses(klass)) {
            TypeElement innerClass = searchClass(ite, className);
            if (innerClass != null) {
                return innerClass;
            }
        }

        // check in this package
        te = utils.findClassInPackageElement(utils.containingPackage(klass), className);
        if (te != null) {
            return te;
        }

        ClassSymbol tsym = (ClassSymbol)klass;
        // make sure that this symbol has been completed
        // TODO: do we need this anymore ?
        if (tsym.completer != null) {
            tsym.complete();
        }

        // search imports
        if (tsym.sourcefile != null) {

            //### This information is available only for source classes.
            Env<AttrContext> compenv = toolEnv.getEnv(tsym);
            if (compenv == null) {
                return null;
            }
            Names names = tsym.name.table.names;
            Scope s = compenv.toplevel.namedImportScope;
            for (Symbol sym : s.getSymbolsByName(names.fromString(className))) {
                if (sym.kind == TYP) {
                    return (TypeElement)sym;
                }
            }

            s = compenv.toplevel.starImportScope;
            for (Symbol sym : s.getSymbolsByName(names.fromString(className))) {
                if (sym.kind == TYP) {
                    return (TypeElement)sym;
                }
            }
        }

        // finally, search by qualified name in all modules
        te = configuration.docEnv.getElementUtils().getTypeElement(className);
        if (te != null) {
            return te;
        }

        return null; // not found
    }

    // TODO:  need to re-implement this using j.l.m. correctly!, this has
    // implications on testInterface, the note here is that javac's supertype
    // does the right thing returning Parameters in scope.
    /**
     * Return the type containing the method that this method overrides.
     * It may be a TypeElement or a TypeParameterElement.
     * @param method target
     * @return a type
     */
    public TypeMirror overriddenType(ExecutableElement method) {
        if (utils.isStatic(method)) {
            return null;
        }
        MethodSymbol sym = (MethodSymbol)method;
        ClassSymbol origin = (ClassSymbol) sym.owner;
        for (com.sun.tools.javac.code.Type t = toolEnv.getTypes().supertype(origin.type);
                t.hasTag(TypeTag.CLASS);
                t = toolEnv.getTypes().supertype(t)) {
            ClassSymbol c = (ClassSymbol) t.tsym;
            for (com.sun.tools.javac.code.Symbol sym2 : c.members().getSymbolsByName(sym.name)) {
                if (sym.overrides(sym2, origin, toolEnv.getTypes(), true)) {
                    // Ignore those methods that may be a simple override
                    // and allow the real API method to be found.
                    if (sym2.type.hasTag(TypeTag.METHOD) &&
                            utils.isSimpleOverride((MethodSymbol)sym2)) {
                        continue;
                    }
                    return t;
                }
            }
        }
        return null;
    }

    // TODO: the method jx.l.m.Elements::overrides does not check
    // the return type, see JDK-8174840 until that is resolved,
    // use a  copy of the same method, with a return type check.

    // Note: the rider.overrides call in this method *must* be consistent
    // with the call in overrideType(....), the method above.
    public boolean overrides(ExecutableElement e1, ExecutableElement e2, TypeElement cls) {
        MethodSymbol rider = (MethodSymbol)e1;
        MethodSymbol ridee = (MethodSymbol)e2;
        ClassSymbol origin = (ClassSymbol)cls;

        return rider.name == ridee.name &&

               // not reflexive as per JLS
               rider != ridee &&

               // we don't care if ridee is static, though that wouldn't
               // compile
               !rider.isStatic() &&

               // Symbol.overrides assumes the following
               ridee.isMemberOf(origin, toolEnv.getTypes()) &&

               // check access, signatures and check return types
               rider.overrides(ridee, origin, toolEnv.getTypes(), true);
    }

    // TODO: jx.l.m ?
    public Location getLocationForModule(ModuleElement mdle) {
        ModuleSymbol msym = (ModuleSymbol)mdle;
        return msym.sourceLocation != null
                ? msym.sourceLocation
                : msym.classLocation;
    }

    //------------------Start of Serializable Implementation---------------------//
    private final static Map<TypeElement, NewSerializedForm> serializedForms = new HashMap<>();

    public SortedSet<VariableElement> getSerializableFields(Utils utils, TypeElement klass) {
        NewSerializedForm sf = serializedForms.get(klass);
        if (sf == null) {
            sf = new NewSerializedForm(utils, configuration.docEnv.getElementUtils(), klass);
            serializedForms.put(klass, sf);
        }
        return sf.fields;
    }

    public SortedSet<ExecutableElement>  getSerializationMethods(Utils utils, TypeElement klass) {
        NewSerializedForm sf = serializedForms.get(klass);
        if (sf == null) {
            sf = new NewSerializedForm(utils, configuration.docEnv.getElementUtils(), klass);
            serializedForms.put(klass, sf);
        }
        return sf.methods;
    }

    public boolean definesSerializableFields(Utils utils, TypeElement klass) {
        if (!utils.isSerializable(klass) || utils.isExternalizable(klass)) {
            return false;
        } else {
            NewSerializedForm sf = serializedForms.get(klass);
            if (sf == null) {
                sf = new NewSerializedForm(utils, configuration.docEnv.getElementUtils(), klass);
                serializedForms.put(klass, sf);
            }
            return sf.definesSerializableFields;
        }
    }

    /* TODO we need a clean port to jx.l.m
     * The serialized form is the specification of a class' serialization state.
     *

     *
     * It consists of the following information:
     *

     *
     *

     * 1. Whether class is Serializable or Externalizable.
     * 2. Javadoc for serialization methods.
     *    a. For Serializable, the optional readObject, writeObject,
     *       readResolve and writeReplace.
     *       serialData tag describes, in prose, the sequence and type
     *       of optional data written by writeObject.
     *    b. For Externalizable, writeExternal and readExternal.
     *       serialData tag describes, in prose, the sequence and type
     *       of optional data written by writeExternal.
     * 3. Javadoc for serialization data layout.
     *    a. For Serializable, the name,type and description
     *       of each Serializable fields.
     *    b. For Externalizable, data layout is described by 2(b).
     *

     *
     */
    static class NewSerializedForm {

        final Utils utils;
        final Elements elements;

        final SortedSet<ExecutableElement> methods;

        /* List of FieldDocImpl - Serializable fields.
         * Singleton list if class defines Serializable fields explicitly.
         * Otherwise, list of default serializable fields.
         * 0 length list for Externalizable.
         */
        final SortedSet<VariableElement> fields;

        /* True if class specifies serializable fields explicitly.
         * using special static member, serialPersistentFields.
         */
        boolean definesSerializableFields = false;

        // Specially treated field/method names defined by Serialization.
        private static final String SERIALIZABLE_FIELDS = "serialPersistentFields";
        private static final String READOBJECT = "readObject";
        private static final String WRITEOBJECT = "writeObject";
        private static final String READRESOLVE = "readResolve";
        private static final String WRITEREPLACE = "writeReplace";
        private static final String READOBJECTNODATA = "readObjectNoData";

        NewSerializedForm(Utils utils, Elements elements, TypeElement te) {
            this.utils = utils;
            this.elements = elements;
            methods = new TreeSet<>(utils.makeGeneralPurposeComparator());
            fields = new TreeSet<>(utils.makeGeneralPurposeComparator());
            if (utils.isExternalizable(te)) {
                /* look up required public accessible methods,
                 *   writeExternal and readExternal.
                 */
                String[] readExternalParamArr = {"java.io.ObjectInput"};
                String[] writeExternalParamArr = {"java.io.ObjectOutput"};

                ExecutableElement md = findMethod(te, "readExternal", Arrays.asList(readExternalParamArr));
                if (md != null) {
                    methods.add(md);
                }
                md = findMethod((ClassSymbol) te, "writeExternal", Arrays.asList(writeExternalParamArr));
                if (md != null) {
                    methods.add(md);
                }
            } else if (utils.isSerializable(te)) {
                VarSymbol dsf = getDefinedSerializableFields((ClassSymbol) te);
                if (dsf != null) {
                    /* Define serializable fields with array of ObjectStreamField.
                     * Each ObjectStreamField should be documented by a
                     * serialField tag.
                     */
                    definesSerializableFields = true;
                    fields.add((VariableElement) dsf);
                } else {

                    /* Calculate default Serializable fields as all
                     * non-transient, non-static fields.
                     * Fields should be documented by serial tag.
                     */
                    computeDefaultSerializableFields((ClassSymbol) te);
                }

                /* Check for optional customized readObject, writeObject,
                 * readResolve and writeReplace, which can all contain
                 * the serialData tag.        */
                addMethodIfExist((ClassSymbol) te, READOBJECT);
                addMethodIfExist((ClassSymbol) te, WRITEOBJECT);
                addMethodIfExist((ClassSymbol) te, READRESOLVE);
                addMethodIfExist((ClassSymbol) te, WRITEREPLACE);
                addMethodIfExist((ClassSymbol) te, READOBJECTNODATA);
            }
        }

        private VarSymbol getDefinedSerializableFields(ClassSymbol def) {
            Names names = def.name.table.names;

            /* SERIALIZABLE_FIELDS can be private,
             */
            for (Symbol sym : def.members().getSymbolsByName(names.fromString(SERIALIZABLE_FIELDS))) {
                if (sym.kind == VAR) {
                    VarSymbol f = (VarSymbol) sym;
                    if ((f.flags() & Flags.STATIC) != 0
                            && (f.flags() & Flags.PRIVATE) != 0) {
                        return f;
                    }
                }
            }
            return null;
        }

        /*
         * Catalog Serializable method if it exists in current ClassSymbol.
         * Do not look for method in superclasses.
         *
         * Serialization requires these methods to be non-static.
         *
         * @param method should be an unqualified Serializable method
         *               name either READOBJECT, WRITEOBJECT, READRESOLVE
         *               or WRITEREPLACE.
         * @param visibility the visibility flag for the given method.
         */
        private void addMethodIfExist(ClassSymbol def, String methodName) {
            Names names = def.name.table.names;

            for (Symbol sym : def.members().getSymbolsByName(names.fromString(methodName))) {
                if (sym.kind == MTH) {
                    MethodSymbol md = (MethodSymbol) sym;
                    if ((md.flags() & Flags.STATIC) == 0) {
                        /*
                         * WARNING: not robust if unqualifiedMethodName is overloaded
                         *          method. Signature checking could make more robust.
                         * READOBJECT takes a single parameter, java.io.ObjectInputStream.
                         * WRITEOBJECT takes a single parameter, java.io.ObjectOutputStream.
                         */
                        methods.add(md);
                    }
                }
            }
        }

        /*
         * Compute default Serializable fields from all members of ClassSymbol.
         *
         * must walk over all members of ClassSymbol.
         */
        private void computeDefaultSerializableFields(ClassSymbol te) {
            for (Symbol sym : te.members().getSymbols(NON_RECURSIVE)) {
                if (sym != null && sym.kind == VAR) {
                    VarSymbol f = (VarSymbol) sym;
                    if ((f.flags() & Flags.STATIC) == 0
                            && (f.flags() & Flags.TRANSIENT) == 0) {
                        //### No modifier filtering applied here.
                        //### Add to beginning.
                        //### Preserve order used by old 'javadoc'.
                        fields.add(f);
                    }
                }
            }
        }

        /**
         * Find a method in this class scope. Search order: this class, interfaces, superclasses,
         * outerclasses. Note that this is not necessarily what the compiler would do!
         *
         * @param methodName the unqualified name to search for.
         * @param paramTypes the array of Strings for method parameter types.
         * @return the first MethodDocImpl which matches, null if not found.
         */
        public ExecutableElement findMethod(TypeElement te, String methodName,
                List<String> paramTypes) {
            List<? extends Element> allMembers = this.elements.getAllMembers(te);
            loop:
            for (Element e : allMembers) {
                if (e.getKind() != METHOD) {
                    continue;
                }
                ExecutableElement ee = (ExecutableElement) e;
                if (!ee.getSimpleName().contentEquals(methodName)) {
                    continue;
                }
                List<? extends VariableElement> parameters = ee.getParameters();
                if (paramTypes.size() != parameters.size()) {
                    continue;
                }
                for (int i = 0; i < parameters.size(); i++) {
                    VariableElement ve = parameters.get(i);
                    if (!ve.asType().toString().equals(paramTypes.get(i))) {
                        break loop;
                    }
                }
                return ee;
            }
            TypeElement encl = utils.getEnclosingTypeElement(te);
            if (encl == null) {
                return null;
            }
            return findMethod(encl, methodName, paramTypes);
        }
    }

    // TODO: we need to eliminate this, as it is hacky.
    /**
     * Returns a representation of the package truncated to two levels.
     * For instance if the given package represents foo.bar.baz will return
     * a representation of foo.bar
     * @param pkg the PackageElement
     * @return an abbreviated PackageElement
     */
    public PackageElement getAbbreviatedPackageElement(PackageElement pkg) {
        String parsedPackageName = utils.parsePackageName(pkg);
        ModuleElement encl = (ModuleElement) pkg.getEnclosingElement();
        PackageElement abbrevPkg = encl == null
                ? utils.elementUtils.getPackageElement(parsedPackageName)
                : ((JavacElements) utils.elementUtils).getPackageElement(encl, parsedPackageName);
        return abbrevPkg;
    }
}

{'repo_name': 'kangjianwei/LearningJDK', 'stars': '587', 'repo_language': 'Java', 'file_name': 'PKCS11Exception.java', 'mime_type': 'text/html', 'hash': 7982433634407090456, 'source_dataset': 'data'}


package com.lianglu.weyue.viewmodel.activity;

import android.content.Context;

import com.allen.library.RxHttpUtils;
import com.allen.library.interceptor.Transformer;
import com.lianglu.weyue.api.UserService;
import com.lianglu.weyue.utils.MD5Utils;
import com.lianglu.weyue.utils.ToastUtils;
import com.lianglu.weyue.utils.rxhelper.RxObserver;
import com.lianglu.weyue.view.activity.IUserRegister;
import com.lianglu.weyue.viewmodel.BaseViewModel;

/**
 * Created by Liang_Lu on 2018/1/5.
 */

public class VMUserRegisterInfo extends BaseViewModel {
    IUserRegister userRegister;

    public VMUserRegisterInfo(Context mContext, IUserRegister userRegister) {
        super(mContext);
        this.userRegister = userRegister;
    }

    public void register(String username, String password) {
        //对密码进行md5加密
        String md5Pass = MD5Utils.encrypt(password);
        RxHttpUtils.getSInstance().addHeaders(tokenMap())
                .createSApi(UserService.class)
                .register(username, md5Pass)
                .compose(Transformer.switchSchedulers())
                .subscribe(new RxObserver<String>() {
                    @Override
                    protected void onError(String errorMsg) {

                    }

                    @Override
                    protected void onSuccess(String data) {
                        ToastUtils.show(data);
                        if (data.equals("注册成功")) {
                            userRegister.registerSuccess();
                        }
                    }
                });
    }
}

{'repo_name': 'LiangLuDev/WeYueReader', 'stars': '931', 'repo_language': 'Java', 'file_name': 'PageView.java', 'mime_type': 'text/x-java', 'hash': -6902119856428129253, 'source_dataset': 'data'}


/*
 * SonarQube Java
 * Copyright (C) 2012-2020 SonarSource SA
 * mailto:info AT sonarsource DOT com
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
package org.sonar.java.checks;

import org.junit.jupiter.api.Test;
import org.sonar.java.checks.verifier.JavaCheckVerifier;

class ExceptionsShouldBeImmutableCheckTest {

  @Test
  void test() {
    JavaCheckVerifier.newVerifier()
      .onFile("src/test/files/checks/ExceptionsShouldBeImmutableCheck.java")
      .withCheck(new ExceptionsShouldBeImmutableCheck())
      .verifyIssues();
    JavaCheckVerifier.newVerifier()
      .onFile("src/test/files/checks/ExceptionsShouldBeImmutableCheck.java")
      .withCheck(new ExceptionsShouldBeImmutableCheck())
      .withoutSemantic()
      .verifyNoIssues();
  }

}

{'repo_name': 'SonarSource/sonar-java', 'stars': '651', 'repo_language': 'Java', 'file_name': 'JasperOptionsTest.java', 'mime_type': 'text/x-c++', 'hash': 3735585122429726216, 'source_dataset': 'data'}


/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
package demoapp.dom.types.isis.passwords.holder;

import java.util.Collection;
import java.util.stream.Collectors;

import javax.inject.Inject;

import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.value.Password;

import lombok.RequiredArgsConstructor;

import demoapp.dom.types.Samples;

//tag::class[]
@Action(semantics = SemanticsOf.SAFE)
@RequiredArgsConstructor
public class IsisPasswordHolder_actionReturningCollection {

    private final IsisPasswordHolder holder;

    public Collection<Password> act() {
        return samples.stream()
                .collect(Collectors.toList());
    }

    @Inject
    Samples<Password> samples;
}
//end::class[]

{'repo_name': 'apache/isis', 'stars': '558', 'repo_language': 'Java', 'file_name': 'IsisModuleSchema.java', 'mime_type': 'text/x-java', 'hash': 7541994792708489446, 'source_dataset': 'data'}


// PR18116.java - Test RegisterNatives with more complex signatures.

public class PR18116
{
  static
  {
    System.loadLibrary ("PR18116");
  }

  public static native int doit (java.lang.String s);

  public static void main (String[] args)
  {
    System.out.println (doit ("Hello World!"));
  }
}

{'repo_name': 'jcmvbkbc/gcc-xtensa', 'stars': '121', 'repo_language': 'C', 'file_name': 'api.html', 'mime_type': 'text/xml', 'hash': -7228489310936051632, 'source_dataset': 'data'}


#ifndef GIM_HASH_TABLE_H_INCLUDED
#define GIM_HASH_TABLE_H_INCLUDED
/*! \file gim_trimesh_data.h
\author Francisco Leon Najera
*/
/*
-----------------------------------------------------------------------------
This source file is part of GIMPACT Library.

For the latest info, see http://gimpact.sourceforge.net/

Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371.
email: projectileman@yahoo.com

 This library is free software; you can redistribute it and/or
 modify it under the terms of EITHER:
   (1) The GNU Lesser General Public License as published by the Free
       Software Foundation; either version 2.1 of the License, or (at
       your option) any later version. The text of the GNU Lesser
       General Public License is included with this library in the
       file GIMPACT-LICENSE-LGPL.TXT.
   (2) The BSD-style license that is included with this library in
       the file GIMPACT-LICENSE-BSD.TXT.
   (3) The zlib/libpng license that is included with this library in
       the file GIMPACT-LICENSE-ZLIB.TXT.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files
 GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.

-----------------------------------------------------------------------------
*/

#include "gim_radixsort.h"

#define GIM_INVALID_HASH 0xffffffff  //!< A very very high value
#define GIM_DEFAULT_HASH_TABLE_SIZE 380
#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE 4
#define GIM_HASH_TABLE_GROW_FACTOR 2

#define GIM_MIN_RADIX_SORT_SIZE 860  //!< calibrated on a PIII

template <typename T>
struct GIM_HASH_TABLE_NODE
{
	GUINT m_key;
	T m_data;
	GIM_HASH_TABLE_NODE()
	{
	}

	GIM_HASH_TABLE_NODE(const GIM_HASH_TABLE_NODE& value)
	{
		m_key = value.m_key;
		m_data = value.m_data;
	}

	GIM_HASH_TABLE_NODE(GUINT key, const T& data)
	{
		m_key = key;
		m_data = data;
	}

	bool operator<(const GIM_HASH_TABLE_NODE<T>& other) const
	{
		///inverse order, further objects are first
		if (m_key < other.m_key) return true;
		return false;
	}

	bool operator>(const GIM_HASH_TABLE_NODE<T>& other) const
	{
		///inverse order, further objects are first
		if (m_key > other.m_key) return true;
		return false;
	}

	bool operator==(const GIM_HASH_TABLE_NODE<T>& other) const
	{
		///inverse order, further objects are first
		if (m_key == other.m_key) return true;
		return false;
	}
};

///Macro for getting the key
class GIM_HASH_NODE_GET_KEY
{
public:
	template <class T>
	inline GUINT operator()(const T& a)
	{
		return a.m_key;
	}
};

///Macro for comparing the key and the element
class GIM_HASH_NODE_CMP_KEY_MACRO
{
public:
	template <class T>
	inline int operator()(const T& a, GUINT key)
	{
		return ((int)(a.m_key - key));
	}
};

///Macro for comparing Hash nodes
class GIM_HASH_NODE_CMP_MACRO
{
public:
	template <class T>
	inline int operator()(const T& a, const T& b)
	{
		return ((int)(a.m_key - b.m_key));
	}
};

//! Sorting for hash table
/*!
switch automatically between quicksort and radixsort
*/
template <typename T>
void gim_sort_hash_node_array(T* array, GUINT array_count)
{
	if (array_count < GIM_MIN_RADIX_SORT_SIZE)
	{
		gim_heap_sort(array, array_count, GIM_HASH_NODE_CMP_MACRO());
	}
	else
	{
		memcopy_elements_func cmpfunc;
		gim_radix_sort(array, array_count, GIM_HASH_NODE_GET_KEY(), cmpfunc);
	}
}

// Note: assumes long is at least 32 bits.
#define GIM_NUM_PRIME 28

static const GUINT gim_prime_list[GIM_NUM_PRIME] =
	{
		53ul, 97ul, 193ul, 389ul, 769ul,
		1543ul, 3079ul, 6151ul, 12289ul, 24593ul,
		49157ul, 98317ul, 196613ul, 393241ul, 786433ul,
		1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,
		50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,
		1610612741ul, 3221225473ul, 4294967291ul};

inline GUINT gim_next_prime(GUINT number)
{
	//Find nearest upper prime
	GUINT result_ind = 0;
	gim_binary_search(gim_prime_list, 0, (GIM_NUM_PRIME - 2), number, result_ind);

	// inv: result_ind < 28
	return gim_prime_list[result_ind];
}

//! A compact hash table implementation
/*!
A memory aligned compact hash table that coud be treated as an array.
It could be a simple sorted array without the overhead of the hash key bucked, or could
be a formely hash table with an array of keys.
You can use switch_to_hashtable() and switch_to_sorted_array for saving space or increase speed.
</br>

<ul>
<li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.
When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.
<li> If node_size != 0, then this container becomes a hash table for ever
</ul>

*/
template <class T>
class gim_hash_table
{
protected:
	typedef GIM_HASH_TABLE_NODE<T> _node_type;

	//!The nodes
	//array< _node_type, SuperAllocator<_node_type> > m_nodes;
	gim_array<_node_type> m_nodes;
	//SuperBufferedArray< _node_type > m_nodes;
	bool m_sorted;

	///Hash table data management. The hash table has the indices to the corresponding m_nodes array
	GUINT* m_hash_table;  //!<
	GUINT m_table_size;   //!<
	GUINT m_node_size;    //!<
	GUINT m_min_hash_table_size;

	//! Returns the cell index
	inline GUINT _find_cell(GUINT hashkey)
	{
		_node_type* nodesptr = m_nodes.pointer();
		GUINT start_index = (hashkey % m_table_size) * m_node_size;
		GUINT end_index = start_index + m_node_size;

		while (start_index < end_index)
		{
			GUINT value = m_hash_table[start_index];
			if (value != GIM_INVALID_HASH)
			{
				if (nodesptr[value].m_key == hashkey) return start_index;
			}
			start_index++;
		}
		return GIM_INVALID_HASH;
	}

	//! Find the avaliable cell for the hashkey, and return an existing cell if it has the same hash key
	inline GUINT _find_avaliable_cell(GUINT hashkey)
	{
		_node_type* nodesptr = m_nodes.pointer();
		GUINT avaliable_index = GIM_INVALID_HASH;
		GUINT start_index = (hashkey % m_table_size) * m_node_size;
		GUINT end_index = start_index + m_node_size;

		while (start_index < end_index)
		{
			GUINT value = m_hash_table[start_index];
			if (value == GIM_INVALID_HASH)
			{
				if (avaliable_index == GIM_INVALID_HASH)
				{
					avaliable_index = start_index;
				}
			}
			else if (nodesptr[value].m_key == hashkey)
			{
				return start_index;
			}
			start_index++;
		}
		return avaliable_index;
	}

	//! reserves the memory for the hash table.
	/*!
    \pre hash table must be empty
    \post reserves the memory for the hash table, an initializes all elements to GIM_INVALID_HASH.
    */
	inline void _reserve_table_memory(GUINT newtablesize)
	{
		if (newtablesize == 0) return;
		if (m_node_size == 0) return;

		//Get a Prime size

		m_table_size = gim_next_prime(newtablesize);

		GUINT datasize = m_table_size * m_node_size;
		//Alloc the data buffer
		m_hash_table = (GUINT*)gim_alloc(datasize * sizeof(GUINT));
	}

	inline void _invalidate_keys()
	{
		GUINT datasize = m_table_size * m_node_size;
		for (GUINT i = 0; i < datasize; i++)
		{
			m_hash_table[i] = GIM_INVALID_HASH;  // invalidate keys
		}
	}

	//! Clear all memory for the hash table
	inline void _clear_table_memory()
	{
		if (m_hash_table == NULL) return;
		gim_free(m_hash_table);
		m_hash_table = NULL;
		m_table_size = 0;
	}

	//! Invalidates the keys (Assigning GIM_INVALID_HASH to all) Reorders the hash keys
	inline void _rehash()
	{
		_invalidate_keys();

		_node_type* nodesptr = m_nodes.pointer();
		for (GUINT i = 0; i < (GUINT)m_nodes.size(); i++)
		{
			GUINT nodekey = nodesptr[i].m_key;
			if (nodekey != GIM_INVALID_HASH)
			{
				//Search for the avaliable cell in buffer
				GUINT index = _find_avaliable_cell(nodekey);

				if (m_hash_table[index] != GIM_INVALID_HASH)
				{  //The new index is alreade used... discard this new incomming object, repeated key
					btAssert(m_hash_table[index] == nodekey);
					nodesptr[i].m_key = GIM_INVALID_HASH;
				}
				else
				{
					//;
					//Assign the value for alloc
					m_hash_table[index] = i;
				}
			}
		}
	}

	//! Resize hash table indices
	inline void _resize_table(GUINT newsize)
	{
		//Clear memory
		_clear_table_memory();
		//Alloc the data
		_reserve_table_memory(newsize);
		//Invalidate keys and rehash
		_rehash();
	}

	//! Destroy hash table memory
	inline void _destroy()
	{
		if (m_hash_table == NULL) return;
		_clear_table_memory();
	}

	//! Finds an avaliable hash table cell, and resizes the table if there isn't space
	inline GUINT _assign_hash_table_cell(GUINT hashkey)
	{
		GUINT cell_index = _find_avaliable_cell(hashkey);

		if (cell_index == GIM_INVALID_HASH)
		{
			//rehashing
			_resize_table(m_table_size + 1);
			GUINT cell_index = _find_avaliable_cell(hashkey);
			btAssert(cell_index != GIM_INVALID_HASH);
		}
		return cell_index;
	}

	//! erase by index in hash table
	inline bool _erase_by_index_hash_table(GUINT index)
	{
		if (index >= m_nodes.size()) return false;
		if (m_nodes[index].m_key != GIM_INVALID_HASH)
		{
			//Search for the avaliable cell in buffer
			GUINT cell_index = _find_cell(m_nodes[index].m_key);

			btAssert(cell_index != GIM_INVALID_HASH);
			btAssert(m_hash_table[cell_index] == index);

			m_hash_table[cell_index] = GIM_INVALID_HASH;
		}

		return this->_erase_unsorted(index);
	}

	//! erase by key in hash table
	inline bool _erase_hash_table(GUINT hashkey)
	{
		if (hashkey == GIM_INVALID_HASH) return false;

		//Search for the avaliable cell in buffer
		GUINT cell_index = _find_cell(hashkey);
		if (cell_index == GIM_INVALID_HASH) return false;

		GUINT index = m_hash_table[cell_index];
		m_hash_table[cell_index] = GIM_INVALID_HASH;

		return this->_erase_unsorted(index);
	}

	//! insert an element in hash table
	/*!
    If the element exists, this won't insert the element
    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted
    If so, the element has been inserted at the last position of the array.
    */
	inline GUINT _insert_hash_table(GUINT hashkey, const T& value)
	{
		if (hashkey == GIM_INVALID_HASH)
		{
			//Insert anyway
			_insert_unsorted(hashkey, value);
			return GIM_INVALID_HASH;
		}

		GUINT cell_index = _assign_hash_table_cell(hashkey);

		GUINT value_key = m_hash_table[cell_index];

		if (value_key != GIM_INVALID_HASH) return value_key;  // Not overrited

		m_hash_table[cell_index] = m_nodes.size();

		_insert_unsorted(hashkey, value);
		return GIM_INVALID_HASH;
	}

	//! insert an element in hash table.
	/*!
    If the element exists, this replaces the element.
    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted
    If so, the element has been inserted at the last position of the array.
    */
	inline GUINT _insert_hash_table_replace(GUINT hashkey, const T& value)
	{
		if (hashkey == GIM_INVALID_HASH)
		{
			//Insert anyway
			_insert_unsorted(hashkey, value);
			return GIM_INVALID_HASH;
		}

		GUINT cell_index = _assign_hash_table_cell(hashkey);

		GUINT value_key = m_hash_table[cell_index];

		if (value_key != GIM_INVALID_HASH)
		{  //replaces the existing
			m_nodes[value_key] = _node_type(hashkey, value);
			return value_key;  // index of the replaced element
		}

		m_hash_table[cell_index] = m_nodes.size();

		_insert_unsorted(hashkey, value);
		return GIM_INVALID_HASH;
	}

	///Sorted array data management. The hash table has the indices to the corresponding m_nodes array
	inline bool _erase_sorted(GUINT index)
	{
		if (index >= (GUINT)m_nodes.size()) return false;
		m_nodes.erase_sorted(index);
		if (m_nodes.size() < 2) m_sorted = false;
		return true;
	}

	//! faster, but unsorted
	inline bool _erase_unsorted(GUINT index)
	{
		if (index >= m_nodes.size()) return false;

		GUINT lastindex = m_nodes.size() - 1;
		if (index < lastindex && m_hash_table != 0)
		{
			GUINT hashkey = m_nodes[lastindex].m_key;
			if (hashkey != GIM_INVALID_HASH)
			{
				//update the new position of the last element
				GUINT cell_index = _find_cell(hashkey);
				btAssert(cell_index != GIM_INVALID_HASH);
				//new position of the last element which will be swaped
				m_hash_table[cell_index] = index;
			}
		}
		m_nodes.erase(index);
		m_sorted = false;
		return true;
	}

	//! Insert in position ordered
	/*!
    Also checks if it is needed to transform this container to a hash table, by calling check_for_switching_to_hashtable
    */
	inline void _insert_in_pos(GUINT hashkey, const T& value, GUINT pos)
	{
		m_nodes.insert(_node_type(hashkey, value), pos);
		this->check_for_switching_to_hashtable();
	}

	//! Insert an element in an ordered array
	inline GUINT _insert_sorted(GUINT hashkey, const T& value)
	{
		if (hashkey == GIM_INVALID_HASH || size() == 0)
		{
			m_nodes.push_back(_node_type(hashkey, value));
			return GIM_INVALID_HASH;
		}
		//Insert at last position
		//Sort element

		GUINT result_ind = 0;
		GUINT last_index = m_nodes.size() - 1;
		_node_type* ptr = m_nodes.pointer();

		bool found = gim_binary_search_ex(
			ptr, 0, last_index, result_ind, hashkey, GIM_HASH_NODE_CMP_KEY_MACRO());

		//Insert before found index
		if (found)
		{
			return result_ind;
		}
		else
		{
			_insert_in_pos(hashkey, value, result_ind);
		}
		return GIM_INVALID_HASH;
	}

	inline GUINT _insert_sorted_replace(GUINT hashkey, const T& value)
	{
		if (hashkey == GIM_INVALID_HASH || size() == 0)
		{
			m_nodes.push_back(_node_type(hashkey, value));
			return GIM_INVALID_HASH;
		}
		//Insert at last position
		//Sort element
		GUINT result_ind;
		GUINT last_index = m_nodes.size() - 1;
		_node_type* ptr = m_nodes.pointer();

		bool found = gim_binary_search_ex(
			ptr, 0, last_index, result_ind, hashkey, GIM_HASH_NODE_CMP_KEY_MACRO());

		//Insert before found index
		if (found)
		{
			m_nodes[result_ind] = _node_type(hashkey, value);
		}
		else
		{
			_insert_in_pos(hashkey, value, result_ind);
		}
		return result_ind;
	}

	//! Fast insertion in m_nodes array
	inline GUINT _insert_unsorted(GUINT hashkey, const T& value)
	{
		m_nodes.push_back(_node_type(hashkey, value));
		m_sorted = false;
		return GIM_INVALID_HASH;
	}

public:
	/*!
        <li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.
        When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.
        <li> If node_size != 0, then this container becomes a hash table for ever
        </ul>
    */
	gim_hash_table(GUINT reserve_size = GIM_DEFAULT_HASH_TABLE_SIZE,
				   GUINT node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE,
				   GUINT min_hash_table_size = GIM_INVALID_HASH)
	{
		m_hash_table = NULL;
		m_table_size = 0;
		m_sorted = false;
		m_node_size = node_size;
		m_min_hash_table_size = min_hash_table_size;

		if (m_node_size != 0)
		{
			if (reserve_size != 0)
			{
				m_nodes.reserve(reserve_size);
				_reserve_table_memory(reserve_size);
				_invalidate_keys();
			}
			else
			{
				m_nodes.reserve(GIM_DEFAULT_HASH_TABLE_SIZE);
				_reserve_table_memory(GIM_DEFAULT_HASH_TABLE_SIZE);
				_invalidate_keys();
			}
		}
		else if (reserve_size != 0)
		{
			m_nodes.reserve(reserve_size);
		}
	}

	~gim_hash_table()
	{
		_destroy();
	}

	inline bool is_hash_table()
	{
		if (m_hash_table) return true;
		return false;
	}

	inline bool is_sorted()
	{
		if (size() < 2) return true;
		return m_sorted;
	}

	bool sort()
	{
		if (is_sorted()) return true;
		if (m_nodes.size() < 2) return false;

		_node_type* ptr = m_nodes.pointer();
		GUINT siz = m_nodes.size();
		gim_sort_hash_node_array(ptr, siz);
		m_sorted = true;

		if (m_hash_table)
		{
			_rehash();
		}
		return true;
	}

	bool switch_to_hashtable()
	{
		if (m_hash_table) return false;
		if (m_node_size == 0) m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;
		if (m_nodes.size() < GIM_DEFAULT_HASH_TABLE_SIZE)
		{
			_resize_table(GIM_DEFAULT_HASH_TABLE_SIZE);
		}
		else
		{
			_resize_table(m_nodes.size() + 1);
		}

		return true;
	}

	bool switch_to_sorted_array()
	{
		if (m_hash_table == NULL) return true;
		_clear_table_memory();
		return sort();
	}

	//!If the container reaches the
	bool check_for_switching_to_hashtable()
	{
		if (this->m_hash_table) return true;

		if (!(m_nodes.size() < m_min_hash_table_size))
		{
			if (m_node_size == 0)
			{
				m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;
			}

			_resize_table(m_nodes.size() + 1);
			return true;
		}
		return false;
	}

	inline void set_sorted(bool value)
	{
		m_sorted = value;
	}

	//! Retrieves the amount of keys.
	inline GUINT size() const
	{
		return m_nodes.size();
	}

	//! Retrieves the hash key.
	inline GUINT get_key(GUINT index) const
	{
		return m_nodes[index].m_key;
	}

	//! Retrieves the value by index
	/*!
    */
	inline T* get_value_by_index(GUINT index)
	{
		return &m_nodes[index].m_data;
	}

	inline const T& operator[](GUINT index) const
	{
		return m_nodes[index].m_data;
	}

	inline T& operator[](GUINT index)
	{
		return m_nodes[index].m_data;
	}

	//! Finds the index of the element with the key
	/*!
    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted
    If so, the element has been inserted at the last position of the array.
    */
	inline GUINT find(GUINT hashkey)
	{
		if (m_hash_table)
		{
			GUINT cell_index = _find_cell(hashkey);
			if (cell_index == GIM_INVALID_HASH) return GIM_INVALID_HASH;
			return m_hash_table[cell_index];
		}
		GUINT last_index = m_nodes.size();
		if (last_index < 2)
		{
			if (last_index == 0) return GIM_INVALID_HASH;
			if (m_nodes[0].m_key == hashkey) return 0;
			return GIM_INVALID_HASH;
		}
		else if (m_sorted)
		{
			//Binary search
			GUINT result_ind = 0;
			last_index--;
			_node_type* ptr = m_nodes.pointer();

			bool found = gim_binary_search_ex(ptr, 0, last_index, result_ind, hashkey, GIM_HASH_NODE_CMP_KEY_MACRO());

			if (found) return result_ind;
		}
		return GIM_INVALID_HASH;
	}

	//! Retrieves the value associated with the index
	/*!
    \return the found element, or null
    */
	inline T* get_value(GUINT hashkey)
	{
		GUINT index = find(hashkey);
		if (index == GIM_INVALID_HASH) return NULL;
		return &m_nodes[index].m_data;
	}

	/*!
    */
	inline bool erase_by_index(GUINT index)
	{
		if (index > m_nodes.size()) return false;

		if (m_hash_table == NULL)
		{
			if (is_sorted())
			{
				return this->_erase_sorted(index);
			}
			else
			{
				return this->_erase_unsorted(index);
			}
		}
		else
		{
			return this->_erase_by_index_hash_table(index);
		}
		return false;
	}

	inline bool erase_by_index_unsorted(GUINT index)
	{
		if (index > m_nodes.size()) return false;

		if (m_hash_table == NULL)
		{
			return this->_erase_unsorted(index);
		}
		else
		{
			return this->_erase_by_index_hash_table(index);
		}
		return false;
	}

	/*!

    */
	inline bool erase_by_key(GUINT hashkey)
	{
		if (size() == 0) return false;

		if (m_hash_table)
		{
			return this->_erase_hash_table(hashkey);
		}
		//Binary search

		if (is_sorted() == false) return false;

		GUINT result_ind = find(hashkey);
		if (result_ind != GIM_INVALID_HASH)
		{
			return this->_erase_sorted(result_ind);
		}
		return false;
	}

	void clear()
	{
		m_nodes.clear();

		if (m_hash_table == NULL) return;
		GUINT datasize = m_table_size * m_node_size;
		//Initialize the hashkeys.
		GUINT i;
		for (i = 0; i < datasize; i++)
		{
			m_hash_table[i] = GIM_INVALID_HASH;  // invalidate keys
		}
		m_sorted = false;
	}

	//! Insert an element into the hash
	/*!
    \return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position
    of the existing element.
    */
	inline GUINT insert(GUINT hashkey, const T& element)
	{
		if (m_hash_table)
		{
			return this->_insert_hash_table(hashkey, element);
		}
		if (this->is_sorted())
		{
			return this->_insert_sorted(hashkey, element);
		}
		return this->_insert_unsorted(hashkey, element);
	}

	//! Insert an element into the hash, and could overrite an existing object with the same hash.
	/*!
    \return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position
    of the replaced element.
    */
	inline GUINT insert_override(GUINT hashkey, const T& element)
	{
		if (m_hash_table)
		{
			return this->_insert_hash_table_replace(hashkey, element);
		}
		if (this->is_sorted())
		{
			return this->_insert_sorted_replace(hashkey, element);
		}
		this->_insert_unsorted(hashkey, element);
		return m_nodes.size();
	}

	//! Insert an element into the hash,But if this container is a sorted array, this inserts it unsorted
	/*!
    */
	inline GUINT insert_unsorted(GUINT hashkey, const T& element)
	{
		if (m_hash_table)
		{
			return this->_insert_hash_table(hashkey, element);
		}
		return this->_insert_unsorted(hashkey, element);
	}
};

#endif  // GIM_CONTAINERS_H_INCLUDED

{'repo_name': 'projectchrono/chrono', 'stars': '849', 'repo_language': 'C++', 'file_name': 'handmade_sloped_opts.crg', 'mime_type': 'text/plain', 'hash': 5981106368973146532, 'source_dataset': 'data'}


// xlsxformat.h

#ifndef QXLSX_FORMAT_H
#define QXLSX_FORMAT_H

#include <QFont>
#include <QColor>
#include <QByteArray>
#include <QList>
#include <QExplicitlySharedDataPointer>
#include <QVariant>

#include "xlsxglobal.h"

class FormatTest;

QT_BEGIN_NAMESPACE_XLSX

class Styles;
class Worksheet;
class WorksheetPrivate;
class RichStringPrivate;
class SharedStrings;

class FormatPrivate;

class Format
{
public:
    enum FontScript
    {
        FontScriptNormal,
        FontScriptSuper,
        FontScriptSub
    };

    enum FontUnderline
    {
        FontUnderlineNone,
        FontUnderlineSingle,
        FontUnderlineDouble,
        FontUnderlineSingleAccounting,
        FontUnderlineDoubleAccounting
    };

    enum HorizontalAlignment
    {
        AlignHGeneral,
        AlignLeft,
        AlignHCenter,
        AlignRight,
        AlignHFill,
        AlignHJustify,
        AlignHMerge,
        AlignHDistributed
    };

    enum VerticalAlignment
    {
        AlignTop,
        AlignVCenter,
        AlignBottom,
        AlignVJustify,
        AlignVDistributed
    };

    enum BorderStyle
    {
        BorderNone,
        BorderThin,
        BorderMedium,
        BorderDashed,
        BorderDotted,
        BorderThick,
        BorderDouble,
        BorderHair,
        BorderMediumDashed,
        BorderDashDot,
        BorderMediumDashDot,
        BorderDashDotDot,
        BorderMediumDashDotDot,
        BorderSlantDashDot
    };

    enum DiagonalBorderType
    {
        DiagonalBorderNone,
        DiagonalBorderDown,
        DiagonalBorderUp,
        DiagnoalBorderBoth
    };

    enum FillPattern
    {
        PatternNone,
        PatternSolid,
        PatternMediumGray,
        PatternDarkGray,
        PatternLightGray,
        PatternDarkHorizontal,
        PatternDarkVertical,
        PatternDarkDown,
        PatternDarkUp,
        PatternDarkGrid,
        PatternDarkTrellis,
        PatternLightHorizontal,
        PatternLightVertical,
        PatternLightDown,
        PatternLightUp,
        PatternLightTrellis,
        PatternGray125,
        PatternGray0625,
        PatternLightGrid
    };

    Format();
    Format(const Format &other);
    Format &operator=(const Format &rhs);
    ~Format();

    int numberFormatIndex() const;
    void setNumberFormatIndex(int format);
    QString numberFormat() const;
    void setNumberFormat(const QString &format);
    void setNumberFormat(int id, const QString &format);
    bool isDateTimeFormat() const;

    int fontSize() const;
    void setFontSize(int size);
    bool fontItalic() const;
    void setFontItalic(bool italic);
    bool fontStrikeOut() const;
    void setFontStrikeOut(bool);
    QColor fontColor() const;
    void setFontColor(const QColor &);
    bool fontBold() const;
    void setFontBold(bool bold);
    FontScript fontScript() const;
    void setFontScript(FontScript);
    FontUnderline fontUnderline() const;
    void setFontUnderline(FontUnderline);
    bool fontOutline() const;
    void setFontOutline(bool outline);
    QString fontName() const;
    void setFontName(const QString &);
    QFont font() const;
    void setFont(const QFont &font);

    HorizontalAlignment horizontalAlignment() const;
    void setHorizontalAlignment(HorizontalAlignment align);
    VerticalAlignment verticalAlignment() const;
    void setVerticalAlignment(VerticalAlignment align);
    bool textWrap() const;
    void setTextWrap(bool textWrap);
    int rotation() const;
    void setRotation(int rotation);
    int indent() const;
    void setIndent(int indent);
    bool shrinkToFit() const;
    void setShrinkToFit(bool shink);

    void setBorderStyle(BorderStyle style);
    void setBorderColor(const QColor &color);
    BorderStyle leftBorderStyle() const;
    void setLeftBorderStyle(BorderStyle style);
    QColor leftBorderColor() const;
    void setLeftBorderColor(const QColor &color);
    BorderStyle rightBorderStyle() const;
    void setRightBorderStyle(BorderStyle style);
    QColor rightBorderColor() const;
    void setRightBorderColor(const QColor &color);
    BorderStyle topBorderStyle() const;
    void setTopBorderStyle(BorderStyle style);
    QColor topBorderColor() const;
    void setTopBorderColor(const QColor &color);
    BorderStyle bottomBorderStyle() const;
    void setBottomBorderStyle(BorderStyle style);
    QColor bottomBorderColor() const;
    void setBottomBorderColor(const QColor &color);
    BorderStyle diagonalBorderStyle() const;
    void setDiagonalBorderStyle(BorderStyle style);
    DiagonalBorderType diagonalBorderType() const;
    void setDiagonalBorderType(DiagonalBorderType style);
    QColor diagonalBorderColor() const;
    void setDiagonalBorderColor(const QColor &color);

    FillPattern fillPattern() const;
    void setFillPattern(FillPattern pattern);
    QColor patternForegroundColor() const;
    void setPatternForegroundColor(const QColor &color);
    QColor patternBackgroundColor() const;
    void setPatternBackgroundColor(const QColor &color);

    bool locked() const;
    void setLocked(bool locked);
    bool hidden() const;
    void setHidden(bool hidden);

    void mergeFormat(const Format &modifier);
    bool isValid() const;
    bool isEmpty() const;

    bool operator == (const Format &format) const;
    bool operator != (const Format &format) const;

    QVariant property(int propertyId, const QVariant &defaultValue=QVariant()) const;
    void setProperty(int propertyId, const QVariant &value, const QVariant &clearValue=QVariant(), bool detach=true);
    void clearProperty(int propertyId);
    bool hasProperty(int propertyId) const;

    bool boolProperty(int propertyId, bool defaultValue=false) const;
    int intProperty(int propertyId, int defaultValue=0) const;
    double doubleProperty(int propertyId, double defaultValue = 0.0) const;
    QString stringProperty(int propertyId, const QString &defaultValue = QString()) const;
    QColor colorProperty(int propertyId, const QColor &defaultValue = QColor()) const;

    bool hasNumFmtData() const;
    bool hasFontData() const;
    bool hasFillData() const;
    bool hasBorderData() const;
    bool hasAlignmentData() const;
    bool hasProtectionData() const;

    bool fontIndexValid() const;
    int fontIndex() const;
    QByteArray fontKey() const;
    bool borderIndexValid() const;
    QByteArray borderKey() const;
    int borderIndex() const;
    bool fillIndexValid() const;
    QByteArray fillKey() const;
    int fillIndex() const;

    QByteArray formatKey() const;
    bool xfIndexValid() const;
    int xfIndex() const;
    bool dxfIndexValid() const;
    int dxfIndex() const;

    void fixNumberFormat(int id, const QString &format);
    void setFontIndex(int index);
    void setBorderIndex(int index);
    void setFillIndex(int index);
    void setXfIndex(int index);
    void setDxfIndex(int index);
private:
    friend class Styles;
    friend class ::FormatTest;
    friend   QDebug operator<<(QDebug, const Format &f);

    int theme() const;

    QExplicitlySharedDataPointer<FormatPrivate> d;
};

#ifndef QT_NO_DEBUG_STREAM
  QDebug operator<<(QDebug dbg, const Format &f);
#endif

QT_END_NAMESPACE_XLSX

#endif // QXLSX_FORMAT_H

{'repo_name': 'QtExcel/QXlsx', 'stars': '221', 'repo_language': 'C++', 'file_name': 'main.cpp', 'mime_type': 'text/x-c++', 'hash': 3153324875979205265, 'source_dataset': 'data'}


// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

package dcos_test

import (
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	"testing"
)

func TestDcos(t *testing.T) {
	RegisterFailHandler(Fail)
	RunSpecs(t, "Dcos Suite")
}

{'repo_name': 'Azure/acs-engine', 'stars': '1049', 'repo_language': 'Go', 'file_name': 'Jenkinsfile.azure.kubernetes', 'mime_type': 'text/plain', 'hash': -124980096207927537, 'source_dataset': 'data'}


#include <nan.h>
#include "number.h"
#include "../create_string.h"

namespace SassTypes
{
  Number::Number(Sass_Value* v) : SassValueWrapper(v) {}

  Sass_Value* Number::construct(const std::vector<v8::Local<v8::Value>> raw_val, Sass_Value **out) {
    double value = 0;
    char const* unit = "";

    if (raw_val.size() >= 1) {
      if (!raw_val[0]->IsNumber()) {
        return fail("First argument should be a number.", out);
      }

      value = Nan::To<double>(raw_val[0]).FromJust();

      if (raw_val.size() >= 2) {
        if (!raw_val[1]->IsString()) {
          return fail("Second argument should be a string.", out);
        }

        unit = create_string(raw_val[1]);
      }
    }

    return *out = sass_make_number(value, unit);
  }

  void Number::initPrototype(v8::Local<v8::FunctionTemplate> proto) {
    Nan::SetPrototypeMethod(proto, "getValue", GetValue);
    Nan::SetPrototypeMethod(proto, "getUnit", GetUnit);
    Nan::SetPrototypeMethod(proto, "setValue", SetValue);
    Nan::SetPrototypeMethod(proto, "setUnit", SetUnit);
  }

  NAN_METHOD(Number::GetValue) {
    info.GetReturnValue().Set(Nan::New<v8::Number>(sass_number_get_value(unwrap(info.This())->value)));
  }

  NAN_METHOD(Number::GetUnit) {
    info.GetReturnValue().Set(Nan::New<v8::String>(sass_number_get_unit(unwrap(info.This())->value)).ToLocalChecked());
  }

  NAN_METHOD(Number::SetValue) {

    if (info.Length() != 1) {
      return Nan::ThrowTypeError("Expected just one argument");
    }

    if (!info[0]->IsNumber()) {
      return Nan::ThrowTypeError("Supplied value should be a number");
    }

    sass_number_set_value(unwrap(info.This())->value, Nan::To<double>(info[0]).FromJust());
  }

  NAN_METHOD(Number::SetUnit) {
    if (info.Length() != 1) {
      return Nan::ThrowTypeError("Expected just one argument");
    }

    if (!info[0]->IsString()) {
      return Nan::ThrowTypeError("Supplied value should be a string");
    }

    sass_number_set_unit(unwrap(info.This())->value, create_string(info[0]));
  }
}

{'repo_name': 'startupengine/startupengine', 'stars': '108', 'repo_language': 'HTML', 'file_name': 'querystring.js', 'mime_type': 'text/plain', 'hash': -7210411696294141835, 'source_dataset': 'data'}